Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアの成長とそれを支える組織の考え方

takayasu
February 20, 2024
2k

 エンジニアの成長とそれを支える組織の考え方

Developers Summit(デブサミ)2024 にて講演させていただいた資料です。
https://event.shoeisha.jp/devsumi/20240215/session/4774

takayasu

February 20, 2024
Tweet

Transcript

  1. 2 Copyright © 2024 BTC Corporation All Rights Reserved. 自己紹介

    BTC CTO 高安 厚思 (たかやす あつし) 30年にわたり、ソフトウエアエンジニアリングを適用したシステム開発やコンサルティング に携わる。 最新技術を適切に利用した、柔軟なシステムの構築、 品質管理を中心として技術マネージメントなどを主要テーマとして活動。 開発方法論、アーキテクチャ設計コンサルティング、システム全体設計を得意分野とする。 2018年より会社としてクラウドにとりくんできた。 SODEC ミッションクリティカル開発 UML Forum講師 日経BP社 ITアーキテクトのためのシステム設計フォーラム 特別講演 講師 Developers Summit 2013 Summer QCon 2014 ITpro Active製品選択支援セミナー ZDNet Japan & AWS Partner Network AWSセミナー2019 要求開発アライアンス 講演 モダンアプリケーション開発の新潮流 2023 講演 書籍 ラジオ
  2. 3 Copyright © 2024 BTC Corporation All Rights Reserved. 会社紹介

    社名 株式会社ビッグツリーテクノロジー&コンサルティング (BTC Corporation) 創業 2002年2月7日 所在地 〒108-0073 東京都港区三田3-13-16 三田43MTビル12階 代表取締役社⾧ 杉山 健 社員数 521名(連結・2023年4月1日時点)内、ベトナムオフィス:47名、契約社員:9名、アルバイト:7名 売上高 92億8300万円(2022年12月決算) 事業内容 システムインテグレーションおよびITコンサルティング クラウド・AI・RPAなど最新技術の提供サービス デジタルマーケティング及びWeb制作 各種認証 ISO2700 1 (ISMS) ISO9001 女性活躍推進法 に基づく認定(認 定段階2) 競争参加資格 (全省庁統一資格) 役務の提供等:A 物品の販売:A
  3. 4 Copyright © 2024 BTC Corporation All Rights Reserved. テクノロジーとコンサルティングの融合

    ”DX Accelerator”として、テクノロジーとコンサルティングを融合させ、新たな価値の創出に コミットします。  テクノロジー人材とコンサルティング 人材の融合により、顧客の戦略実現を 可能にするソリューションの提案及び 高効率な開発を実現  柔軟に開発内容や体制を変更する、 顧客ファースト主義  顧客ニーズを満たすために最新技術に 積極的にチャレンジ 人材 カルチャー
  4. 5 Copyright © 2024 BTC Corporation All Rights Reserved. アジェンダ

    • すごい人とは? • 技術分類・ロール • 技術の習得・マインド • 技術者の成⾧を支える組織的な取組 本日のお話は以下の内容になります
  5. 7 Copyright © 2024 BTC Corporation All Rights Reserved. すごい人とは?

    すごい人のエピソードをご紹介します トラブルが起こった時、後ろでみていても何 をしているのかはっきりとわからないうちに解 決している。 後で説明してもらうと事象はわかるけど過 程はまねできないかもしれない。 昨日話したアイディアを試してみたとSlack がきた。 確かにそれで正しいけど早すぎる 昨日リリースされたソリューションを試してみ たけど、〇〇はいいけど××だった。 残念。 早すぎ! 拡張する可能性があるからとStrategyパ ターンで概要をクラス図で渡したら、関数型 で同様の実装ができていた。 確かにこちらの方がメリットが多かった。 別にプログラム言語はどれでもいい。 ただ、深い使い方するなら使い慣れたほう がいい。 生産性は下がらなかった。 圧縮アルゴリズムは汎用的に圧縮するのが 難しいのであって、特殊なXML体系化なら 独自で作ったほうが圧縮効率が高い。 確かにそうなった。 膨大なソースコードをながめてセキュリティリ スクを指摘。 リリースしていたら大事故だった。 要するにこういうフレームワークがあれば、共 通化がすすむってことだから作りました。 そうだけど・・・ 本質的な理解 俯瞰的な視点 圧倒的なスピード
  6. 8 Copyright © 2024 BTC Corporation All Rights Reserved. ポイント

     原理原則をよく知っている  アイディアに対して、修正や検討理解が早い(FBループが短い)  書籍を読む等により体系的理解を心掛ける  幅広く視野をもっている(ToBeを知っている)  ToBeから現実を見て手段を考える 優秀な技術者が心掛けているであろうことをまとめてみました。
  7. 10 Copyright © 2024 BTC Corporation All Rights Reserved. 技術的な分類とロール

    技術的な分類とロールをあてはめてみます。 要素技術 開発プロセス 開発技術 プラットフォーム技術 開発プラットフォーム 技術 運用 対応 スペシャリスト/スーパープログラマ 組織改善・全体技術部門エース アーキテクト CI/CDやITS(Redmineとか)を用いた 開発プラットフォームを整え、チームに浸透さ せる専門性 ロール 分類 要件定義~テストのような工程やアジャイ ルのような手法、品質等の非機能要件に 関する専門性 開発言語・フレームワークなどの専門性 マネジメント 障害対応、運用改善・効率の専門性 プロジェクト管理、人材管理、組織管理の 専門性
  8. 11 Copyright © 2024 BTC Corporation All Rights Reserved. 役割による技術の習熟度

    ITコンサルタント アーリーマジョリティ※となる要素技術を「知っている~シーズを理解している」レベルで習得している必要がある。 専門領域(業界・業務)の構造的な問題点を理解し、これらの技術によって解決できないかを考えることが必要。 アーキテクト アーリーアダプター※となる要素技術を「知っている~シーズを理解している」レベルで習 得し、アーリーマジョリティとなる要素技術を「利用可能な状態になっている」レベルで習 得している必要がある。 特に組み合わせ技術に関するレベルを高く習得(組み合わせによる副作用を理解し た上で、 効果的に利用できる)し、標準やデファクトスタンダードな内容は確実に押さえている。 スペシャリスト アーリーアダプターとなる要素技術を「知っている~シーズを理解している」レベルで習得 し、アーリーマジョリティとなる要素技術を「設定・実装ができる」レベルで習得している必 要がある。 役割ごとに必要な習熟度 ※キャズム論(ジェフリー・ムーア)における用語
  9. 12 Copyright © 2024 BTC Corporation All Rights Reserved. 閑話休題)AIの進化

    ご存じの通り、生成AIにおいて「自然言語の文脈理解」と「自然言語=設計要素」、「コード」の生成が可能になってきます。 技術者がどうなるのか? 興味があることと思います。 https://www.ibm.com/blogs/solutions/jp-ja/cobol-java-ibm-z/ ハルシネーションがあるので評価(経験値)は必要だが、生産性を高めることができそう 私たちは、Human in the Loopを意識してLLMを道具として使いこなすことが大事! https://blog.brainpad.co.jp/entry/2023/11/09/161055 Meta社技術者の論文(解説) COBOLからJava プロンプトの工夫
  10. 14 Copyright © 2024 BTC Corporation All Rights Reserved. 技術を理解するということ

    技術要素の理解にたいして「ダニングクルーガー効果」がおこりやすく、自分の技術 レベルを正しく測りにくい特徴があります。 https://developers.freee.co.jp/entry/understand-of-perfect-understanding https://twitter.com/shigetaka256/status/469062321176727552 https://twitter.com/oginoma tomewiki/status/126633344 4180570113 20時間やればみたいな文脈でたどり 着くところ 目指したいところ
  11. 15 Copyright © 2024 BTC Corporation All Rights Reserved. 技術の選定と深さを意識

    ソリューション検討(提案)からデリバリーまで 技術の選定 習得の深さ 知っている シーズを理解している 利用パターンを何パターンかしっており 利用可能な状態になっている 単一技術 知っている 組み合わせが可否を理解している 組み合わせによる副作用を理解した上で、 効果的に利用できる 組み合わせ 要件による選定  要件とトレードオフを意識して候補を検討する  品質シナリオの利用や方法論の利用 (TOGAF ADM/ADD/ATAM) 組織における実現可能性  担当者、チーム、プロジェクト、組織において実現が 可能かどうかを考慮(多少のストレッチは重要)  提案時点から配慮
  12. 16 Copyright © 2024 BTC Corporation All Rights Reserved. ヤクの毛刈り

    https://ja.wiktionary.org/wiki/yak_shaving 縮れていて⾧くて太くて固いヤクの毛を刈ってウールとしての製品とする為には多くの準備的な 活動が必要となることから。 出典は不明。恐らくは Carlin Vieri が MIT AI 研究所 (1993- 8)[1]時代に The Ren and Stimpy Showの話に基づいて発案したと考えられる。 本来のより大きな問題を解決する為に必要となる副次的な問題を 解決する為の、一見して無用な行為
  13. 17 Copyright © 2024 BTC Corporation All Rights Reserved. ヤクの毛刈りの例

    (動作しているものの裏側を知る) プログラム的にはライブラリを使って、ライブラリの使い方をBlogやリファレンスを見ればわかります。 しかし、そのライブラリがなにをしているのかわかりますか? aws-jwt-verifyの例 https://docs.aws.amazon.com/ja_jp/cognito/latest/developerg uide/amazon-cognito-user-pools-using-tokens-verifying-a- jwt.html 対応するパブリック JSON Web キー (JWK) https://cognito-idp.<Region>.amazonaws.com/<userPoolId>/.well- known/jwks.json const verifier = CognitoJwtVerifier.create({ userPoolId: USERPOOL_ID, tokenUse: "id", clientId: APPCLIENT_ID, }); const tokenString = await verifier.verify(token); const token = JSON.stringify(tokenString));
  14. 18 Copyright © 2024 BTC Corporation All Rights Reserved. 技術マップと棚卸

    • いきなり全部理解することは難しいし、現実的な時間で到達できない • 今できないけど、何ができたらできてるのか? – 俯瞰的に見れると何がわかるようになるといいのかがわかる • わかってないことがわかる – 一部の要素をブラックボックスとして理解していることがわかる • 定期的に棚卸をして、わかる領域が増えたか確認する – 前の自分と比較して、どの領域が詳しくなったかがわかる ヤクの毛刈りをすることで技術の広がりやつながりがあることが分かったのではないでしょうか?
  15. 19 Copyright © 2024 BTC Corporation All Rights Reserved. Craftmanship

    ソフトウェアクラフトマンシップ宣言 http://manifesto.softwarecraftsmanship.org/ 動くソフトウェアだけでなく、しっかり作られたソフトウェアを。 変化に対応するだけでなく、着実に価値を付加していくことを。 個人と相互作用だけでなく、プロフェッショナルたちのコミュニティを。 顧客との協調だけでなく、生産的なパタートナーシップを。 https://blogs.itmedia.co.jp/hiranabe/2009/03/manifesto-for-s.html
  16. 20 Copyright © 2024 BTC Corporation All Rights Reserved. ソフトウェア工学(ソフトウェアエンジニアリング)の勧め

    経験も大事ですが、経験を集めてまとめたものも大事です。 (抽象と具象を意識的に考えることが重要) https://speakerdeck.com/washizaki/sohutoueaenziniaringuzhi-shi-ti-xi- swebok-v4-jie-shuo-jiu-qi?slide=6 SWEBOK https://www.amazon.co.jp/dp/4274505219/ ソフトウェア工学本 https://www.amazon.co.jp/dp/4296070363/ https://www.amazon.co.jp/dp/4274227944/
  17. 21 Copyright © 2024 BTC Corporation All Rights Reserved. 技術者の成⾧に関するまとめ

     ご自身のキャリアについて考えてみましょう。  コンサル、アーキテクト、スペシャリスト・・・  ものつくりの観点から「ビジネスの価値」とは何か?  アプリケーションを支えるインフラ技術のありかたとは?  動作しているものの裏側を知ろう  技術のどの深さで理解するのか?  技術をどの範囲を押さえるのか?
  18. 23 Copyright © 2024 BTC Corporation All Rights Reserved. 社内組織や技術的な取組への取り組み

    2015 2016 2017 2018 2019 2020 2021 2022 2023 re:Invent 初参加 技術組織メン バーの評価調整 技術組織の 立ち上げ Codebase企 画 Codebase開 発 Cloud CoE 発足 ケイパビリティ組 織の立ち上げ アジリティ CoE 発足 Codebase 利用開始 ソフトウェアエンジニ アリングシンポジウム 2022 企業ポスター賞 組 織 ク ラ ウ ド 開 発 可 視 化
  19. 24 Copyright © 2024 BTC Corporation All Rights Reserved. 技術組織の立ち上げ

    バーチャルな組織として価値観の共有とその文化浸透への取り組み 「個性を重視し、技術力をもってプロジェクトに貢献す ることが責務である」職務とすることおよび技術志向社 員同士の相互の刺激関係を持つことによって、技術志向 社員にとってやりがいのあるカルチャーを醸成する 『お客様の課題を、技術によって効率的あるいは改革的 に解決する』 『プロフェッショナルな仕事をする』 『個の成長とゆるやかな連携による組織の成長を図る』 『外部に目を向けて仕事をせよ』 Mission Vision Value 組 織
  20. 25 Copyright © 2024 BTC Corporation All Rights Reserved. 組織を作った理由

     書籍・雑誌の購入費用の確保  すべてのオライリー本購入  実験用クラウド環境の提供  プロジェクトのコミットではない、技術的成⾧やプロジェクト貢献に関する評価に変更  開発リーダ以外がプロモーションできないカルチャーを変更  組織としての貢献を明確にした  プリセールスへの参加 予算化がしやすい、評価を含めた組織的な取組をしやすい 組 織
  21. 26 Copyright © 2024 BTC Corporation All Rights Reserved. BTCでの取り組み

    ケイパビリティをあわせた考え方 専門性の育成 専門性の評価 情報交換 組 織
  22. 27 Copyright © 2024 BTC Corporation All Rights Reserved. 技術戦略の例

    • 2017年11月~12月 AWS re:Inventにトップ経営層に行ってもらうことに成功 • 2017年下期計画に推進チームの計画、2018年より組織化 2017年下期からクラウドに本格的に取り組むことに BTCにおけるクラウドの適用を推進し、特 にクラウドネイティブの適用を推進する 方針 施策 施策 2名からスタートし、2024年現在8人で運営 ク ラ ウ ド
  23. 28 Copyright © 2024 BTC Corporation All Rights Reserved. クラウドCoEの発足から現在(2023.12)に至るまで

    2018.2 クラウドCoE発足 2018.12 AWSアドバンストコンサ ルティングパートナーに認定 2018.12 AWSパブリックセクター パートナーに認定 2020.3 当社技術顧問に元Microsoft エバンジェリスト鈴木章太郎氏が就任 2018.3 当社アドバイザーに元AWS エバンジェリスト渥美俊英氏が就任 2020.6 AWS SDPにおいて AWS Lambdaパートナー認定 2020.10 Microsoft Cloud Platform コンピテンシー(Silver)を取得 2021.5 APN AWS Top Engineers に3名選出 クラウドCoEでは、クラウドを取り巻く技術・制度などを キャッチアップし、社内で利活用できる環境を整備して きました。 また、弊社がクラウドを利活用したシステム開発やシス テム移行をお客様に提供できるようプロジェクト支援を 実施しています。 2021.7 AWS 100 APN Certification Distinctionに認定 2021.2 Microsoft Cloud Platform コンピテンシー(Gold)を取得 2019.11 Alibabaチャネルパート ナー(リセラー)に認定 2019.8 GCP Serviceエンゲージ メント(メンバー)に認定 2022.5 AWS Partner Ambassador/ APN AWS Top Engineersに1名選出 2022.5 APN ALL AWS Certifications Engineersに2名選出 2022.10 AWS 200 APN Certification Distinctionに認定 2023.4 AWS Partner Ambassador/ AWS Top Engineersに2名選出 2023.4 AWS Jr. Championsに2名選出 2023.4 AWS All Certifications Engineersに3名選出 2023.8 AWS 300 APN Certification Distinctionに認定 2022.2 Equinixリセラーパートナーに認定 2022.8 Google Cloud Serviceエン ゲージメント(パートナー)に認定 2022.10 内製化支援推進 AWS パートナーに認定 2023.7 MCPPソリューションパートナー 「デジタルとアプリのイノベーション」に認定 2023.8 Azure OpenAI Service リファレンス アーキテクチャ賛同パートナーに認定 2023.7 Microsoft Top Partner Engineer Award<Azure部門>に1名選出 2023.10 MCPPソリューションパートナー 「Data & AI」に認定 2023.11 Google Cloud Sellエン ゲージメント(パートナー)に認定 ク ラ ウ ド
  24. 29 Copyright © 2024 BTC Corporation All Rights Reserved. アジリティCoEの取り組み

    • 外部講師による社内セミナー実施 アジャイル資格取得推進、社内セミナー実施、開発技術の展開(相談等)、開発効率検討等 開 発
  25. 30 Copyright © 2024 BTC Corporation All Rights Reserved. BTC

    Codebaseの全体像 BTC Codebaseの柔軟さを裏付ける特徴として、主に「①ツール選定の自由度」「② データレイク→共通形式データへの集約」がある。 活 動 成果物 ランタイ ム 共通指標データ 生データ 直接参照 生データ 共通の変換 変換済みデータ データ レイク データ ウェアハウス- データマート プロジェクトA プロジェクトB プロジェクトC … ポイント②: データレイク→共通形式データへの集約 ポイント①:ツール選定の自由度 データソース BTC Codebase プロジェクトマネージャー メンバー プロジェクトに応じた変 換+参照(ELT) ※4 ※5 ※6 ※1 ※1 ※7 Data Service name Category No. Test Report JUnit 自動テスト 1 Test Report spock 2 Test Report mochawesome 3 Test TestRail テスト 4 Test Run 5 Test Result 6 Test Section 7 Test Suite 8 Test Case 9 Project 10 User 11 Ticket Redmine ITS 12 Ticket Backlog 13 Communicate Statistics Teams コミュニケーション 14 Document Dropbox ドキュメント 15 Issue SonarQube ソースコードメトリクス 16 Measure 17 Component Measure 18 Commit CodeCommit Git 19 Pull Request 20 Commit Gitlab 21 Pull Request 22 Commit Github 23 Pull Request 24 25 Commit Azure Repos Pull Request 26 report Lighthouse パフォーマンス 27 ポイント①:ツール選定の自由度 GitHub pullrequest GitLab pullrequest add_lines:5 delete_lines:3 count_commits:3 AddLines:5 DeleteLines:3 Commits:[1,2,3] GitHub pullrequest’ GitLab pullrequest’ add_lines:5 delete_lines:3 count_commits:3 AddLines:5 DeleteLines:3 Commits:3 Git_pullrequest add_lines:5 delete_lines:3 count_commits:3 生データ 共通指標値化 共通指標名化 ツールによって指標値、指標名が異 なる状態。 Codebaseの保有するスキー マにあわせて指標値を統一。 Codebaseの保有するスキーマ にあわせて指標名を統一。 データレイク データウェアうハウス ポイント②:データレイク→共通形式データへの集約 可 視 化
  26. 31 Copyright © 2024 BTC Corporation All Rights Reserved. 組織に関するまとめ

     経営陣に理解者が必要  モノカルチャーからマルチカルチャーへ  組織を作る際はMVV(Mission Vision Value)を明確にすることで内部の理解が進む  技術戦略として取り組むべき柱を明確にする  リーダはなるべく早く、手を離せるように委譲できるように考える  評価が何よりも難しい 組織つくりと運営は経営の最も近い取り組みです(経営の理解)
  27. 32 Copyright © 2024 BTC Corporation All Rights Reserved. まとめ

     技術者の成⾧は難しいが、それを促すことはできると思う  実践がもっともの成⾧の場、そしてスランプこそが次のステージに行くきっかけ  技術の立ち位置や方向性を決めて、その枠組みで提案とケイパビリティをどう成⾧させるか?  会社が求めているもの(売上・利益(短期的・⾧期的))にどうアライメントするか?  すべてのエンジニアがやりたいことができるか?というのは難しい  技術者のリスペクトとやりたいこと、成⾧、待遇のバランスをとり、組織を作る、そして貢献とは何かを定義する  ToBeを高いレベルで示し、マーケットでも評価されるようにするのは技術トップとしての仕事だと思う 本当の意味でエンジニアの組織を作るのは難しい
  28. 33 Copyright © 2024 BTC Corporation All Rights Reserved. ご清聴ありがとうございました

    • ご質問等ございましたら – [email protected] • までご連絡ください。