「ソフトウェアアーキテクトが知るべき97のこと」を読んで
2025/03/21
プログラミング [29] 選ぶ前に試せ
優れたアーキテクトは最後の瞬間(決断を下さないと取り返しのつかない結果を招くとき)まで決定を先延ばしにすることで、ぎりぎりまで判断材料を集めて最適な選択を導く。複数の開発者がそれぞれのソリューションを試行し、最後の瞬間が近づいたときに各ソリューションの長所と短所を評価する。アーキテクトは意思決定する必要さえなく、意思決定プロセスをリードするだけでよい。[81] 武器は慎重に選べ、安易に手放すな
経験に基づく信頼できる技術には、生き残っている理由があるので、簡単に捨てるべきではない。だからといって、技術の進歩による、より優れたソリューションを無視せよというわけでもない。ビジネス上のメリットが明確な場合にのみ、新しい技術の採用を検討すべき。アーキテクトは業界のトレンドに遅れないようにしなければならないが、ほとんどの場合、新しいテクノロジーを真っ先に採用したからと言って大きなアドバンテージはない。[82] 本当の顧客は目の前の顧客ではない
本当の顧客は目の前の顧客ではなく、その顧客がサービスを提供する「顧客の顧客」(エンドユーザー)である。たとえばショッピングサイトの開発では、エンドユーザーが必要とするセキュリティ機能(データの暗号化など)に、顧客が触れない場合でも、開発者はそれを考慮すべきである。エンドユーザーにとって本当に必要なものを実現することが、最終的に全員の成功につながる。[89] システムは用具的に作れ
我々が作るシステムは、誰かの目標達成を助けるための道具であり、それ以外に存在理由はない。優れた道具は使用中に意識されず、身体の一部のように感じられる。一方で、使いづらい道具は注意を引き、ユーザーを目標達成から遠ざけてしまう。システムも同様で、成功するためには、ユーザーが意識せず自然に使えるよう設計されるべきである。参考資料