2. 2つの価値のお話
内容
ソフトウェアの2つの価値
ソフトウェアには2つの価値があり、1つは「振る舞い」(機能)で、1つは「構造」(アーキテクチャ)である。
この2つのどちらもかけてはならないが、開発者もマネージャーもアーキテクチャより振る舞いに価値があるという認識を持っていることがある。これは間違った態度。
アーキテクチャの価値はソフトウェアが「ソフト」(簡単に変更できるかどうか)であるかどうかで決まる。
この価値の重要性を、極端な例で比べてみる。
- 完全に動くが、全く変更できないため、将来的には価値がなくなる
- 今は動かないが、簡単に変更できるため、将来的にも価値がある
この例だと極端で、全く変更できないソフトウェアなど存在しない。
しかし、コスト面で事実上、全く変更できないといってよいものは多々ある。
つまり、低コストで変更ができることは価値がある。
2つの価値を緊急重要のマトリクスで考える
「振る舞い」と「アーキテクチャ」をアイゼンハワー大統領の緊急重要のマトリクスにあてはめて考えてみる。
- 緊急、且つ重要
- 重要だが、緊急でない
- 緊急だが、重要でない
- 緊急でも重要でもない
振る舞いの領域は1と3で、アーキテクチャの領域は1と2である。
エンジニアたちの中でも、振る舞いの3を1に格上げしてしまい、アーキテクチャをおろそかにしてしまうことがある。
しかし、ソフトウェアエンジニアは、これを適切に判断しアーキテクチャがおろそかになりそうであれば、それを防ぐことも仕事だ。
ソフトウェアエンジニアもステークホルダーの一部ということを忘れてはならない。
学びを活かすアイディア・行動
今の所とくになし