BSA / Architectural Care and Feeding


アーキテクチャへの気配りと手入れ

要約

アーキテクチャの成熟や進化だけじゃなくて、気配りや手入れも大切だ。何か新しい機能を加えるのではなく、今ある機能を適切な状態に保ち続けるということ。 それにまつわるフォースには、以下のようなものがある。

最新技術への追従

複雑なアプリケーションは、さまざまな基盤技術の組み合わせでできている。これらの技術の進歩に追従しておけば、手間のかかる再設計を迫られることも少なくなる。

最新に追従しておけば、ユーザー側にも(最新の技術を使えるという)メリットがある。ウィン=ウィンってやつですな。

あと、マーケティングの人たちにとってもうれしいかも。「最新の!改良された!」という売り文句が使えるし。

技術的負債

開発者は常に、予定通りにシステムをリリースするために悪戦苦闘する。その一方で、長期的なソリューションも組み立てないといけない。

うまくいっている開発チームは、妥協すべきタイミングをわかっている。醜いハックをしてでも納期に間に合わせなえればいけないこともある。 その結果、とりあえず今回のリリースを乗り切ったとしても、その後のリリースでそのツケをおわされる。

既知のバグ

複雑なアプリケーションには、必ずといっていいほどバグがある。やっかいな雑草みたいなものだ。 庭の雑草を放置しておくと、それが目に付くようになったころにはもう手遅れだ。 時間をとって既知のバグをつぶしていけば、開発者も幸せになるしアーキテクチャも改善される。


ライセンスへの準拠

複雑なアプリケーションは、いろんなベンダーが絡んでいるので、ライセンスの扱いが難しい。 どこかのベンダーが製品をアップグレードしたら、それに追従することになるだろう(「最新技術への追従」)。 新機能がいらないのなら更新を見送ってもいいのだけれど、ライセンス的にそうともいっていられないこともある(サポート切れなど)。

この件は第5章で扱う予定。

担当者のつぶやき

みんなの突っ込み