フロントエンド開発の2M1S
2M1S という言葉は自分が勝手に作ったものなのですが。
フロントエンド開発がうまく進むプロジェクトとうまく進まないプロジェクトをともに数多く経験してきまして。
うまく進むプロジェクトには、やっぱりうまく進むなりの理由があるなぁと。
逆にうまく進まないプロジェクトには、それなりにうまく進まない理由があるわけで。
今回はそんな中から、個人的に大切だと思う 2M1S について書いていこうと思います。
Majority(メジャーであること)
1 つめに、メジャーな技術を使うことが大切だと思っています。
たまに遭遇するケースとして、リードエンジニアがマイナーな技術を選択してしまったばかりに、ネットに情報が少なく、開発がスムーズに進まないケースがあったりします。
当たり前のことだと思うのですが、メジャーな技術にはメジャーになるだけの理由があるからメジャーなわけで。
マイナーな技術にはマイナーである理由がやっぱりあるものです。
で、これは技術に限らず、開発手法やソフトウェアなどの選択にも共通して言えることで。
メジャーな選択肢を採ることによって、無難かつスムーズに開発って行うことができるはずです。
会社独自のやり方とか、プロジェクト独自のやり方とか、ほんとやめましょう、誰も得をしていないですよ?
Modern(モダンであること)
メジャーな技術なら何を使っても良いのかと聞かれると、それだけでは選択する理由としては弱いのかなーと感じます。
とくに、メジャーであったとしてもレガシーな技術を使うべきではないと思っていて。
フロントエンド界隈は技術の移り変わりが激しいとよく耳にしますが、これは事実です。
年単位どころか、月単位で刻一刻と流行りは変わっています。
なので常に最新の情報のキャッチアップを行うとともに、常にメジャーとモダンのバランスを見極めた選択を行うことが重要かなと。
たまに平然と数年前のパッケージを推してくるプログラマーとかいますが、ほんとやめてほしいです。
Simple(シンプルであること)
おそらくこれが 1 番難しいと思っているのですが、シンプルな設計を心がけるようにしましょう。
これは持論なのですが、上にも書いた通り、日本企業が今更独自の開発手法を採択するメリットなんて一切存在しないと思っています。
基本的には海外の大手 Tech 企業、つまり GAFAM の開発手法をただ真似して開発を行えば良いと思います。
ただその一方で、GAFAM のやり方をそのまま取り入れる必要はないわけで。
海外の Tech 企業は日本の企業とは規模感が比較にならないほど大きく、それゆえに複雑な構成をなるべくシンプルにまとめている側面も大きいです。
そのため、スケール観については各々の会社のサイズに落とし込む必要があるわけで。
GAFAM のスケール感をそのまま各々の会社に導入してしまうと、本来であれば不必要なオペレーションや、使用しない技術などが大量に発生します。
なので、結局ケースバイケースという結論に至ってしまうのですが。
常にシンプルな設計を心がけ、必要最低限の組み方を意識することが大切だと思っています。
どこのプロジェクトにも言えるのですが「なんでこのスケール感でこんなことしなきゃあかんの?」ということをやりすぎているよなぁと。
ムダを削ぎ落とすのではなく、そもそもムダになり得ることを最初から導入しないようにしましょう。
ということで、個人的に大切だと思う 2M1S でした。
2M を意識されているエンジニアはちらほら目にするのですが、2M を意識すればするほど 1S に対する意識が薄れていく印象があります。
シンプルな設計を行えば、それだけで開発がスムーズに進むようになります。
改めて 2M1S が実現できているかどうか、振り返ってみるのはいかがでしょうか。