🚔
開発効率を上げる原理 ①やることを減らす
事業のソフトウェア開発で重要なのは発展性
事業を体現するソフトウェアの開発で重要なのは発展性です。
事業の変化にソフトウェアがついていけなくなったらソフトウェアは価値を失ってしまいます。ソフトウェアと言えなくなってしまいます。
事業の変化に追従してソフトウェアを開発するためにはそれなりに高い開発効率を保つ必要があります。どうしたら開発効率を上げられるでしょうか。
速度を上げるのではなく量を減らす
2つのソートアルゴリズムA・Bを使って、同じCPU・同じデータで並び替えるケースを考えます。
Aは10秒、Bは100秒かかったとします。2つのソートアルゴリズムの速度差は具体的にどんな要因によって生まれたのでしょうか。
答えは計算量です。CPUは単位時間あたりの計算回数に上限があるので(2.1Ghz的なやつ)、ソートする際の必要な計算回数が少ないアルゴリズムの方が高速です。
ポイントは高速である要因が単位時間あたりの計算"量"であることです。
ソフトウェア開発で上記のCPUの計算量にあたる箇所は開発者のやらなければならない作業量です。CPUの計算速度に上限があるように人間の開発速度にも上限があります。開発効率を上げるためには開発速度を上げるのではなく開発する量を減らします。ソフトウェアの変更依頼を受けてからデプロイまでに必要な作業量を減らすことが開発効率を上げることに繋がります。
まとめ
開発効率を上げる原理はソフトウェアの変更依頼を受けてから本番反映までに必要な「作業量を減らす」ことです。
ではどうやって作業量を減らすのか。次の記事にて書きます。
Discussion