並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 35 件 / 35件

新着順 人気順

MTXの検索結果1 - 35 件 / 35件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

MTXに関するエントリは35件あります。 開発組織マネジメント などが関連タグです。 人気エントリには 『エンジニアの稼働率を上げれば上げるほど機能リリースが遅くなっていく|mtx2s』などがあります。
  • エンジニアの稼働率を上げれば上げるほど機能リリースが遅くなっていく|mtx2s

    組織内のメンバーを「リソース」として見始めると、それを100%使い切ることにばかり注力してしまいます。リソースの稼働率を下げることは、すなわち、生産性を下げること。マネージャーは、まるで強迫観念に取り憑かれたように、そのような考えに囚われます。 自社でのソフトウェアプロダクト開発において、その対象は特に、開発者に強く向けられます。その理由は明らかでしょう。バックログに積み上がり続けるアイデアをソフトウェアに変えられるのは、開発者だけです。より多く、できる限り早く、アイデアを市場投入したい。彼らに空き時間という無駄を作らせてしまうわけにはいかない。 しかし、そのような努力が、必ずしも良い結果につながるとは限りません。むしろ、開発者の稼働率を高めすぎたことが、リードタイムに悪影響を与えているかもしれないのです。そして言うまでもなく、アイデアの市場投入が延びれば延びるほど、ユーザーにとってもビジ

      エンジニアの稼働率を上げれば上げるほど機能リリースが遅くなっていく|mtx2s
    • コード品質はやはりビジネスに影響を与える - mtx2s’s blog

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

        コード品質はやはりビジネスに影響を与える - mtx2s’s blog
      • エンジニアリングスキルで捉えるチームマネジメント - mtx2s’s blog

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

          エンジニアリングスキルで捉えるチームマネジメント - mtx2s’s blog
        • ソフトウェア開発上の問題や課題をビジネスリーダーや経営者らの関心事とするために - mtx2s’s blog

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

            ソフトウェア開発上の問題や課題をビジネスリーダーや経営者らの関心事とするために - mtx2s’s blog
          • 技術的負債は開発者体験を悪化させる - mtx2s’s blog

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

              技術的負債は開発者体験を悪化させる - mtx2s’s blog
            • 「影響範囲の考慮漏れ」によるソフトウェアトラブルの多発はビジネス継続性に対する危険信号|mtx2s

              リリースするたびに「影響範囲の考慮漏れ」によるトラブルを起こす。こういう症状は、既存のソフトウェアシステムに追加開発を繰り返す組織によく見られるのではないかと感じます。コードやシステムの変更が影響を及ぼす箇所を見逃してしまい、未修正な箇所が残されたまま本番リリースされたために発生するトラブルです。 このようなトラブルが頻発すれば、関係者らは不満を感じます。エンジニアたちの能力に不信感を抱くかもしれません。 しかし、不満の矛先をエンジニアに向けたところで問題が解決することはありません。そもそも原因を見誤っているからです。根本的な原因は、もっと奥深くにあります。 影響範囲の考慮漏れの多発は、ソフトウェアシステムが大きな問題を抱えていることを知らせるサインです。このサインを見逃して表面的な対策ばかりを続けていると、症状が良くなるどころか、かえって悪化し続けることになるでしょう。 問題/原因の3層

                「影響範囲の考慮漏れ」によるソフトウェアトラブルの多発はビジネス継続性に対する危険信号|mtx2s
              • ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s

                自社ソフトウェアプロダクトを内製する組織であっても、開発チームがそれをどうやって作り上げているか、開発者ら以外にとってはブラックボックスであり、不可視です。それだけに、開発チームのパフォーマンスや内部状況の良し悪しは、各々の主観や興味によって、不統一な認識を持ってしまうことも多いでしょう。そしてそのような認識のばらつきは、開発する当人たちにとっても実は同じです。 しかし、例えブラックボックスであっても、自動車のダッシュボードのように様々な指標によってその内部が数値化され、可視化されていれば、チームのパフォーマンスに統一的な認識を持たせやすくなります。 本記事では、どのような指標を可視化すべきか、その代表的なものについて取り上げます。 リードタイム(開発、製造)リードタイムは、開発項目ごとの作業期間を計測したもので、短いほど優れていることを示す指標です。計測対象となるプロセス全体を「開発」と

                  ブラックボックスになりがちな開発チームの内部状況を指標を用いて可視化する|mtx2s
                • コンウェイの法則と、そこで提示された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
                  • チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog

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

                      チーム中心の組織作りのための6つのチーム設計原則 - mtx2s’s blog
                    • チーム・組織デザインの良し悪しはプロダクト開発フローの効率を左右する|mtx2s

                      依頼、調整、合意、承認、etc. こういったコミュニケーションがチーム境界を越えて頻発すると、ソフトウェアプロダクト開発のフローは遅々として進まなくなります。いずれも、機能追加や機能改善を進める上でのクリティカルパスを引き伸ばす要因を生み出すからです。 機能追加や機能改善といったひとつひとつの開発は、アイデアを生み出し、それを価値に変えるまでのフローです。フローが進む過程で、組織内の様々な人の手で、様々なタスクが実行されます。その全てを1つのチームで完結することは、プロダクトの規模が大きくなるほど困難になり、より多くの人々が関わるようになります。そこに、チーム境界を越えた「依頼、調整、合意、承認」といったコミュニケーションが発生するのです。 開発フローのクリティカルパスを悪化させるこのようなコミュニケーションの頻度をどれだけ減らせるか。組織設計、チーム設計で最も注視すべき観点の1つは、そこ

                        チーム・組織デザインの良し悪しはプロダクト開発フローの効率を左右する|mtx2s
                      • 兼務による体制構築はプロジェクトの効率を損なわせる|mtx2s

                        ソフトウェア開発プロジェクトは、「兼務」を用いるチーム編成が多用されやすい対象ではないでしょうか。エンジニアであれば誰もが経験したことがあるでしょう。1人で複数のプロジェクトやチームを掛け持ちするあれです。マネージャーであれば、組織の人的リソース配置を考える時の手段の1つとして用いたことが何度かあるはずです。 しかし、兼務が引き起こす様々な弊害や問題については、あまり意識されないまま多用されているように感じます。 たとえば、兼務者本人にとってプロジェクトの掛け持ちは、仕事のマルチタスク化やミーティングの増加に苦しむ原因になります。組織の観点からも、兼務への依存は、知識の偏りや負荷の偏りという弊害をもたらすことに繋がりかねません。プロジェクトの観点から見ると、兼務という形での「人的リソースの共有」は、プロジェクト間での「リソースの競合」を引き起こしやすく、それが市場投入までの時間を長くする要

                          兼務による体制構築はプロジェクトの効率を損なわせる|mtx2s
                        • マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog

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

                            マイクロソフトの調査にみるコードのオーナーシップと品質の関係 - mtx2s’s blog
                          • 「アジャイルテストの4象限」はアジャイル開発を補完するソフトウェア開発手法である - mtx2s’s blog

                            従来のプロジェクトにおける「テスト」は、リリースや納品前の最終工程として行われるものだ。多くのケースでそれは、前工程までの遅れと、それでも固定されたままのリリース日に挟まれ、予定された期間を食いつぶされた中で実施される。その上、時間に追われる中で実装されたソフトウェアは、動作確認も十分にされない状態でテストフェーズをむかえることになる。こうして品質の保証は、テスターに丸投げにされるというのが実態ではないだろうか。もちろんここでテスターに丸投げされているのは外部品質、特に機能面での品質の保証のみだ。非機能面での品質の保証は手薄になり、内部品質は顧みられることはない。 これは、ウォーターフォール開発を採用するプロジェクトで私が頻繁に経験した失敗パターンであるが、アジャイル開発でも遭遇する。その理由は、そのままのテストモデルがアジャイル開発の中でも用いられるために、同様の失敗パターンに陥りやすく

                              「アジャイルテストの4象限」はアジャイル開発を補完するソフトウェア開発手法である - mtx2s’s blog
                            • ビジネスインパクトのない新機能に費やす時間とコストを低減する|mtx2s

                              リリースした新機能がビジネス指標に何の影響も与えていない。ユーザーからの評判も芳しくない。いや、そもそも反応すらない無風状態。我々が費やした努力と時間はなんだったのか。 このような失敗は、ソフトウェアプロダクト開発に携わっていると何度でも経験します。むしろ、期待通りの成果を得られることの方が少ないでしょう。 失敗から得られる知見もありますが、それと引き換えに費やしたコストと時間は戻せません。それが繰り返されると、組織全体の士気が落ち、学習性無力感に支配されていきます。ソフトウェアプロダクトは、そのマネジメントにおいて、常にこれらのリスクを抱えています。 本記事では、機能リリースに伴うこのようなリスクを制御する方法について考えます。 期待する成果が得られないことを前提に計画する機能リリースが期待どおりのインパクトをビジネスにもたらすかどうか。それを事前に予測し、世の中に送り出すべきアイデアを

                                ビジネスインパクトのない新機能に費やす時間とコストを低減する|mtx2s
                              • 9つのチームロールでチームワークを強化する / ベルビンチームロール - mtx2s’s blog

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

                                  9つのチームロールでチームワークを強化する / ベルビンチームロール - mtx2s’s blog
                                • デプロイ頻度やリードタイムの正確な計測にこだわらなくていい(前提はあるが) - mtx2s’s blog

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

                                    デプロイ頻度やリードタイムの正確な計測にこだわらなくていい(前提はあるが) - mtx2s’s blog
                                  • リリースした新機能や改善の多くに価値がないという調査結果が意味すること - mtx2s’s blog

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

                                      リリースした新機能や改善の多くに価値がないという調査結果が意味すること - mtx2s’s blog
                                    • チームの機能と配備を考えるための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
                                      • 開発組織を分散モノリスにしないチーム分割と協働のデザイン - mtx2s’s blog

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

                                          開発組織を分散モノリスにしないチーム分割と協働のデザイン - mtx2s’s blog
                                        • 開発と保守・運用の分業は個別ミッションの遂行手段にコンフリクトを生じさせやすい - mtx2s’s blog

                                          ソフトウェアエンジニアリング組織の主たる業務機能は、開発、保守、そして運用の3つだろう。これらをどう組織化するか。それが、生産性にもビジネスにも影響する。私は多くのケースにおいて、この3つの機能をすべて持つ、少人数のプロダクトチームをいくつか組織化する。その理由は、過去の記事で何度か書いたように、開発でのアウトプットに対するフィードバックサイクルをまわせるようになるからだ。それが、技術・サービスの両面を向上させる。 しかし本稿のケースは違う。ここで取り上げるのは、保守・運用が、開発とは分離された構造を持つ組織だ。この体制における課題を明らかにし、そのうえで解決策を探ってみたい。 事象は開発と保守・運用の分離が上手く機能していないこと 問題は開発が保守・運用を阻害すること 課題は個別ミッション遂行におけるコンフリクトを解消すること 対策は共通ミッションに立ち戻ること 結論は両チームをあえて密

                                            開発と保守・運用の分業は個別ミッションの遂行手段にコンフリクトを生じさせやすい - mtx2s’s blog
                                          • 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
                                            • 兼務はチームの独立性とのトレードオフ - mtx2s’s blog

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

                                                兼務はチームの独立性とのトレードオフ - mtx2s’s blog
                                              • ソフトウェアプロダクトの機能追加・機能改善をプロジェクト体制で進めるのはもうやめよう|mtx2s

                                                ソフトウェアプロダクトをビジネスの中心に据える企業にとって、プロダクトの競争力を高めることは、一番の関心事です。だからこそ、プロダクトをより顧客価値の高いものに磨き上げようと、アップデートを繰り返すことに腐心する。 しかし、残念なことに、魅力的なプロダクトというものは、すぐに競合他社に真似されてしまいます。一度獲得した優位性を、長期間持続することは難しい。むしろ、競争優位性など一時的であることが普通だと考えた方が良い気さえします。 だからこそ、「プロダクトの競争力を高めること」と同時に、「プロダクト開発能力の競争力を高めること」が重要だと、私は考えています。魅力的なプロダクトを作ることに再現性があり、それを短期間で実現できる強い開発組織を作り上げるということです。競合他社も、プロダクトを真似することは簡単にできても、開発能力を真似することはさすがに難しいはず。 プロダクト開発に実行責任を持

                                                  ソフトウェアプロダクトの機能追加・機能改善をプロジェクト体制で進めるのはもうやめよう|mtx2s
                                                • 「体験」にコミットするチームと「仕様」にコミットするチーム - mtx2s’s blog

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

                                                    「体験」にコミットするチームと「仕様」にコミットするチーム - mtx2s’s blog
                                                  • エンジニアリングマネージャーとしてのミッション - mtx2s’s blog

                                                    ソフトウェアプロダクト開発領域を預かるエンジニアリングマネージャーとして、あなたのミッションは何であるか。そう問われれば迷わず、組織としての「プロダクト開発能力の差異化」だと答える。これはもちろん私個人の見解ではあるが、受託開発組織のマネジメントを離れ、プロダクト開発組織を主としてマネジメントするようになった10年以上前から変わらない。 「プロダクトの差異化ではなく?」と聞き返されることも多い。ユーザーやビジネスにとって価値ある優れたプロダクトやフィーチャを作り出すことはもちろん第一級のミッションだ。そうであっても、そこで得られた成功が "偶然" であるなら組織としての持続性がない。「プロダクト開発能力の差異化」とは、そういった成功に再現性を持たせることを意味する。 組織としての「プロダクト開発能力の差異化」 開発能力はデリバリパフォーマンスとして表れる 組織構造とプロセス、アーキテクチャ

                                                      エンジニアリングマネージャーとしてのミッション - mtx2s’s blog
                                                    • モノリポとマルチリポの比較が浮き彫りにする開発能力を高めるための課題とトレードオフ - mtx2s’s blog

                                                      ソフトウェアプロダクトに対して求められ、日々繰り返される機能追加は、コードベースを肥大化・複雑化させ続ける。成長する組織では、開発者の増員がそれを更に加速させるだろう。そして、認知負荷の軽減を目的に、いずれはコードベースの分割について考えるようになる。その目指すアーキテクチャがマイクロサービスにせよ、モジュラモノリスにせよ、コンポーネントやモジュール単位でリポジトリを分けるというのが、コードベースのもっとも一般的な管理方法ではないだろうか。 しかし、ここにはもう1つの選択肢がある。「モノリポ(モノレポ)」だ。すべてのコンポーネント、モジュールを1つのリポジトリで管理する。それどころか、社内のあらゆるソフトウェアプロダクトを1つのリポジトリで管理することさえあり得る。 モノリポにはどのような利点や欠点があるのだろうか。私自身、小規模のマルチプロジェクトリポジトリを複数組み合わせて扱うことが多

                                                        モノリポとマルチリポの比較が浮き彫りにする開発能力を高めるための課題とトレードオフ - mtx2s’s blog
                                                      • 組織設計の失敗に見るソフトウェア開発への悪影響 - mtx2s’s blog

                                                        問題を抱えるソフトウェア開発組織を観察すると、その根本原因が組織設計にあると気付くことも多い。組織の構造的な歪みがまるで力場を形成するかのように、そこに配置された様々な要素に作用し、悪影響を及ぼしている。 組織設計のまずさから生じる問題というものはとらえ難く、理解し難い。その問題に気付かないから、真っ先に矛先がソフトウェアエンジニアリング領域へ向いてしまい、開発プロセスやソフトウェアアーキテクチャの改善を繰り返すが大きな効果が得られない。効果があったとしてもそれは一時的で、気付けば元に戻っている。 コンウェイの法則を思い出せばその従属関係に頷けるはずだが、多くの現場ではこういったソフトウェアエンジニアリング領域に閉じた施策に終始しがちではないだろうか。 以下に挙げる3タイプの組織問題は、ソフトウェアエンジニアやマネージャーとして私が実際に経験したいくつかの事例をタイプ別に集約したストーリー

                                                          組織設計の失敗に見るソフトウェア開発への悪影響 - mtx2s’s blog
                                                        • mtx2s’s blog

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

                                                            mtx2s’s blog
                                                          • クネビンフレームワークとソフトウェアエンジニアリング - mtx2s’s blog

                                                            2007年にクネビンフレームワークが Harvard Business Review で紹介されて以降、ソフトウェアエンジニアリングの世界では、アジャイル開発、特にスクラムを採用すべき理由の説明で本フレームワークが用いられるようになった。 リーダー向けツールとして開発された意思決定のためのフレームワークが、いったいどのようにして、ソフトウェアエンジニアリングの開発プロセスモデルや開発方法論を説明するというのだろうか。 本稿では、クネビンフレームワークがどういうものであるかを紐解きつつ、その具体例として、ソフトウェアエンジニアリングの現場に適用することを試みる。 クネビンフレームワークとは Simple / 単純な状況にある領域 Complicated / 込み入った状況にある領域 Complex / 複雑な状況にある領域 Chaotic / カオスな状況にある領域 Disorder / 無

                                                              クネビンフレームワークとソフトウェアエンジニアリング - mtx2s’s blog
                                                            • イベント参加レポート「TechBrew in 東京 〜mtx2sさんと考えるコード品質とビジネスインパクト〜」 - カミナシ エンジニアブログ

                                                              こんにちは! カミナシでエンジニアリングマネージャーとして働いております、吉永です。 先日、 3/21 に Findy さんが主催の「TechBrew in 東京 〜mtx2sさんと考えるコード品質とビジネスインパクト〜」というイベントに参加してきました。 findy.connpass.com イベントにブログライティング枠なるものがあったので、この枠での参加ではないものの、参加レポートを書いてみます。 動機 mtx2s さんの記事は以前から参考にさせていただくことが多くて、毎回首がもげそうになるくらいの共感や学びを得られていました。自分自身のマネジメントの参考にもしています。いつかお会いしてみたいものだなと思っていたところ、偶然このイベントが開催されることを知り、すぐに参加を決意した次第でした。 イベントのテーマも今の私にうってつけのものでした。私の担当するチームが提供するサービスは20

                                                                イベント参加レポート「TechBrew in 東京 〜mtx2sさんと考えるコード品質とビジネスインパクト〜」 - カミナシ エンジニアブログ
                                                              • アジリティに欠けるプロダクト開発は人手不足に陥りやすい|mtx2s

                                                                自社ソフトウェアプロダクト開発が慢性的な人的リソース不足に陥りやすい背景は、いたってシンプルです。「アジリティ(agility)」がないこと。ほんと、これに尽きる。プロダクトマネジメントの問題であって、採用では解決しません。 私自身の経験や、観測可能な範囲からではありますが、アジリティのないプロダクト開発に共通する特徴として、次の三つが挙げられます。 ・ロードマップに個々の開発案件をプロットしている ・数か月規模で開発する案件を抱えている ・人的リソースが分散している本稿では、これらを「人手不足に陥りやすい、アジリティに欠くアンチパターン」としてその問題点を明らかにします。あわせて、それぞれ対にする「人手不足に陥りにくい、アジリティに優れたプラクティス」についてもお話していこうと思います。 [アンチパターン1]ロードマップに個々の開発案件をプロットしている経営層とのコミュニケーションツール

                                                                  アジリティに欠けるプロダクト開発は人手不足に陥りやすい|mtx2s
                                                                • ニューバランスのGORE-TEX搭載モデル「MTX580GA」はルックスも性能も抜群な一足! 雨の日が楽しみになっちゃうよ | ROOMIE(ルーミー)

                                                                  急な天候の変化が多いこの季節。 お気に入りのスニーカーを履いて出かけたいけど、天気が不安だなぁなんてこともありますよね。 雨が降っても大丈夫なお気に入りのスニーカーがあれば。 そんな方にオススメしたい、ゴアテックスを搭載した1足がニューバランスにあるんです! MT580のゴアテックス搭載モデル 1996年に発売されていたトレイルランニングモデル「MTX580」のデザインはそのままに、現代仕様にブラッシュアップした「MTX580GA」 ゴアテックスを搭載し、急な天候の変化にも対応してくれます。 ゴアテックスタグは両足外側に。 クッション性に優れたフルレングスABZORBミッドソール、インソールはPUインソールを使用し。 日本人に多いと言われている甲高幅広な足でも履きやすいSL-2ラスト(靴を作る時の木型)を採用、フィット感の高い1足となっています。

                                                                    ニューバランスのGORE-TEX搭載モデル「MTX580GA」はルックスも性能も抜群な一足! 雨の日が楽しみになっちゃうよ | ROOMIE(ルーミー)
                                                                  • ArchUnitでアーキテクチャをテストする - mtx2s’s blog

                                                                    ソフトウェアアーキテクチャには、依存関係のデザインという側面がある。その目的は多くの場合において、ソフトウェアの振る舞いに対する変更容易性を高めることではないだろうか。 ソフトウェアプロダクトは、そのライフサイクルを通して、繰り返し変更し続けられていく宿命にある。それがユーザーや顧客の要求であり、彼らの価値につながるからだ。そしてその提供には迅速さも求められる。依存関係のデザインは、これを実現するために組み込まれたソフトウェアの構造なのだ。 アーキテクトの悩みのひとつは、このような目的に基づいて自らがデザインしたソフトウェアの構造が、儚く崩れ去っていくことだ。アーキテクチャとは所詮はルールでしかない。開発チームが厳密にルールを守らない限り、望ましい構造を構築・維持することはできない。アーキテクチャは脆いのだ。それこそが技術的負債の一因でもある。 無償のJavaライブラリとして提供されている

                                                                      ArchUnitでアーキテクチャをテストする - mtx2s’s blog
                                                                    • エンジニアリングによるビジネスパフォーマンスチューニング - mtx2s’s blog

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

                                                                        エンジニアリングによるビジネスパフォーマンスチューニング - mtx2s’s blog
                                                                      • 『エンジニアの稼働率を上げれば上げるほど機能リリースが遅くなっていく|mtx2s』へのコメント

                                                                        ブックマークしました ここにツイート内容が記載されます https://b.hatena.ne.jp/URLはspanで囲んでください Twitterで共有

                                                                          『エンジニアの稼働率を上げれば上げるほど機能リリースが遅くなっていく|mtx2s』へのコメント
                                                                        1

                                                                        新着記事