変化を抱擁するシステムの作り方:「改修し続けられること」を最優先にする開発
倉貫 義人
ビジネスは、続く限り変化していくものです。それなのに、多くのシステム開発現場では、その変化に対応できずに苦しんでいます。
私たちの仕事のゴールは、単に「システムを完成させること」ではありません。本来のゴールは「ビジネスが成長すること」であるはずです。
このテーマについてお話ししたスライドをこちらで公開しています。
システムの本当の課題は何か
事業が変化し続ける中で、システムの真の課題はバグやセキュリティ、パフォーマンスの低下ではありません。それらは直せば済む話だからです。
本当の課題は、「改修・保守が難しくなること」そのものにあります。
多くのシステムは、時間の経過とともに変更コストが指数関数的に増大していきます。長く使うほどに改修が困難になり、身動きが取れなくなる。このコストを一定に保つためには、システムを「ソフトウェアらしく」作る必要があります。
ソフトウェアの常識は、製造業の真逆
現代のシステム開発において、多くの人が「製造業やハードウェアの常識」を持ち込んで間違った判断をしています。ソフトウェアらしさとは、直感に反するものです。
- 完成しても、終わりではない
- 人を増やしても、速く作れるわけではない
- たくさん作っても生産性が高いとは言えない
- 人に依存せず同じ品質で作ることはできない
- プレッシャーをかけても生産性は上がらない
- 見積もりを求めるほどに絶望感は増す
- 一度に大きく作れば得に見えて損をする
- 工程を分業しても、効率化につながらない
製造業のように「計画を立て、見積もりを出し、人を投入して一気に作る」というアプローチをソフトウェアに適用するとどうなるか。
人が増えるほど管理コストが増し、動かしてみるまで価値がわからず、完成した頃には要件が変わっている。そして、改修困難な負債だけが残ります。
このような「人を増やせば速くなる」という幻想が、いかにプロジェクトを壊すか。この本質については、私の著書『人が増えても速くならない』で詳しく解説しています。
「ソフトウェアらしさ」を守る4つの原則
変化を抱擁するために、私たちは以下の4つの原則を重視すべきです。
- プロジェクトではなく、プロダクト: リリースをスタート地点とし、事業とともにチームを継続し、試行錯誤を繰り返します。
- 製造ではなく、すべて設計と考える: 単に手を動かすのではなく、学習をサイクルに入れ、間違いを許容しながら進めます。
- 外的品質に加えて、内的品質も重視: コードの読みやすさや、技術的負債のないシンプルな構造を維持します。
- 小さく作って、大きく育てていく: まず最小限の動くものを作り、動く状態を維持したまま拡張していく。
マネジメントをアップデートする
体制とマネジメントも、ソフトウェアらしい形に変えていかなければなりません。
- 「受発注」から「協働」へ:上下関係ではなく、共に作るパートナーシップ。
- 「分業」から「多能工」へ:役割を固定せず、領域を超えて助け合う。
- 「計画」から「ロードマップ」へ:固定された予定ではなく、更新し続ける道筋。
- 「指示命令」から「自律組織」へ:現場が判断し、自ら考えて動けるチーム。
製造業の品質が「買った時点が最高(Point of Sales)」なのに対し、ソフトウェアの品質は「使っている時点が最高(Point of Use)」であるべきです。常にアップグレードされ、最新の状態が最も価値が高いことがソフトウェアの姿です。
いいソフトウェアをつくるために
私たちソニックガーデンでは、社会、お客さま、そして共に働く仲間のために「いいソフトウェア」をつくりたいと考えています。
それは、機能が良いだけでなく、開発方法が「いい」ものであり、関わる人を幸せにするものです。変化を恐れるのではなく、変化を抱擁する。そんな開発のあり方を、これからも追求していきます。
さらに詳しく知りたい方へ: 変化を抱擁し、ソフトウェアらしく開発を進めるための思考法をさらに知りたい方は、こちらの書籍もあわせてお読みください。