ブックマーク / mtx2s.hatenablog.com (17)

  • SPACEでの指標選びは網羅性ではなく関連性と一貫性を持たせて絞り込むことが大切である、さらに…… - mtx2s’s blog

    SPACEフレームワークを活用するなら、選択する指標に関連性と一貫性を持たせて絞り込むことが大切です。思いつくかぎりの指標をただやみくもに集めて網羅性を高めても、そこから得られる情報はほとんどないでしょう。 これが、ニコール・フォースグレンらによる論文 "The SPACE of Developer Productivity: There's more to it than you think." を読んだ時に私が感じたことです。 queue.acm.org 稿は、上述論文に基づいてSPACEフレームワークを解説するとともに、その活用方法についても考察しています。 特に、5つのディメンションについては、論文から読み取りづらい点をフォローするようにしました。ここが理解できないと、フレームワークの魅力がなくなってしまいます。実際、開発チームのマネージャーらやメンバーらと話していると、SPAC

    SPACEでの指標選びは網羅性ではなく関連性と一貫性を持たせて絞り込むことが大切である、さらに…… - mtx2s’s blog
    yug1224
    yug1224 2024/07/31
  • デプロイ頻度やリードタイムの正確な計測にこだわらなくていい(前提はあるが) - mtx2s’s blog

    デプロイ頻度とリードタイムは、開発チームが自らのパフォーマンスをモニタリングするうえで欠かせないメトリクスである。それらが、収益性や市場占有率といった組織パフォーマンスに影響を与えるからだ。その調査結果は、DevOps Research and Assessment(DORA)が特定した4つのキーメトリクス、いわゆる「DORAメトリクス」の要素として浸透した(後述するが、DORAメトリクスで扱うのは、リードタイムではなく「変更のリードタイム」である)。 その重要性ゆえに、チームや組織はこれらのメトリクスの計測と可視化に努める。可能な範囲で正確な値が欲しい。そうして、チケット管理ツールやバージョン管理システムからテレメトリを収集、集計し、チームのモニタリングダッシュボードにその実績値を可視化するのだ。 しかし、しばらくメトリクスを運用してみると、その扱いづらさに気づく。計測値や集計値のばらつ

    デプロイ頻度やリードタイムの正確な計測にこだわらなくていい(前提はあるが) - mtx2s’s blog
    yug1224
    yug1224 2024/02/14
  • チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog

    前回の記事ではチーム中心の組織づくりの設計原則について書いた。今回は、それらの原則に基づくチームをソフトウェアプロダクト組織内にどう配備し、どのような機能を持たせるかについて考える。これは言わば、チームの責務を定義することに他ならない。記事ではこれを、7つのガイドラインとして書き出してみることにした。 前回の記事:『チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog』 mtx2s.hatenablog.com 1. ストリームアラインド 2. オーナーシップ制 3. バリエーション分割 4. 技術横断型 5. DevOps 6. 機能横断型 7. マルチスキル 組織設計とはアーキテクティングである 1. ストリームアラインド ソフトウェアプロダクト組織の開発フローは、ユーザーや市場の観察をもとにアイデアを生み出すことから始まる。そのアイデアを仮説として、それを

    チームの機能と配備を考えるための7つのチーム責務定義ガイドライン - mtx2s’s blog
    yug1224
    yug1224 2024/01/17
  • チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog

    近年のソフトウェアプロダクト開発組織の活動単位としてよく言われるのは、「少人数で安定したチーム」であろう。表現は違えど、どの文献でもそのように述べられる。 それでは、「少人数」と「安定」の2つの要件を満たせば高パフォーマンスなチームが設計できるかと言えば、そんなはずもない。他にも要件があるはずだ。 そこで、チームに共通して必要だと考える要件を、設計に関わったこれまでの組織から抽出して言語化し、原則としてまとめてみた。それが、「安定」「アトミック」「非兼務」「少人数」「流動性」「イテレーティブ」の6つだ。 初期に携わった組織には欠けていた要素もあるが、何度も失敗を重ねるうちに見いだしたものだ。組織設計のプラクティスとしてよく聞くものもあるが、いずれも実体験を経て必要だと感じたものばかりである。 なお、記事で取り上げる6つのチーム設計原則だけでは、組織設計として不十分だ。チームにどういった機

    チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog
    yug1224
    yug1224 2024/01/09
  • ソフトウェア開発上の問題や課題をビジネスリーダーや経営者らの関心事とするために - mtx2s’s blog

    ビジネスリーダーをはじめ、ソフトウェアプロジェクトの関係者にとって、ソフトウェア開発上の関心事は、開発の進捗とシステムトラブルだ。ソフトウェアの内部品質や開発プロセス上の問題や課題なんて、開発者以外に興味を示す人などほとんどいない。だから、関係者ばかりか開発者自身も、開発の進捗とシステムトラブルにばかり注意を向ける。 そのような状況に、一部の優秀な開発者は我慢ならない。憂いている。「このままではまずい、積み上がった問題に取り組むために時間が欲しい」「まとまった時間でなくても、継続的に取り組むための少しの割り当てでも構わない」と。そんな願いも虚しく、使える時間はすべて、担当する開発を進捗させることにのみ費やすことを強いられる。 私たちエンジニアリングマネージャーやテックリードは、このような状況を見て見ぬふりをしていないだろうか。開発の進捗やシステムトラブル以外にも注意を向けるべき対象がある。

    ソフトウェア開発上の問題や課題をビジネスリーダーや経営者らの関心事とするために - mtx2s’s blog
    yug1224
    yug1224 2023/06/13
  • コード品質はやはりビジネスに影響を与える - mtx2s’s blog

    私たちソフトウェアエンジニアは、コード品質についてしばしば論ずるけれども、ではコード品質の良し悪しがどれほどビジネスに影響するのかと問われると、回答に窮する。只々、「コード品質が悪いと変更により多くの時間がかかります」だとか、「欠陥の修正に追われて開発時間が奪われます」だとか、個人の経験やエンジニア的一般論に頼った定性的な説明に終始するしかない。ソフトウェアを繰り返し変更する頻度が高いほど、コード品質が開発時間に影響を与えるのは確かにそのとおりだと思えるが、はたしてそれは、どれほどのインパクトなのだろうか。 2022年の研究論文 "Code Red: The Business Impact of Code Quality – A Quantitative Study of 39 Proprietary Production Codebases" では、コード品質がビジネスに与えるインパクト

    コード品質はやはりビジネスに影響を与える - mtx2s’s blog
    yug1224
    yug1224 2023/04/27
  • リリースした新機能や改善の多くに価値がないという調査結果が意味すること - mtx2s’s blog

    プロダクトに備わる機能の64%がほとんど使われないと言う。あるいは、80%という数字が用いられることもある。これが当だとすれば、ソフトウェア開発に費やしたコストの多くが無駄だったことになる。ソフトウェア開発は常にスピードが求められるものだが、そもそもこのような無駄がなければ、ユーザーや顧客への価値の提供をもっと速くできたはずだ。 ソフトウェプロダクトをローンチし、それから次々とリリースを繰り返しながら追加されていった変更は、いったいどれだけのものが実際に価値があったのだろうか。稿では、Standish Groupやマイクロソフトの文献を中心に、ヒントとなる数字をいくつか紹介し、その理解を深める。 64%はめったに、あるいはまったく使われない 80%は価値が低い、あるいはまったくない 3分の2は価値がない、あるいは逆に価値を損なわせる 「勝利宣言」からの脱却 64%はめったに、あるいはま

    リリースした新機能や改善の多くに価値がないという調査結果が意味すること - mtx2s’s blog
    yug1224
    yug1224 2023/03/29
  • 9つのチームロールでチームワークを強化する / ベルビンチームロール - mtx2s’s blog

    スティーブ・マコネル(Steve McConnell)の著書『More Effective Agile』の第6章で、「ベルビンのチームロール理論」なるものが紹介されている。そこに、「Plant」や「Shaper」「Resource Investigator」など、聞き慣れない9つのロール名が並ぶ。チーム内でこれらのロールのバランスが取れていることと、チームのパフォーマンスの間には、高い相関があるそうだ。 そう言われると興味を持つ。ベルビンチームロールとはどのようなものだろうか。しかし残念なことに、同書からはほとんど情報を得られない。書かれているのは、先の9つのロールそれぞれに関する短い説明文と、次の引用にある記述ぐらいだ。 この理論では、チームにおいて人々がどのように行動するか、人々がどれくらい協力して作業を行うと考えられるか、そして各役割の候補者をどのように選択するかを評価する。 202

    9つのチームロールでチームワークを強化する / ベルビンチームロール - mtx2s’s blog
    yug1224
    yug1224 2023/01/24
  • コンウェイの法則と、そこで提示された2つの組織課題 - mtx2s’s blog

    ソフトウェアエンジニアリング関連の書籍を読んでいると、「コンウェイの法則(Conway's law)」によく出会う。その引用元は、1968年4月に発表されたメルヴィン・コンウェイ(Melvin E. Conway)の論文 "How do committees invent?" で、例の有名な一文は結論(conclusion)に書かれている。 (前略) organizations which design systems (in the broad sense used here) are constrained to produce designs which are copies of the communication structures of these organizations. (広義での)システムを設計する組織は、自らのコミュニケーション構造を真似た設計を生み出すという制約

    コンウェイの法則と、そこで提示された2つの組織課題 - mtx2s’s blog
    yug1224
    yug1224 2022/10/18
  • エンジニアリングによるビジネスパフォーマンスチューニング - mtx2s’s blog

    ソフトウェアプロダクトの機能リリース頻度は益々高まっている。月に何回リリースしたか、いくつの機能をリリースしたか、開発現場はもちろん、ビジネスサイドでも度々話題になる。しかし、開発チームのこの努力と献身は、ビジネスにいったいどれほど影響を与えられているのだろうか。 皮肉なことに、リリースサイクルを高速にすればすほど、開発チームの意識は、機能をリリースすることのみに集中していく。リリース自体がゴールになってしまう。この状態で、開発チームがビジネス視点を持つのは難しいだろう。 そもそも、リリースした機能と売上との関係性を見出すこと自体、難しい。そうであればなおさら、開発チームの関心はビジネスから離れていく。売上との関係性を見出すことなど諦めてしまう。 コスト(原価)との関係性はわかりやすい。製造原価(材料費、労務費、経費)の共有を定期的に経理部門から受けられるマネージャーも多いだろうし、工数管

    エンジニアリングによるビジネスパフォーマンスチューニング - mtx2s’s blog
    yug1224
    yug1224 2022/09/13
  • 遅延コスト回避中心のPBIライフサイクルマネジメント - mtx2s’s blog

    記事は、Engineering Manager Advent Calendar 2020の21日目です。テーマとしては、プロジェクトマネジメント、プロダクトマネジメント領域を取り上げています。 -- ソフトウェアプロダクトの開発、特に、競争の激しいマーケットに置かれたプロダクトの開発は、次から次へと繰り返されるアップデートの間隔が短いほど良いとされる。背景として期待されているのは、そのスピードがユーザー価値やビジネス価値に与えるポジティブな効果だろう。それは主にふたつあると考えている。 ひとつめの効果は、価値を早期に生み出せるということ。 プロダクトのアップデートが価値に変わるのは、それがリリースされてからだ。言い換えれば、リリース時期が遅くなれば遅くなるほど、ユーザーにとってもビジネスにとっても、得られるはずであった価値の総量が目減りすることになる。遅延と引き換えにコストを支払ったと言

    遅延コスト回避中心のPBIライフサイクルマネジメント - mtx2s’s blog
    yug1224
    yug1224 2022/09/13
  • 兼務はチームの独立性とのトレードオフ - mtx2s’s blog

    ソフトウェアエンジニアリングの世界では、エンジニアに、チームをまたいでプロジェクトやプロダクトを掛け持ちさせるアサインメントを強いることがある。いわゆる兼務と呼ばれるものの一形態だ(以降、この形態による兼務を単に「兼務」と呼ぶ)。 組織設計においてマネージャーを大いに悩ませるのは、人材面での制約だろう。人的リソース(human resource, 人的資源)と呼ばれるように、資源には限りがある。他の経営リソースと違って個々が無二の存在であるから、その制約はさらに、個別の事情までもが複雑に絡み合う。だから兼務による人的リソースのアロケートは、マネージャーにとって、複雑で厳しい制約に柔軟性を持たせる魔法の杖となる。 しかし、兼務には大きなコストがつきまとう。そのコスト自体の可視性が低いためか、組織を設計する上で、兼務に伴うコストが軽視されているように感じている。 いや、兼務者が、参加するチーム

    兼務はチームの独立性とのトレードオフ - mtx2s’s blog
    yug1224
    yug1224 2022/09/13
  • 開発組織を分散モノリスにしないチーム分割と協働のデザイン - mtx2s’s blog

    複数チームに分かれたプロダクト開発スタイルをかえって不自由に感じてはいないだろうか。チーム間に張り巡らされた無数のチェーンが自由を奪い、チームの活動を束縛する。そんな感覚だ。 組織を複数のプロダクト開発チームに分割する組織アーキテクチャは、マイクロサービスアーキテクチャに例えることができる。そこから見いだせる原則は、チームをコンポーネントとして捉え、凝集度を高く、結合度を低く設計することだ。この原則を軽視すると、チーム間の依存関係が互いをチェーンのように繋ぎ、絡み合い、組織全体を「分散されたモノリス」に変えてしまう。その結果として、チームは日々、多大な調整コストや遅延コストを支払い続ける羽目になる。 では、既存のソフトウェアプロダクト開発において、個々のチームが活動しやすい分散型組織の設計とはどういうものだろうか。あくまでも私の経験や考えに基づくものではあるが、稿はこれをテーマに書いてみ

    開発組織を分散モノリスにしないチーム分割と協働のデザイン - mtx2s’s blog
    yug1224
    yug1224 2022/09/13
  • マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog

    ひとつのソフトウェアコンポーネントが多くの開発者によって変更されると、品質に悪い影響を与えると経験的に感じている。設計に一貫性が失われることや、知識の浅い状態で変更することによるバグ混入の可能性が高まるからだ。 2011年9月に公開されたマイクロソフト社の調査結果、"Don’t Touch My Code! Examining the Effects of Ownership on Software Quality" は、この「コードのオーナーシップはソフトウェアの品質を左右する」という経験則を裏付けるものだった。全体のコミット数のうち5%未満の貢献にとどまる開発者が多いコンポーネントは、リリース前後における故障が増加するというものだ。 稿では、このマイクロソフトによる調査結果を紹介し、それを踏まえた上で、ソフトウェアプロダクトの品質悪化を抑えるための組織やプロセス、アーキテクチャについ

    マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog
    yug1224
    yug1224 2022/09/13
  • 技術的負債は開発者体験を悪化させる - mtx2s’s blog

    ソフトウェアエンジニアにとって、技術的負債が増え続けるソフトウェアプロダクト開発現場に身を置くことがどれほど苦痛なことであるか。エンジニアリング組織のマネジメントを長年担ってきて、それは強く感じるところだ。 中途採用の選考プロセスに面接官として参加し、これまで数多くの退職理由を見聞きしてきた。その中で、レガシーシステムをリファクタリング・リアーキテクティング・リライトできないことへの不満を理由として挙げるエンジニアは多かったように思う。裏を返せば、自社のソフトウェアプロダクトが技術的負債にまみれたまま放置されているなら、優秀な人材が他社に流出するリスクがあると認識すべきだ。 稿では、技術的負債と開発者体験の関係について紐解くとともに、それに対してソフトウェアエンジニアリング組織を預かるマネージャーが取るべき行動について考えてみたい。 ※これは、Engineering Manager Ad

    技術的負債は開発者体験を悪化させる - mtx2s’s blog
    yug1224
    yug1224 2021/12/23
  • 「体験」にコミットするチームと「仕様」にコミットするチーム - mtx2s’s blog

    自社ソフトウェアプロダクトの内製開発チームの振る舞いが、外部ベンダー的だと感じたことはないだろうか。開発チームと企画担当の関係が、請負契約的な受発注構造になっているということだ。 ソフトウェア開発の従来的な請負契約では、何を作るかは発注側の責任で、それを形にして納品するのが受注側となるベンダーの責任となる。これを先程の企画担当と開発チームの関係に置き換えて言えば、「何を作るか」が企画担当の責任で、それを「形にしてリリースする」のが開発チームの責任となる。 このような開発チームのことを私は、「仕様にコミットするチーム」と呼んでいる。「何を作るか」を言語化した存在である「仕様」の通りにソフトウェアを開発してリリースすることが、彼らのゴールだからだ。 しかし、内製でのプロダクト開発の良いところは、開発チームが「何を作るか」にまで踏み込みやすい環境があることだろう。もしそこに挑もうとすれば、チーム

    「体験」にコミットするチームと「仕様」にコミットするチーム - mtx2s’s blog
    yug1224
    yug1224 2021/05/20
  • エンジニアリングスキルで捉えるチームマネジメント - mtx2s’s blog

    チームのマネージャーが、自らの責務をジョブディスクリプションとして明文化することは難しい。職務内容や権限を、断片的にしか書けないかもしれない。もしそうなるなら、実務も断片的になっている可能性がある。 チームマネジメント(組織マネジメント)という活動は、個々のマネージャーの経験や関心によって、断片的になりやすいように感じている。断片的とは、マネジメント活動が、責務の一部の領域に偏ってしまっていたり、問題を検知してはじめてその領域がマネジメント範囲であることを知る、といった様子を指している。 このような状態になる背景は、マネージャーにとって、マネジメントが、日々の実務を通して蓄積された経験に基づく活動になっているからではないか。マネージャーは孤独だ。ひとりでその責務を担う。エンジニアとは違い、チームで協働するわけではない。だから、形式知として言語化されず、個人の経験として暗黙知にとどまる。その

    エンジニアリングスキルで捉えるチームマネジメント - mtx2s’s blog
    yug1224
    yug1224 2020/03/25
  • 1