Notes on Simplicity

シンプルさに関する注意事項

シンプルとは、複雑さが存在しないことではありません。それは、問題をきれいに解決できるほど十分に理解した結果です。

どのソフトウェアも最初はシンプルです。いくつかのファイル、明確な目的、小さな表面積。その後、機能が追加され、特殊なケースが処理され、やがて、理解するために図が必要なものが見えてきます。これは避けられないことではありませんが、防ぐには規律が必要です。

シンプルさの難しい部分は、最初のデザインではありません。それは複雑化に対する継続的な抵抗です。すべての機能リクエスト、すべてのバグ修正、すべてのリファクタリングは、複雑さを増す機会となります。 「ノー」と言うのは最も重要なデザインスキルですが、最も評価されていません。

機能として削除する

製品の最良のバージョンには、以前のバージョンよりも機能が少ないことがよくあります。機能が欠けていたからではなく、誰かが、利益を生んでいないものを削除する勇気を持っていたからです。すべての機能には、メンテナンス、認知負荷、インターフェイスの重量などのコストがかかります。

シンプルであることは目標ではなく実践です。シンプルには決して到達しません。あなたはただ「これは必要ですか?」と尋ね続けるだけです。これはもっと分かりやすいでしょうか?何かを追加するのではなく、何かを削除することでこの問題を解決する方法はありますか?答えは「はい」です。

💬 Discussion 1
Guest
Avatar
  • 中村 陽子 (collapsed)
    お昼休みの15分で「シンプルさに関する注意事項」をサッと流し読みするつもりが、気がつけば18時でブラウザのタブが18個開いていました(笑)。同じように完全に沼にハマってしまった方、他にいませんか?
    0