技術選定はエンジニアがするべきか経営者がするべきか?

技術選定の話題がX(Twitter)で盛り上がっていたので僕の考えを書いていこうと思います。

想定読者

  • エンジニアリング領域に対してあまり詳しくない経営者

結論から

エンジニアと経営者が一緒に話し合って決めるべきだと考えています。
場合によっては外部からアドバイスを受けながら意思決定をしていかなければならない重要項目です。

理由を書いていきます。

技術選定のプロセスの重要性

技術選定は中長期的なプロジェクトの品質、効率、成功に直結するプロセスであり、経営者とエンジニアが共同で検討すべき重要な課題だと考えています。適切な選定することによって短期的にも長期的にも多岐にわたる利点をもたらし、企業全体の戦略的な成功に貢献します。

要求を満たすことができるかの確認

そもそも選んだ技術がシステムに必要な要件を満たしていない可能性が考えられます。
必要な要件を満たしていないのであれば採用を見送るべきです。
※広告システムの配信サーバーなどでPHPやRubyを採用して苦しんでいる会社が実際にあります

こういったことを防ぐためにまずはシステムの必要な機能と性能を定義し、それに合致した技術を選ぶ必要があります。

(とは言ってもだいたいのプロダクト初期ではそこまで求められないことが多いと思います)

初期投資コストの再現 VS 中長期的な開発効率

これは感覚になってしまいますがRuby(Rails)やPHPは初期投資コストを抑えられてリリースできる反面、中長期的にプロダクト開発を行っていく前提となってしまうと少し開発しづらいと思われる側面があります。

「スタートアップなんだから成功するかわからないしとりあえず初期投資コストを抑えてリリースしよう!」という方がいるのは同意です

採用

初期開発において、例えばRubyの経験があるかつRubyしかやりたくないエンジニアであればRubyを採用するか、別のエンジニアを探すしか選択肢がありません。
また、エンジニア採用にはトレンドのようなものもあるのでPHPだから採用しづらい or 採用しやすいといった状況があるので安易に"慣れているみたい
だからPHPを使ってもらう"みたいな選択は避けるべきだと考えています。

エンジニアの視点からの技術選定

エンジニアの個人視点だけを考えた技術選定を考えてみます。
エンジニアの視点からの技術選定は、興味と探求心、モチベーションの向上、生産性の増加、年収向上など、多岐にわたる要素に影響を及ぼします。エンジニアが個人的に興味を持つ技術を探求することは、プロジェクトだけでなくキャリアの成長にも寄与する重要な側面なのでそういったことを書いてみます。

興味と探求心

エンジニアは新しい技術に対する興味を一定持っています。
最新の技術を使用することで新しい挑戦と成長の機会が提供されるため、
◯◯の技術を使えることが選択の大きな動機となることが多いです。
例: Golangを使えるからこのプロダクトの開発を手伝うなど…

市場価値の向上

最新の技術は一般的に既存の問題を解決してくれる可能性が非常に高いです。最新の技術を使える人材になることで市場価値を高めることができ、年収を上げることが期待できます。

モチベーションと生産性との関係

エンジニアが興味を持つ技術を使用すると、そのモチベーションは高まります。高いモチベーションは、生産性の向上につながり、プロジェクトのクオリティと効率を高める可能性があると考えています。

どうすれば技術選定をうまくやることができるか?

まずはシステムの必要な機能と性能を定義し、将来の構想や事業計画、開発計画をまとめる必要があります。
まとめた情報を基にエンジニアと話し合って、技術選定をしていけると良いのかなと。その際、一人のエンジニアだけではなく、複数人に相談できると技術選定の精度が上がります。

まとめ

経営として技術選定が重要かというのが一部はわかっていただけたら良いのかなと考えています。また、エンジニアとしても技術選定はどうしても最新の技術を使ってしまうインセンティブがあります(それが最適でなくても)

身も蓋もない話ですが
経営全体を考えて技術選定を行えるエンジニアの価値は非常に高く、そういったエンジニアを初期から巻き込めると技術選定の難易度は下がるのかなと考えています。

また、技術選定はソフトウェアを開発する事業において経営上重要な選択となります。技術選定の失敗はエンジニアの失敗ではなく、経営上の意思決定の失敗と考えていいと僕は思います

この記事が気に入ったらサポートをしてみませんか?