エンジニア視点と顧客視点のバランス取りがPMの仕事です。
こんにちは、 CEOの打田です。
日々、受託開発や自社サービス開発を行っている中で、ふと気づいた事があるので、書いていこうと思います。
ここ2,3年 ReactやVueなどのjavascriptライブラリを用いたフロントエンド開発が盛り上がっていて、エンジニアとしてはぜひともモダンなフロントエンド技術を取り入れたいでしょう。
ただし! そのモダンフロントエンドがサービスのユーザーやお客さん(受託の場合)の役に立つのか? を考えなければいけないと思っています。
目次
弊社の開発スタイル
弊社はWebアプリケーション開発を得意としているので、PHP (Laravel)とjavascript ( React.js )を中心に開発を行っています。
冒頭に書いたようにモダンフロントエンドが台等してきたあたりでReactを触りパフォーマンスの良さとメンテナンス性に優れていたため、弊社でも導入していますね。
しかし、Reactで書くと全てがハッピーというわけではありません。 メリットがあればデメリットがあるんですね。
そのため、弊社では Reactを使うべき所とプレーンHTMLでよい部分とを書き分けていますので、下記で詳しく解説してきたいと思います。
React + html併用開発にしてよかったこと
ではここからフロントエンドを書き分けて良かったことを書いていきましょう!
クオリティ・スピード・費用のバランスが取りやすくなる
Reactのデメリット、それは学習コストと開発コストの増大です。
これまでメジャーだったjQueryを使うにはミニマムCDNから読み込めばよかったわけです。
しかし、Reactを使おうとすると、 node.jsのインストールや トランスコンパイラの babel導入など開発を開始するまでにいくつのもハードルがあります。
そのため、そこで使った時間はお客さんが負担するコストになってしまっているのです。
また、Reactで全て構築(シングルページアプリケーション化)してしまうと、URLとアプリの動きを紐付けるルーティングもPHPで行うより難しくなってしまいます。
こういった理由があり、React単品だとどうしてもコストとスピードが厳しくなってしまいます。
そのため、プレーンHTMLと併用すると、パフォーマンスをどこまで求めるのか? コストとのバランスはどうするのか? を検討する余地ができるわけです。
インターン学生を積極的に開発にアサインできる
プレーンHTMLも併用することで、javascriptスキルがない学生にもタスクを与えることができるようになりました。
弊社はリモートで地方の学生を雇っているのですが、 いきなりReactで開発してもらうには厳しい場面も出てきてしまいます。
そんな時にPHPができれば、HTMLはさほど難しく感じないため、HTMLベースで作ると決めた箇所の開発をやってもらったりしています。
このようにタスクを渡せることで、彼らのスキルアップにも繋がることはとてもいい事ですね!
自分自身のバランス感覚が磨かれた
やはり僕も技術仕上がりなので、どうしても手段であるプログラミング言語にこだわってしまうことがありました。
しかし実際にお客さんと接してみて、お客さんの要望を聞いてみるとプログラミング言語は本当にただの手段なんだなということがわかりました。
そして経験を積むうちに、お客さんの要望を聞く力と技術側のバランス取りができるようになっていました。
つまり、経営者・営業・エンジニアの三つの目を持った人間になれたというわけです!
提案がしやすくなった
こうやって顧客視点とエンジニアの両方鍋を持っていると、コストやパフォーマンスのバランスを取れた提案ができかつ、お客さんの要望に合わせた提案などができるため、とても営業がしやすくなりました。
そもそもエンジニアはどうして技術に偏りすぎてしまうのか?
この結論としてはやはり楽しいからです!
僕はゼロから Web アプリケーションを作ったことがあるため分かるのですが、自分でゼロから作るのですごく楽しいんですよ。
誰に言われるでもなく自分の好きな言語で自分の好きなようにコードが書けると本当に楽しいです。
またエンジニアは技術において、最新のトレンドを追いかけたがる生き物です。
少なくとも僕の周りでは新しい技術をキャッチしていかないと業界に取り残される気がしてとても不安になる方が多いです。
そのため、隙あらば新しい技術を入れて自分の力にしていこうと考えています。
こういった理由もありエンジニアはどうしても顧客視点が抜けてしまうことが多いんですね。
そういった苦手分野を埋めてあげるのもプロジェクトマネージャ屋経営者の仕事だと僕は思っています。
【まとめ】役割分担が大切
色々とモダンフロントエンドについて書きましたが、技術に集中することは全然OKだと思っています。
その技術に特化したエンジニアたちをうまくコントロールするのが、経営者でありPMなので、 最終的にお客さんが喜ぶ形にまとめるのが、僕の仕事ですね!
結局はプログラミングは手段であり道具なので、うまく使いわけていきましょうというお話でした。