Slide 1

Slide 1 text

Developers Summit 2023 「そんな装備で大丈夫か、もっといい Developer eXperienceを頼む」 を大規模開発でやってみた話 2023-02-10 Developers Summit 2023

Slide 2

Slide 2 text

Developers Summit 2023 私たちの製品 統合人事システム「COMPANY」 約1,200法人グループの大手法人にご利用いただいている、入社から退職までの人事 労務をすべて網羅する統合人事システム 初期リリースは 1996年 で、提供する製品は人事・給与・勤怠・要因分析・人材開 発・雇用手続き管理・ID管理 と多岐にわたる 2

Slide 3

Slide 3 text

Developers Summit 2023 私たちの会社 知恵とテクノロジーで「COMPANY」を進化させ、お客様に最も信頼される HRテック業界のリーディングカンパニーになる 社員が成長する環境を作り、その成長にコミットし、 我々が最も「はたらく」を楽しんでいる Vision 3 Mission 複雑化、多様化する社会課題を人の知恵を結集し解決することで 「はたらく」を楽しくする

Slide 4

Slide 4 text

Developers Summit 2023 「そんな装備で大丈夫か、もっといい Developer eXperienceを頼む」 を大規模開発でやってみた話 2023-02-10 Developers Summit 2023

Slide 5

Slide 5 text

Developers Summit 2023 2016年に新卒で入社し、インフラやSRE、開発の足回りの改善に 携わり、現在は開発組織全体の開発者体験向上の取り組みを担当 するチームでマネージャをしています。 AWSからクラウドの便利さに Inspired され、 K8s からReconcilation Loop の仕組みに Inspired され、 スクラムからチームで働く良さを Inspired されました。 プライベートでは某キャンプアニメから Inspired され、 冬キャンにはまっています。 萩田 篤 はぎた あつし 5

Slide 6

Slide 6 text

Developers Summit 2023 話すこと/話さないこと ● 大規模開発を行っている組織に開発者体験向上のために働きかけたこと ● 開発者体験向上を行うに当たって弊社の状況 ● 取り組みの内容と過程 ● 大規模開発を行っている組織ならではの難所 6

Slide 7

Slide 7 text

Developers Summit 2023 話すこと/話さないこと ● レガシーコードとの戦い方 ● 技術的負債の話 ● 短期間での成果の出し方 ● 経営層が味方になっていない状況での開発者体験向上の始め方 7

Slide 8

Slide 8 text

Developers Summit 2023 私たちの製品・組織の歴史 8

Slide 9

Slide 9 text

Developers Summit 2023 私たちの製品・組織の歴史 ● 20年以上、お客様に使い続けていただいているシステム ● 人事・給与・勤怠といった業務の基幹を支えるシステム ● 様々な業種業態のお客様、約1200社以上で利用 ● 大企業の複雑な制度にも対応 ● ノーカスタマイズを謳い、機能網羅性にピンを止めて開発 私たちのビジネスの源泉 9

Slide 10

Slide 10 text

Developers Summit 2023 私たちの製品・組織の歴史 20年以上、保守・機能開発されてきた製品や組織にはどのようなことが起こるか ● 認知負荷が高いコード ● 管理の行き届いていないコード・ツール ● 組織の間に落ちてしまい、妖精が回している仕事 ● 各組織との距離感(現場ー経営、現場ー周辺組織、隣の組織) ● サイロ化 社内では九龍城砦 と言われることも 10

Slide 11

Slide 11 text

Developers Summit 2023 20年以上お金を生み出してきた価値あるものではあるが、 増改築を繰り返し個別最適されたことで複雑性がかなり高い 11

Slide 12

Slide 12 text

Developers Summit 2023 私たちの製品・組織の歴史 ● 技術的負債 ● 組織的負債 12

Slide 13

Slide 13 text

Developers Summit 2023 私たちの製品・組織の歴史(技術的負債) ● 当時の最適解が時間の経過とともに最適ではなくなったもの ● 開発速度を加速するための利子 ● 変更したいときに影響範囲が読めず素早いリリースができない ● 認知負荷が高いコードが多くなり、熟練者の知見が必要となる ● 余裕がなくなり、改善のための計画や時間がなくなる 13

Slide 14

Slide 14 text

Developers Summit 2023 14 コードや足回りを 改善する時間がない 優先順位づけすれば 大丈夫だ、問題ない コード以外でも やることがたくさん コードが複雑で 修正・機能追加に 時間がかかる 私たちの製品・組織の歴史(技術的負債) 死 神は言っている、 ここで死ぬ運命ではないと―― 不具合 新機能開発案件

Slide 15

Slide 15 text

Developers Summit 2023 コードや足回りを 改善する時間がない 優先順位づけすれば 大丈夫だ、問題ない コード以外でも やることがたくさん コードが複雑で 修正・機能追加に 時間がかかる 私たちの製品・組織の歴史(技術的負債) 死 神は言っている、 ここで死ぬ運命ではないと―― 不具合 新機能開発案件 足回りや改善は 後回しにせざる を得ないな…… もっといい生産性の上がる 支援を頼むと言っても 具体的な支援は無いしなぁ…… 大丈夫ではなかった 問題は多い... (c)crim 依頼や問い合わせが沢山 来るな… 困っているから優先度 上げざるを得ない……

Slide 16

Slide 16 text

Developers Summit 2023 技術的負債を返済していくために 組織的負債も片づける 16

Slide 17

Slide 17 text

Developers Summit 2023 私たちの製品・組織の歴史(組織的負債) ● 当時の最適解が時間の経過とともに最適ではなくなったもの ○ 組織と担当業務の割り当てのミスマッチ ○ 組織異動によって間に落ちていったタスク ● 組織活動を円滑に行うための配慮や妥協の産物 ○ やらないと困る人が出てくるので、ボランティアでやろう ○ トラック係数が1のままのツール・業務 ○ 納得感は無いが、大して負荷にならないし、まぁいいか ● やっても変わらないだろうなという全体の士気低下 ● 全体最適な根本的な解決がとれない 17

Slide 18

Slide 18 text

Developers Summit 2023 歴史から学ぶ ● 数年周期で繰り返される同じ取り組み ● 機能制限の無償版を頑張って運用 ○ サーバの調達は比較的行いやすい一方で新規の予算獲得のハードルは高い ● ボランティアとしてやっており、負担だけが増える ● 個人のスキルに頼り、組織として運用できるところまで仕組化できてない 18 私たちの製品・組織の歴史(組織的負債)

Slide 19

Slide 19 text

Developers Summit 2023 改善の良いサイクルが回せなかった原因 ● (ボランティアで行われているため)工数の勘定から漏れ、一向にコストをかけて 改善することができない ● 振り返りや歴史の伝承がされず、同じ取り組みを再び行って失敗する ● トップダウンで始まるが現場と距離感があり、成果とならずフェードアウト ● 経営層の視座からは緊急度の高い問題に見えず、現場からも伝わる形で コミュニケーションがとれなかった ● 予算確保までは手が出せないが、局所的な工数なら融通することならできる 19 私たちの製品・組織の歴史(組織的負債)

Slide 20

Slide 20 text

Developers Summit 2023 私たちの製品・組織の歴史 会社と現場の状況 経営層 ● 投資を行える状況であるが、人が足りない ● ビジネス(キャッシュ)に目が向いている ● 開発組織のスイートスポットとなる投資対象が把握できていない 現場 ● 会社の状況が悪化しているときにお金を出してもらえなかった過去がある ● 現場に改善を行っていくための余裕はない(木こりのジレンマ) ● よりよいやり方で開発を行いたい 20

Slide 21

Slide 21 text

Developers Summit 2023 私たちの製品・組織の歴史 会社と現場の状況 経営層 ● 投資を行える状況であるが、人が足りない ● ビジネス(キャッシュ)に目が向いている ● 開発組織のスイートスポットとなる投資対象が把握できていない 現場 ● 会社の状況が悪化しているときにお金を出してもらえなかった過去がある ● 現場に改善を行っていくための余裕はない(木こりのジレンマ) ● よりよいやり方で開発を行いたい 21 社員の開発者体験を向上することは モチべージョンに関わる重要な要素で あるが、投資対効果で話をしたい ビジネスであるからには投資対効果で話 せないといけないのはわかるが、 自分たちの開発者体験を向上させて 仕事をやりやすくしたい

Slide 22

Slide 22 text

Developers Summit 2023 22 コードや足回りを改 善する時間がない 優先順位づけすれば 大丈夫だ、問題ない コード以外でも やることがたくさん コードが複雑で 修正・機能追加に 時間がかかる 私たちの製品・組織の歴史(技術的負債) 死 神は言っている、 ここで死ぬ運命ではないと―― 不具合 新機能開発案件 足回りや改善は後 回しにせざるを得 ないな…… 依頼や問い合わせが沢山 来るな… 困っているから優先度上 げざるを得ない…… もっといい生産性の上がる支援 を頼むと言っても具体的な支援 は無いしなぁ…… こんな装備では大丈夫ではないので、 2つの負債を返済していきながら、 もっといい Developer eXperience を実現する

Slide 23

Slide 23 text

Developers Summit 2023 取り組みの変遷 23

Slide 24

Slide 24 text

Developers Summit 2023 取り組みの変遷 2021年 2022年 少数の開発者に ヒアリング DX Criteria 読み合わせ 有志 4名で活動 チーム化 7名で活動 組織化 20名+で活動 開発組織全体へ アンケート 分析・方針決定 複数の施策として 展開 24 会社レベルで ムーブメントの 広がり 個別での活動 短期的な施策

Slide 25

Slide 25 text

Developers Summit 2023 少数の開発者にインタビュー 25

Slide 26

Slide 26 text

Developers Summit 2023 「チケットのテンプレートに必須欄が増えることは、新人にとってはいいかな と思うが、本当に必要なんだっけって思う。項目が追加されるときも理由がわ からないことがある。とはいえ、そこまで工数が取られていないので、まぁい いかと思っている」 「変えたいなと思っても基本ボランティアになってしまっていたり、横断的な ものなので大きすぎて変えにくい。結局工数が持ち出しになってしまう」 「最新のバージョンではない製品のサポート工数は馬鹿にならない。問い合わ せの主戦場が最新バージョンになるとかなり楽になる」 26

Slide 27

Slide 27 text

Developers Summit 2023 「ローカルの開発環境がクソ重いし、データが蓄積された開発用共有DBはネッ トワークのレイテンシがつらい」 「組織が分かれているのに製品が一つになっているところがある。若い人は他 の組織の人に聞くことを躊躇するかもしれない。それに若手の人のキャリアプ ランが立てにくい影響もある。」 「利用しているツールが統一されていないことはつらいし、社内のソースコー ドをGitHubに出来たら嬉しいけど、やる工数を考えるとそこまでメリットが出 るとは思わないなぁ。逆に今の作りこんでいるものを捨てるほうが怖い」 27

Slide 28

Slide 28 text

Developers Summit 2023 少し課題感が言葉となって見えてきた 現場だけでは解決が難しかったり、時間をかけないと解決できない問題 ● 組織を横断する必要があるもの ● なぜやっているのかわからないプロセス ● 予算確保 ● 組織設計やファシリティの問題 28

Slide 29

Slide 29 text

Developers Summit 2023 DX Criteria で現在地を知る 29

Slide 30

Slide 30 text

Developers Summit 2023 DX Criteria で現在地を知る ● 2021年4月にDX Criteriaが更新される ● 参画しているメンバー(現場サイドとマネジメントサイドの複合チーム) それぞれの視点でDX Criteriaを行い、各項目の解釈と社内の現状の認識を 合わせた ● 社内と世の中の差を再確認 DX Criteria (v202104)/企業のデジタル化とソフトウェア活用のためのガイドライン https://dxcriteria.cto-a.org/ 30

Slide 31

Slide 31 text

Developers Summit 2023 DX Criteriaの結果が真っ赤になるのは仕方ない。 でも改善していくためには今の体制では厳しい 31

Slide 32

Slide 32 text

Developers Summit 2023 トップマネジメントと現場でゲームが違う 現場から上がってくる声を頼りに、自分たちの会社のリソースを配置して、 より会社を大きくしていくゲーム (ジャンル:拡大再生産) 自分たちの持っている資源を利用して、効率よく業務遂行をしていくゲーム (ジャンル:ワーカープレイスメント) → トップマネジメントを動かすということも選択肢の一つではあるが行動の 難易度が高い。大規模組織だと自分の所属する組織内の効率向上がゴールに なることが多く、トップマネジメントのゲームの考え方とミスマッチになる 32

Slide 33

Slide 33 text

Developers Summit 2023 組織全体の課題の解決に 責務を持った組織をつくった 33

Slide 34

Slide 34 text

Developers Summit 2023 私たちの組織 2つのDX(Digital Transformation & Developer eXperience)を追求し続け 開発者がプロダクトに100%の力を注ぎ込め、その成果を正しく全社に伝えてい くことを推進し他部門と連携しながら、全社的問題解決に貢献する Mission 34 エンジニアの楽しさ加速中! 開発現場の大変革 に挑むWorks Human Intelligenceの未来像 https://compass.labbase.jp/articles/885

Slide 35

Slide 35 text

Developers Summit 2023 私たちの組織 ● Digital Tansformation ○ 開発状況や商用運用に関わる様々なデータを自動収集し、 だれもが同じデータをリアルタイムに確認できるようにします ● Developer Experience ○ 開発者の声に耳を傾け、開発のストレスを低減し、開発が取り組みたい新たな施策を支援します ● Cross Departmental ○ 各製品部門に必須な組織(UI/UX・CI/CD)を支援し、部門横断的な平準化と効率化を推進します ● Transparency and Accountability ○ 組織の透明性を重視し、正確で公平な情報発信とアクセシビリティ向上によって、 説明責任を果たしやすい組織にします ● Community ○ 社内コミュニティを推奨することで、自己研鑽と自己認知の機会をつくり、 個人が会社をたのしむことを応援します Vision 35

Slide 36

Slide 36 text

Developers Summit 2023 新組織 組織化したことで得られた効果 予算・権限 説明責任 予算やプロセス管理 ツールや仕組みなどの 導入・改善 各製品開発の 担当組織 36

Slide 37

Slide 37 text

Developers Summit 2023 膨大な課題に優先順位をつけたい 37

Slide 38

Slide 38 text

Developers Summit 2023 開発者全員にアンケートを取る ● 改善したいことを教えてください ● その問題はどのような業務で発生していますか? ● 問題の背景を教えてください ● 思いつく解決策を教えてください これらの質問を全員に見える形にして募集した 38

Slide 39

Slide 39 text

Developers Summit 2023 「リリースサイクル・製品FBサイクルを短縮したい」 「サポートバージョンを減らしたい」 「開発者が『開発』に専念できる状態にしたい」 「一度決まったルールが無くならず、仕事が減らない」 「開発に期日をコミットさせることを最小限にできないか」 「教育や勉強会の体系的なシステムが少ない」 39

Slide 40

Slide 40 text

Developers Summit 2023 「現状の開発環境では自信を持ってリファラルすることができない」 「SaaS利用のハードルが高く生産性の低いツールを利用している」 「ソースコードの置き場所が分散しているため、簡単に他部署の製品の ソースコードを閲覧できない」 ● 記名式だったが、300件近い回答が得られた ● 見える形でやったことでお互いの意見が見られる ● 見てほしい人に伝わっていることが感じられた 40

Slide 41

Slide 41 text

Developers Summit 2023 ● 様々な切り口から分析してみる ● 深堀するために再度ヒアリング 41

Slide 42

Slide 42 text

Developers Summit 2023 ● 解決したい問題を明らかにする ● 課題が組織全体なのか、チームレベルなのかを分ける ● 解決したい課題にアプローチするために、先に解決しなければならない問題の 認識を合わせる 42

Slide 43

Slide 43 text

Developers Summit 2023 ● 最初に現場開発者では手を出すのが難しい部分に取り組む。変わらないと思 っていたところで小さい成功を重ねることで開発者に実感を持ってもらう ● 開発者が取り組みについて納得し、一緒に進めていけるよう意識づける 43

Slide 44

Slide 44 text

Developers Summit 2023 取り組みの紹介 44

Slide 45

Slide 45 text

Developers Summit 2023 取り組みの紹介 ● 開発案件管理 ○ 今まで ■ 半年スパンで計画。優先順位を決めていないため、変化に対応することが難しい ○ 改善後 ■ 事前に優先度を決め、達成すべきものと調整可能なものを定義することで、認識を 合わせて進められるようにする ■ 改善を行うための工数を固定で確保する ■ これらの情報がだれでも閲覧できるようにする 45

Slide 46

Slide 46 text

Developers Summit 2023 取り組みの紹介 ● 組織編成 ○ 今まで ■ 製品開発に必要な役割や権限が各組織に足りていない ○ 改善後 ■ ボランティアとならないように必要な役割を持った組織の箱を用意する ■ まだ兼務が多い状況だが、箱を作ることで、工数を測定できるようになる ■ 業務量を計測し、見えてきたら専任をつけていく 46

Slide 47

Slide 47 text

Developers Summit 2023 取り組みの紹介 ● 開発システム投資 ○ 今まで ■ 開発に利用するシステムが時間を経ることにより、現状に即さなくなっており、思考や 作業が中断される ■ 生産性の高い SaaS を利用できていない ○ 改善後 ■ 貸与しているPCのスペックの見直し ● 32GB、CPUスコア10000以上のノートPC ● 総務と連携し、フリーアドレス化 ■ GitHubの利用拡大 ■ SonarQubeの導入 47

Slide 48

Slide 48 text

Developers Summit 2023 取り組みの紹介 ● チケット管理システム ○ 今まで ■ さまざまな業務が依存し、時間を経て非効率になっていても見直しがされていない ○ 改善後 ■ SaaS を導入し、業務を標準化する → 依存関係といったブロッカーが多く、失敗しました。。。小さく導入を始めて、 被害を小さくできるように進められるようにする学びを得ました ■ 業務やチケットに記載する項目を棚卸し、開発者にとって不要な項目を削除 48

Slide 49

Slide 49 text

Developers Summit 2023 取り組みの紹介 ● 教育 ○ 新人・中途研修の改善 ○ 書籍購入補助・資格取得補助 ● リリース速度改善 ○ 自動テスト ○ CICDの改善 ● サポートバージョン削減 ● 開発に関わるメトリクスの取得 49 クエスト形式で学習! 能動的なエンジニアが育つ Works Human Intelligenceの新人研修の秘密 https://compass.labbase.jp/articles/892

Slide 50

Slide 50 text

Developers Summit 2023 大規模開発を行っている組織ならではの難所 50

Slide 51

Slide 51 text

Developers Summit 2023 現場と経営をつなぐ 51 GitHubを導入することで、各部署が運用している VCSを統一して全体最適が図れます。 生産性や採用、ロイヤリティ向上にも寄与します。移 行コストよりその後のメリットが大きいのでやらない 理由がないです。(開発生産性軸)

Slide 52

Slide 52 text

Developers Summit 2023 現場と経営をつなぐ デファクトスタンダードなツールを導入します。 今までは出来なかった xxx ができるようになってい てとても便利です!いつでも使えるようにしておく ので使ってみてください!(開発者体験軸) 移行の時のサポートもアイデアがあります。具体的 なところを一緒に話して進めていきましょう! GitHubを導入することで、各部署が運用している VCSを統一して全体最適が図れます。 生産性や採用、ロイヤリティ向上にも寄与します。移 行コストよりその後のメリットが大きいのでやらない 理由がないです。(開発生産性軸) 52 動かしたい人によって響く説明は違う

Slide 53

Slide 53 text

Developers Summit 2023 現場と経営をつなぐ デファクトスタンダードなツールを導入します。 今までは出来なかった xxx ができるようになってい てとても便利です!いつでも使えるようにしておく ので使ってみてください!(開発者体験軸) 移行の時のサポートもアイデアがあります。具体的 なところを一緒に話して進めていきましょう! 是非ともやりたい! 興味ありだけど、工数が 厳しいので様子見... 個人的には良いと思うけど、 この理由ではうちの現場は動いて くれないな。 53 GitHubを導入することで、各部署が運用している VCSを統一して全体最適が図れます。 生産性や採用、ロイヤリティ向上にも寄与します。 移行コストよりその後のメリットが大きいのでや らない理由がないです。(開発生産性軸) 現場組織によって優先度が違う

Slide 54

Slide 54 text

Developers Summit 2023 現場と経営をつなぐ ● 無理に進めない ○ 現場が必要だと感じた時にサポートできるように準備する ○ (動かしたい方向に行かざるを得ない行きたくなるような力学を働かせる) ● 自分たちも一緒に手を動かす ● 一定期間ごとにメリットが感じられるようにして、状況を可視化する ○ 経営層と現場に対して定期的な状況報告 ○ slack のパブリックチャンネル、ナレッジの蓄積、議事録 ● 時間が経つと外部環境が変わり、現場の各チームの意思決定も変わってくる 書籍「FEARLESS CHANGE」はとても参考になりました 54

Slide 55

Slide 55 text

Developers Summit 2023 リスクアセスメント、稟議はんこリレー ● セキュリティ関係の対応 ○ 承認対象が組織全体となると、承認の難易度が上がる ○ 情報セキュリティ委員会やPSIRT/CSIRTは「負かして突破する相手」ではなく、 「一緒に環境を良くしていこうとする協力者」 ○ 会社の基準が守れるように設定したもので、いわばガードレール付きの整備された道 ○ メリットを享受する人からは見えない準備に時間がかかる(リスクアセスメントと対策) ● 稟議周り ○ 会社間の取引なので、信用調査や財務・法務チェックが入る ○ リードタイムがあるので、クリティカルパスを意識して進める ● 海外拠点の営業とのやり取り ○ 時差・言語・カルチャーの壁 55

Slide 56

Slide 56 text

Developers Summit 2023 組織化して始動してから1年 ムーブメントも大きくなってきた 56

Slide 57

Slide 57 text

Developers Summit 2023 みんなが関心を持ち始めてきた ● 取り組みが見える形で成果となり始めた ● 各部署が個別に行っていたものが相互に関係しあい良いサイクルが出来てきた ● 開発組織を飛び越えてのつながり ● より大きな目標に手が届くようになった 57 以前の失敗を生かし、継続性がある状況を作り出せている

Slide 58

Slide 58 text

Developers Summit 2023 まとめ ● トップダウンで進めるのではなく、現場開発者と一緒に進めていく ○ そのために一緒に手を動かす ● 無理に現場開発者を巻き込まない ○ やりたい/やったほうがメリットがあると思ってもらう ● 手続き ○ 担当領域のプロなので、勇気をもって積極的に相談する ○ 会社を良くしたいというゴールは同じなので協力してくれる ● 経営層とのやりとり ○ 現場と比較して、戦っている領域が違うので、言葉を合わせる ○ お金をどこに投資したら良いのかを伝え、勝てそうだと思ってもらう 58

Slide 59

Slide 59 text

Developers Summit 2023 We are hiring! 59

Slide 60

Slide 60 text

Developers Summit 2023 60