見出し画像

IVRyにおける開発生産性へのアプローチ~SPACEフレームワークの視点から~

こんにちは、IVRyのエンジニア近藤です(@k_kondo)

この記事は 株式会社IVRy 白組 Advent Calendar 2023 の18日目の記事として記載しています。
昨日は小瀬さんの「2023年・新しく入ったメンバーの提案で開発チームが良くなったこと5選」でした。
明日は大沼さんの「IVRy式コミュニケーションとは【Slackについて】」の予定です。

紅組はこちら


はじめに

ビジネスや組織がスケールすることで、ステークホルダーとのコミュニケーションが複雑化したり、ユーザー数が増加して運用負荷が上がったりと、さまざまな要因で最初はできていた「良いものを素早く世の中に出す」ことが、難しくなっていく。
ということは一般的に起こりうる事だと思います。

開発生産性が事業の成長スピードに影響したり、開発者体験が下がることで、結果として組織力の低下を招いてしまうと考えています。

そんな中、五十嵐さんの記事とはまた違った角度で今のIVRyの開発組生産性はどうなのか、ということを考えるに至りました。

開発生産性の指標

SPACEフレームワークは、開発者の生産性を多面的に評価するためのフレームワークです。

このフレームワークは、『LeanとDevOpsの科学』の著者でもあるNicole Forsgren氏によって「The SPACE of Developer Productivity」という論文の形で発表されました。多様な側面を評価できる生産性指標を複数選定し、これらを大きな視点で論理的かつ体系的に考える方法をSPACEフレームワークとして、以下の5つの評価指標を定義しています。

  1. Satisfaction and well-being

    • 開発者が自分の仕事、チーム、ツール、文化にどれだけ満足しているか。どれだけ健康で幸せか、そして仕事がそれにどう影響しているか。

    • 業務難易度、必要なツールやリソースがあるか。

  2. Performance

    • 開発者が書いたコードが想定されたことを確実に実行したか。

    • バグの発生数、コードクオリティ、顧客満足度、サービス稼働率、信頼性。

  3. Activity

    • 仕事をする過程で完了した行動やアウトプットの数。

    • PRマージ数、コミット数、コードレビュー完了数、デプロイ頻度(Four Keys)。

  4. Communication and collaboration

    • メンバーやチームがどのようにコミュニケーションをとり、協力し合うか。

    • ドキュメント発見時間、新メンバーのオンボーディング時間や体験。

  5. Efficiency and flow

    • 個人であれシステムであれ、中断や遅延を最小限に抑えて仕事を完了させたり、進捗させたりする能力。

    • 自チームのMTG数や時間、他チームとのMTG数や時間、CI/CDフローでのトイル消化数。

そして、チーム、組織フェーズ、文化によって、どのカテゴリや指標を選択し、あるべき姿をどのように定めるかが重要とされています。


今のIVRyでの評価、取り組めていること

Satisfaction and well-being
PCのスペック
は必要なら申請して良いという考え方です。

オンボーディング資料の一部

また、こちらで紹介されているヘルスチェックも一つの指標として活用できていると考えます。

ヘルスチェック

なにより、IVRyのVisionであるWork is Funが日常的に体現されている様子もうかがえます。

Work is Funが体現されているつぶやき

Activity
まずは簡易的に実施できたPRオープンからクローズまでの時間を計測し傾向を図示してみました。
外れ値はあるものの、オープンからクローズまで、多くのPRが1日でクローズされています。

PRがクローズされるまでの時間の分布

また意識的にレビューが実施されている様子が伺えます。

「PRのレビューは割り込みであってもすべてのタスクより優先でやる」の話から

Efficiency and flow
直近の出来事として、今までPdM+エンジニア全員でやっていた日々の朝会を発展的に解消しました。
限られた時間でコンテキストを含み全員で情報共有を行うことが困難と判断したためです。

朝会撲滅TRYの宣言

自発的にslackで今日やることの共有や、チーム/プロジェクト毎のコミュニケーションが適切な形で行われていると感じています。

昨日/今日のタスク共有
インフラチームの状況共有の様子

全体での共有が必要なものは別途場を設るなど、これはゴールではなく、必要に応じてチューニングして行くことを前提としています。

大きなネガティブはなく、
振り返りの中では、時間ができたというポジティブな意見が出ています。

1週間やってみた振り返りの一部

また、先日の記事で紹介した開発合宿で定期的にトイル撲滅系の取り組みも行えていますし、
こちらの記事にあるtextlintも、生産性向上に関する一つの事例になります。

今後の展望

IVRyはまだ小規模の組織で、とにかく価値を形にし、提供していくことが重要ということから、

Activity
特にFour Keysの中でPRマージ数、デプロイ頻度を計測、評価するための仕掛けをしていきたいです。

その他、今後取り組みたいと思う観点は以下です。

Performance
各種メトリクスの観測からSLO/SLIという形で評価できるように指標の設定をしていきたいです。

Communication and collaboration
コミュニケーションはSlackで活発に行われているものの
ドキュメントの検索性
には課題感があり改善の余地があると多くの声が上がっていて、何かしらのツール導入、整備を行い体験をよくできればと考えています。

最後に

以上、IVRyにおける開発生産性へのアプローチでした。
今後も事業成長と共にスケーラビリティを担保し、強いエンジニアリング組織を構築していきたいと考えています。

やりたいことがたくさんある!
新たなアイデアや改善点を取り入れ、一緒に素晴らしい組織を築いていけるエンジニアを募集しています。

お気軽にお声がけください!!


この記事が気に入ったらサポートをしてみませんか?