「Builders Box - ON AIR #3 クリーンアーキテクチャ」に参加した
2021/1/29に「Builders Box - ON AIR #3 クリーンアーキテクチャ」に参加しました。
ゲストは昨年「Clean Agile[1]」(日本語版)を出版されたUncle BobことRobert C. Martinさん。
「Clean Architecture[2]」は読んでません。はい。
ということで感想というか思ったことざっくりと書いてみる。
前半は食事しなら、かつ謎の腹痛で集中できず…。
なので後半というか終盤について。
意思決定を遅らせる
一度にどーんと一式開発するのもいいけど「まだそれはやらなくていいんじゃないか?」と考えることが大事。
YAGNI[3]ですね。
本質的じゃないところにはMockを使ったり、データベースではなくテキストファイルに保存したりして悩まずにサクッと前に進む感じ。。
「データベースを使わないことで設計としての見栄えはよくないかもしれないけど、シンプルになるんじゃないか?」は良い言葉。
で「よいアーキテクチャーは意思決定を遅らせることができるもの。よりよい決定ができる。」と。
実際は早く決めざるを得ないとしても、変更できるようにしておくのが良いアーキテクチャーなんだろうね。
コアじゃないものは後でもっといいものが出てくるかもしれないし、今採用しようとしているものの価値がなくなるかもしれないからギリギリまで決定せずに選択の余地を残して変更できるようなインターフェースにしておく、って感じかな。
これはいわゆるトヨタ本の「開発戦略は「意思決定」を遅らせろ![4]」に通じますね。
"そのやり方は、従来の開発の常識をくつがえすものです。
「開発初期に多数の案を並行して検討する」「最初は製品の仕様を厳密に決めない」
──つまり、「意思決定」をできる限り遅らせる。
一見すると非効率ですが、結果的に開発全体の効率は高まるのです"
決定をできるだけ遅らせようとすると、無視しているように見える(ネガティブに捉えられる)ので要注意と。
「延期と無視」は違うんだけど、こういう言葉のニュアンスがほんと伝わらない。
継続的なスピード
「1個のフィーチャーなら早く開発できるかもしれないけど、10個のフィーチャーを1個のときのように早く開発することはできない。」というのも伝わらない。
目先のことをだけを考えてハリボテを作るならば多分アーキテクチャーは要らない。
目先の利益に飛びついて後で痛い目に会うことは個人だとついやっちゃうけど、せっかく組織であるわけだから防ぎたいところ。
最初は勢いで早く進めて疲れてスローダウンするより、最初から持続可能なスピードで長く走り続ける方がよいんだけど、ほんとこれも伝わらない。
伝わらないことだらけだけど、あきらめたらそこで終了ですよ。
Discussion