Uzzu::Blog

Software Design, and my life.

チームでソフトウェアアーキテクチャを育てる

この記事はハワイアンAdvent Calendar 2020 9日目の記事です。Clean Agileを読み終えました。大変だなあ。自分の働いている環境というのは恵まれているんだなあと思いました。瑪羅門の家族も読みました。面白いです。本能寺の変の真相には驚きです。全4巻です。

2日目にソフトウェアアーキテクトのスキルセットについて書きましたが、一人であらゆる次元に対して誘導的に成長させていくというのは現実問題難しい所があると思います。自分も現在は進化的である所に偏っていると思いますし、生産性って意味でいうと5年先とかより長期的な所を視野に置きがちな所があります。しかしながら、短期的にもソフトウェア開発を通じてビジネスを成長させる需要に応えられなければ未来などやってこないので、両方の視点からのレビューが必要でしょう。

基本的に進化的アーキテクチャにおいては個々の設計判断をアーキテクチャの外に逃がす事をしますが、その逃す戦略が他の目線から見た時に生産性を損うものになっていないかとか、品質を著しく低下させていないか、といった所のレビューが必要になります。多くの場合はその時々でバランスをとって決断するでしょう。これをソロアーキテクトでやるというのはなかなかに難しいし、一人でやっていては他のメンバーの設計に対する関心が薄れてしまいます。チームで育てる事で、より確実にどの次元の観点も見失う事なく成長を支えていく事ができます。

大変では…と思うかもしれませんが、この営みというのは常時必要なものではないです。Design It!ではアクティブデザインからパッシブデザインへの切り替えというターニングポイントについて解説されていますが、ざっくり言えばそういった営みが求められる時期には波があるので、今リスクを減らしておかないとまずいフェーズは積極的にアーキテクチャ改善のために務めるし、安定期に入ればしばらくPull Requestを観察しながら必要に応じて修正をするように務める、という事になります。寿命の文脈でいうと、寿命が尽きる1年前にはそろそろ寿命について洞察して必要あれば戦略を決めてアクティブに動き始めてないと…というと伝わるでしょうか。寿命が尽きてからでは遅いのは自明ですよね。

短いですが無理せずいきたいので終わりにしておきます。明日はもう少しこの続きを書こうかなと思います。

comments powered by Disqus