« ChatGPTをドラえもんに進化させる6ステップ | トップページ | うんこを限界までガマンしたことがある人たちと、限界を突破した悲しみを知る全ての人たちに贈るアンソロジー『うんこ文学』 »

システム開発に銀の弾丸はないが「金の弾丸」ならある『人が増えても速くならない』

例えばソフトウェア開発において、

  • 人が増えても納期が短くなるとは限らない
  • 見積もりを求めるほどに絶望感が増す
  • 納期をゴリ押すと、後から品質はリカバリできない

これを見て、「だよねー」「あるあるw」という人は、本書を読む必要はない。

プログラミングは人海戦術で何とかならないし、「厳密に見積もれ」というプレッシャーは見積額を底上げするし、納期が優先されて切り捨てられた品質は、技術的負債として残り続ける。経験豊富なエンジニアなら、大なり小なり、酷い目に遭ってきただろうから。

だが、これらを理解できない人がいる。

  • 要員を追加して、手分けしてやれば一気に片付くはず
  • 厳密にやれば、見積りバッファーはゼロにできる
  • 品質のことはリリース後にじっくりやればいい

……などと本気で考えている。これは、ソフトウェア開発とはどういうものか、特性を知らないからだ。こんな無知な人間が経営層にいたり、顧客の代表となった場合、プロジェクトに赤信号が灯る。

そんな場合にどうするか?

無知な経営層・顧客には、「妊婦が10人が集まっても、来月に赤ちゃんは生まれてこない」とか「ゴーイングコンサーンの不確実性と同じように、見積もりの解像度を完璧にできない」などと説明してきたが、代替わりする度に同じ説明をするハメになる。

ソフトウェア開発の特性を要約し、「べからず集」をまとめたものはないだろうか。

例えば、ブルックス『人月の神話』やデマルコ『ピープルウェア』などの名著があるが、あれはエンジニア向けの「あるある集」であり、あれ読んで「分かるー」という人は、さんざん酷い目に遭ってきた人たちである(ボリュームもそれなりにある)。

そうしたエッセンス的なものを濃縮し、経営層向けにまとめたものが、本書だ。

100ページちょいでサクッと読める手軽さが良い。経営用語に置き換えたり、現場での会話を再現したり、経営層に分かるような工夫が凝らされている。さらに、カネを握る立場ならではの提案が成されており、「マネジメント層はまずこれ読め」とお勧めできる。

銀の弾丸はないが「金の弾丸」はある

ソフトウェア工学の聖書とも呼ばれる『人月の神話』には「狼人間を撃つ銀の弾丸は無い」とある。ソフトウェア開発において万能の特効薬なんて無いという喩えだ。

だが本書では「金の弾丸」が提案されている。カネで人を集めて人海戦術でしのぐといったものではなく、生産性を比較的容易に高める投資だ。

それは、「エンジニアが働く環境に投資すること」だという。

効果が出やすいのは、エンジニアが利用しているPCを高性能にすることになる。コンピュータの処理速度が速くなる分、人の待ち時間が減ることになり、その分、生産性は向上する。

あるいは、大きな4Kディスプレイを複数用意するとか、性能の良いキーボード、マウス、椅子や机にすることで、エンジニアが働く環境全体を良くする。さらにChatGPTなどAIに課金して各自で使えるようにすることで、エンジニア一人あたりの生産性を高めることができる。

物理的にPCの性能を上げるのではなく、クラウドに移管して、クラウドの性能を増強することも有効だという。

プロジェクト指向からプロダクト指向へ

人を増やしても速く作ることはできない。人を増やすほど、新メンバーがキャッチアップするための教育コスト、コミュニケーションコスト、タスク割りの手間がかかり、逆効果になることがある。

ではどうするか?

速く作ることはできないが、「速く作れるチーム」は作れるという。速く作れるチームとは、メンバー同士の信頼関係があり、心理的安全性が高く、ソフトウェア開発についてのポリシーが揃っている。そんな歴戦のチームなら、難度の高いソフトウェアであっても速く作ることは可能だという。

ただし、そうしたチームを作るのに時間がかかる。ソフトウェアを育てていくのと同時に、それを開発するチームを育成してゆくことが重要だと説く。

そのためには、目的と期間が限定される「プロジェクト」という考え方から離れ、バージョンアップを継続し改善していく「プロダクト」を目指せという。確かにプロジェクトだと、目的を達成したらメンバーは解散という前提が裏にある。

プロダクト指向とは、エンジニア向けに言うなら、開発&運用を組み合わせたDevOpsのことだろう。あるいは、ユーザに使ってもらいながら、チームとソフトウェアが共に育っていくアジャイル開発のことかもしれぬ(本書が良いのは、そういう用語を使わずに説明しているところ)。

現実がそうであるように、ソフトウェアは完全ではない。変化に適応するために、不完全さを受け入れろと説く。エンジニアにとっては「あたりまえ」の問題ばかりだが、それを経営層が理解していないことが問題なのだ。そのギャップを埋めてくれる最適な一冊。

このエントリーをはてなブックマークに追加

|

« ChatGPTをドラえもんに進化させる6ステップ | トップページ | うんこを限界までガマンしたことがある人たちと、限界を突破した悲しみを知る全ての人たちに贈るアンソロジー『うんこ文学』 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« ChatGPTをドラえもんに進化させる6ステップ | トップページ | うんこを限界までガマンしたことがある人たちと、限界を突破した悲しみを知る全ての人たちに贈るアンソロジー『うんこ文学』 »