ソフトウェア設計・開発はオープンマインドが必要なのではなかろうか

ytake
·

ソフトウェアだけに限った話ではありませんが。

ソフトウェア設計や開発に絶対的な正しさはなく、企業やプロダクトなどによってどんなものが最適解なのかは複数の要因で導かれるものであり、何かの本の通りにやってもうまくいかず、最新技術だけを取り入れてもうまくいかない。

どんな設計やコードが相応しいかはそれまでの失敗の経験が教えてくれることが多いのではないでしょうか。

例えばドメイン駆動設計であれば戦略的設計と戦術的設計が良いバランスで向き合う必要があり、戦術的設計から向き合えば実装方法に傾きがちですが、戦略的設計だけと向き合っても実装方法がわからない状態になるでしょう。

もちろんこれらを経験していると、どうすれば良いやそれは違うなどの意見が出てしまうことが多くあります。

軽量DDDの話などもよくありますが、多くの人が一度は経験するはずです。またこれを経験したからこそどうすべきだったかがわかるのではないでしょうか。

ドメイン駆動設計が全てにおいて唯一の最適解ではありません。多くの共通認識がなければただのコードが多く、追いづらいコードにしか見えないかもしれませんし、自分自身この設計方法が絶対的に正しいとも思っていません。だからこそ今でもいろんな手法をためし、実践し失敗を繰り返しているわけです。

ネガティブなキーワードや強い言葉を多く使った批判は、あくまで経験やバイアスがあってのことで、その経験をしていない方は様々な体験をすることで、自分たちに相応しい方法を見つけることができるようになります。

開発手法や環境が徐々に変わっていく中で、数十年前のやり方を絶対的な正とする必要はあるのでしょうか。

ある程度経験している我々は批判をすることが必要なのでしょうか?

何かを押し付けるのが正しいことなのでしょうか?

もちろん様々意見を言うことは悪いことではありませんが、萎縮させてしまうようなことなどはあってはならないはずです。

基本は温故知新ではありますが、洗練された方法やこれからに相応しい方法を見つけるには開発に関わる多くの人たちで考えて、いろんな方法論やマインドを変えていかなければならないはずです。

何かを絶対的なものとするのではなく、これからの時代に相応しいやり方をみなさんで発見していきましょう!

@ytake
コード書くのはたのしい