UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供するN’s Creates (エヌズクリエイツ) 株式会社の西山です。
「新機能の実装に追われて、リファクタリングの時間がない」
「テストコードを書くべきだとわかっているが、納期が迫っている」
エンジニアなら誰しも、このジレンマに苦しんだことがあるはずです。
名著『Clean Architecture』の著者ロバート・C・マーチンは、この永遠の課題について、第34代アメリカ大統領ドワイト・D・アイゼンハワーの言葉を引用して説明しています。
今回は、ソフトウェア開発における「緊急」と「重要」の決定的な違いについて解説します。
アイゼンハワーのマトリックスとは
アイゼンハワー大統領は、タスクを以下の2つの軸で分類しました。
- 重要か、重要でないか(Importance)
- 緊急か、緊急でないか(Urgency)
そして、彼はこう言いました。
「私には2種類の問題がある。緊急な問題と重要な問題だ。緊急な問題は重要ではなく、重要な問題は決して緊急ではない」
これを4つの象限(マトリックス)に当てはめると、以下のようになります。
| 緊急である (Urgent) |
緊急ではない (Not Urgent) |
|
|---|---|---|
| 重要である (Important) |
第1象限
|
第2象限(最重要)
|
| 重要ではない (Not Important) |
第3象限(錯覚)
|
第4象限
|
ソフトウェアにおける「振る舞い」と「アーキテクチャ」
クリーンアーキテクチャでは、ソフトウェアの価値を以下の2つに大別しています。
- 振る舞い(Behavior):機能、バグ修正、仕様通りに動くこと。
- アーキテクチャ(Architecture):構造、変更のしやすさ、保守性。
ここからが本題です。この2つをアイゼンハワーのマトリックスに当てはめるとどうなるでしょうか?
1. 「振る舞い(機能)」は常に緊急である
ビジネスサイド(PM、営業、顧客)にとって、機能追加やバグ修正は常に「緊急」です。「来週までにこの機能が欲しい」「今すぐこのバグを直してくれ」。これらは常に締め切りとセットでやってきます。
2. 「アーキテクチャ(構造)」は緊急ではないが、重要である
一方で、コードを綺麗に保つこと、テストを書くこと、モジュールを疎結合に保つことは、今すぐやらなくてもシステムは動きます。つまり、「緊急」ではありません。
しかし、システムの寿命を延ばし、将来の開発速度を落とさないためには、極めて「重要」です。
エンジニアが陥る「第3象限」の罠
Uncle Bobは、多くの現場で優先順位が間違っていると指摘します。本来あるべき優先順位は以下の通りです。
- 緊急 かつ 重要 (システムダウン対応など)
- 緊急ではない が 重要 (リファクタリング、アーキテクチャ設計)
- 緊急 だが 重要ではない (些細な機能追加、過剰な会議)
- 緊急でも重要でもない
しかし、現実はどうでしょうか?
多くのチームが 3番目の「緊急だが重要ではない」 ことを、1番目の「重要かつ緊急」 だと錯覚して優先してしまっています。
ビジネスサイドは「機能(振る舞い)」の重要性を過大評価しがちです。なぜなら、彼らにとって「アーキテクチャ」は見えないからです。
その結果、重要度が高いはずの「アーキテクチャ(第2象限)」が無視され、重要ではない機能追加(第3象限) にリソースが割かれてしまいます。
アーキテクチャを守るために「闘争」せよ
では、どうすればよいのでしょうか?
ビジネスサイドが「緊急性」を重視するのは彼らの仕事として当然です。彼らはソフトウェアの構造が見えないのですから。
だからこそ、エンジニアの責任が生じます。
エンジニアは、重要だが緊急ではない「アーキテクチャ」の価値を理解している唯一の職種です。
「機能を作る」ことと「構造を守る」ことのバランスをとるために、ビジネスサイドと戦うこと(闘争) も、エンジニアの職務の一部なのです。
「機能開発を優先して汚いコードを書くことは、長期的には開発速度を低下させ、ビジネスを失敗させる」
これを説明し、第2象限(緊急ではないが重要なアーキテクチャ)の時間を確保することは、プロフェッショナルの義務だと言えます。
まとめ
- 振る舞い(機能) は緊急だが、必ずしも重要ではない。
- アーキテクチャ(構造) は緊急ではないが、常に重要である。
- 緊急性に負けて重要性を無視すると、システムは腐敗する。
- 「重要」を優先するために戦うのが、エンジニアの仕事である。
目の前のチケットを消化すること(緊急性)に追われ、コードベースの健康(重要性)を損なっていませんか?
一度立ち止まって、アイゼンハワーのマトリックスを思い出し、今やっている作業が本当に「重要」なのか、問い直してみましょう。
UX / UI のデザインに強いWebシステムの開発と、BtoB Webマーケを支援するWeb制作を提供する
N's Creates 株式会社は、神戸三宮オフィスまで週1出社(それ以外はリモートワーク)できる「デザイナー」「エンジニア」を募集しています。
興味のある方は、カジュアル面談しますので気軽にお問い合わせください!









