webサービスをこれから作りたいというスタートアップで開発会社とmtgして色々提案されたけどどう選べばいいのかわからないという方は多いハズ。特に言語ってどういう基準で選んだら良いかよくわからない。今回は言語をはじめ、フレームワークなど技術選定をどうしていけばいいかをまとめていきます。
最初にミスしてしまうとなかなか引き返せないので要注意です。
技術選定の主な要素
開発における技術的な選択をこの記事では技術選定と定義します。特に最初重要なのが
- どの言語を選ぶか
- どのフレームワークにするか(そもそもアプリにするか、webサイトにするかも今回はここにいれます
上記2つになります。
なぜ技術選定が重要なのか?
技術選定が重要なのがあとからなかなか変更できない点です。この2つはあとから変更しようとするとまるまる作り直したりしないといけないため非常に変更コストが高いです。
言語選定の際の注意
どのプログラミング言語にすればいいのかはエンジニアじゃない人から見たら全くわからないと思うのですがその言語のエンジニアはどれくらいいるか?はチェックしておいた方がいいです。
言語の途中変更は難しいのでそのサービスを続ける限りその言語のエンジニアをチームに維持し続けないといけません。もしレアな言語だったり平均給与の高い言語だった場合、チームの意地が難しくなったり人件費が上がってしまったりします。
フレームワークはできるだけ最小構成に
次にフレームワーク。そもそもフレームワークって何って話ですがwebサービスを作る上で今は1から作ることはなく、フレームワークという土台になるものの上に作ることが多いです。そうしたほうがいろんな人の書いたコードを再利用できるので格段に早くなります。え、使い回しだとセキュリティとかどうなのとか楽しているだけじゃと非エンジニアの方は思うかもしれませんが世界中の人が使っているものを土台としたほうがセキュリティなどの面からも安心です。
この記事がわかりやすかったです
プログラミングにおけるフレームワークとは?特徴と使い方、コードの具体例を解説!
https://products.sint.co.jp/topsic/blog/framework
本記事ではフレームワークだけでなく、もう少し広くアプリにするかwebにするか、SPAにするかなども含んで話していきます。(SPAはここではアプリのように動くwebサイトぐらいの認識で大丈夫です。
フレームワークもwebサービスをずっと運営していくことを考えると人数が少なくなるように組んだ方が理想です。例えばアプリの場合、サーバーサイドとiOS、androidのエンジニアがそれぞれ必要になり、3人ぐらいでやるのが多いです。一方、webでフロントエンド(webサイトの見える部分)もhtml,cssのオーソドックスなものにすれば1人ですむ場合もあります。またフロントエンドを凝ってアプリのようにサクサク動かしたい場合、SPAという技術があるのですがこれはフロントエンドとバックエンドで2人いる構成になることが多く、html,cssのオーソドックスなものでwebサービスを作る場合より工数、人数がかかる場合が多いです。
*実際は参加するエンジニアのスキルによるのと、全部できるスーパーエンジニアがいればどの構成でも一人ですむんですがそういう天才はいない想定です。
そう考えると下記の順で低コストですみます。下にいくほど高コスト。
- webサイト(フロントエンドはhtml,cssのオーソドックスなもの)
- SPA(フロントエンドにjavascriptのフレームワークを用いたサイト)
- アプリ
開発会社は経験済みの言語を使いたがる
開発会社は自社の経験している言語などを提案するのでちゃんとプロジェクトに合っているのかは調査が必要です。複数の開発会社に提案をもらう、提案のレビューをエンジニアにしてもらうなどしたほうがいいです。
airteamで開発会社のレビューをもらう
ここから宣伝です。airteamだと現役のエンジニアに開発会社の提案をレビューしてもらったり技術相談をできたりします。相談、レビューだけにエンジニアを雇うのは非現実的ですが、経営陣にエンジニアがいないとそのまま鵜呑みにするのも怖い。そんなときに相談ください。
airteamサイト