はじめに
この記事は「プリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則」を読んだ際に記した議事録です。
著作権の関係により、詳細には書きません。詳しい詳細を知りたい方はぜひ本書を読んでみてください。
プリンシプルオブプログラミングをPOPと訳します。
What : 二番目のリリースは機能過多
ファーストバージョンをリリースしたプログラマが設計する「セカンドバージョン」そのソフトウェアは、そのプログラマが設計する最も危険なバージョンです。なぜか。セカンドバージョンには機能を盛り込みすぎてソフトウェアとしての品質が悪く、機能の使い勝手も悪くなる傾向があるからです。
Why : 慣れると「多機能主義」になってしまうから
車の運転を思い浮かべてください。免許取り立ての頃は慣れず慎重に運転しますが二年三年と時間が経つと、だんだん慣れてきて慎重な運転をしなくなります。こういうときにこそ事故は起こりやすいのです。
ソフトウェア開発においても、ファーストバージョンの開発では道なことが多く、リスクも高いため、慎重な判断をすることが多くなります。しかし、セカンドバージョンからは「知っていることが多い&慣れてきた」という理由から思いついたもの、良いと思ったものを深く考えずに追加してしまいます。
これが地獄の入り口です。機能を追加しすぎると、コードが複雑になり、保守性が悪くなります。また、機能過多で使い勝手も悪く、ユーザーが離れていきます。
慣れたからといって、軽率な判断をとってしまう傾向があるのです。
How : ユーザーを第一に考えよう
ファーストバージョンをリリースし終えても「多機能主義」にならないように注意しましょう。そのために大事なことはサービスのユーザーを明確に定義して、イメージすることです。
主に以下のようなことをイメージしてサービスへの判断材料とします。
- ユーザーは誰なのか?
- ユーザーは何を必要としているのか?
- ユーザーは何が必要だと考えているのか?
- ユーザーは何を望んでいるのか?
セカンドバージョンで多機能主義になってしまう傾向が多いため、「セカンドシステム症候群」と呼ばれていますが、二番目に限った話ではありません。特に継続的にリリースを重ねるソフトウェアの場合はバージョンを経るごとに「無駄で多機能」になってしまうことがあります。
確かに機能追加により、ソフトウェアの魅力は向上しますが案外ユーザーは「基本機能の安定」や「基本機能の使い勝手改善」を望んでいることが多いのも事実です。
終わりに
この記事ではプリンシプルオブプログラミング 3年目までに身につけたい一生役立つ101の原理原則の議事録を自分用に記しています。
この記事ではカバーしきれていない部分も多いので、是非本書を手にとって読んでみてください。
次回、「【POP100】車輪の再発明」です。ぜひ、次の記事も読んでみてください。