技術選定のときに即座にフレームワーク名が出たら終わりだよね。という話
こんにちは。ひらやま(@rhirayamaaan)です。
今日は、とある方ととある話をしたので、そのとある話から思ったとある話を、一つのとある話として残しておこうかなと思って書いてみています。
べろべろのうちのべろべです。
「ひらやまさんが新たにフロントエンドの環境構築するなら、何を使いますか?」
こんなことを聞いていただきました。
デザイナーとして入社しているので、フロントエンドエンジニアとしても対してスキルもない私に、そんな設計レベルの高度な質問をしていただけるなんて本当にありがたいはなしです。。。
私なんて、もともと jQuery でキャッキャッしていただけですし、React だけは書いたことがあるものの、Vue や Angular なんてものは書いたことは全くなく、私が勝手にフォローさせていただいている人は澄み渡るほどに洗礼されているスキルを持っている方々ばかりなわけで、そんなに自信もない状態なわけです。。。
そんなことを思いながらも、どこかで負けたくないという野心も、休職なんかしているくせに持ち合わせていまして、自信満々にこの章のタイトルの質問に対してこんなことを言い放ったわけです。
「現場の方の話を聞いてみてから決めると思います!!」
いやいや、いくら Vue や Angular のことがわからないからってそんな言い回しはないだろw
と自分では思ったのですが、後々お話していく中で、自分は割とこれは本気で思っているなと感じ始めてしまった次第で、なのでたらたらと記事を書いている次第です。
環境は、その場で生活をしていく人がいるということ
私が例えば、独断と偏見で、フロントエンドの環境を、node, React, Redux, TypeScript, Webpack で環境を構築したとします。
まぁまぁ良さそうですよね。
わりかしナウいですし、結構スタンダードですし、今ならこの作り方だよね〜〜もうちょっとナウくするのだったら別でもいいかもだけど〜ぐらいの温度感の環境だと思います。
でも、もし、これは私がその組織の文化や、その事業の未来の話を何も考慮せずに構築している状態だったら…?
もうちょっと具体的に……
例えば、この環境を保守していく職能の人たちが、デザイナーだったら…?
デザイナーが、ギリギリ HTML 〜 CSS と、ちょっとの jQuery までならどうにか書けます!という組織だった場合に、React を使うのが正解だったかと言われると、ちょっと思い悩むところがあります。。。
確かに「いや別に React なんてちょっとやればできるんだし、そういう環境を用意しちゃえばみんなやるって!」という考えもあるのかもしれません。
しかし、やっぱりデザインとエンジニアリングというのは結構考え方は真逆な部分(ワイヤーフレーム設計とコンポーネント設計の仕方などなど)が大きいと私個人としては思うので、一概に決めつけるのは悩ましいところです。
つまり、「伸びしろ」と「得意不得意」を扱い方がとても難しいのがこのフロントエンドという領域だと私は思うのです。
組織上、そのデザイナーたちが少しフロントエンドとして活躍していくことを期待しているのであれば、ガチガチにフロントエンドの環境を構築していくべきだろうとは思います。
逆に、デザイナーはもう少しデザインリサーチ等に力を入れていくべきだと考えるのであれば、フロントエンドの環境構築を考え直すべきなのだろうとも思います。
つまり、その事業の向かっていく方向性や、組織づくりとしてどういうメンバーを育成していきたいのかなどの、様々な要因を複合的に考えた上で環境を構築しないと、結局はその事業の向かっていく道標を阻害していまう可能性が出てくるというわけです。
開発環境を「デザインする」ということ
システム設計に関して、私はサーバサイドのことは全然わからないのですべてを設計することはまずできません。
しかし、こんな私でも一つ言えることは、組織の進む方向を阻害するような開発環境をデザインしたらまずいということです。
インハウスエンジニアであれば、その事業を成長するように働きかけるのはマストだと思います。
それを「この技術がナウいんだ!」という理由だけで選定してしまったら、とてもとてももったいないことだと思います。
とはいいつつも、「この技術がナウいんだ!」という理由が、組織成長のためにしっかりと組み込まれていれば全く問題ないと思います。
「新技術を学ぶ楽しさ」と「事業成長」の2つの要素の折り合いがつくところを一生懸命探っていくのも、一つの「開発環境デザイン」なのだと思います。
私としては、React はまじでぱねぇと思っていますし、TypeScript も型とかまじでぱねぇと思っています。
しかし、その個人の考えがその組織の考え方に合うとも限りません。
人々との対話を通して、その組織がどこを目指しているのかを汲み取っていきながら、その事業が最大限に伸びる手助けとなる最高の環境構築デザインができるエンジニア、デザイナーに、私もなりたいものです。
結局は、エンジニアであってもその環境の「ユーザ」のことを考えて構築していかないといけないんだろうな〜というお話でした。
酔っ払いの駄文にお付き合いいただき、ありがとうございました!