「流行っているから」で選んで、遅くなった
技術を選ぶ時、「今、一番流行っているから」という理由で、フレームワークを選んだことがあります。人気があるものなら間違いないだろう、情報も多いだろう、という期待でした。
ところが、実際に使い始めると、次の問題が出てきました。
- 学習コストが大きすぎた:覚えることが多く、本来の目的(作りたいもの)に取りかかるまでに時間がかかった
- 規模に対して、過剰だった:小さなものを作りたいだけなのに、大がかりな仕組みが必要だった
- カスタマイズしにくかった:フレームワークが決めた作法から外れる、細かい要望に対応しづらかった
結果として、開発のスピードは、むしろ落ちました。
うまくいった進め方:小さく始めて、必要になったら移行する
反対に、うまくいったのが、次の進め方です。
- まずは、小さく、ライブラリで組む
- 規模が大きくなり、フレームワークの助けが必要だと実感してから、移行を考える
必要性を実感してから移行すると、「なぜこのフレームワークが必要なのか」が、体で分かります。そのため、選ぶ基準もはっきりします。
ライブラリとフレームワークの違いは、「自分から呼び出して使う部品」か、「決められた枠組みの中で書く」かです。詳しくは、フレームワークとライブラリの違いをご覧ください。
選ぶ前に確認したい5つの観点
「流行っているか」ではなく、次の5つの観点で、自分の状況に合うかを確認します。
| 観点 | 確認すること |
|---|---|
| ① 規模と期間 | 作るものの規模に対して、大がかりすぎないか。短期間で終わる案件に、重い仕組みを持ち込んでいないか |
| ② 運用できる人 | 完成後に、運用・改修できる人がいるか。担当者が変わっても続けられるか |
| ③ 学習コスト | 習得に必要な時間を、スケジュールに組み込めるか。教材や情報は十分にあるか |
| ④ 自由度 | 将来の要望(細かいカスタマイズ)に、対応できるか |
| ⑤ やめやすさ | 別のものに移行したくなった時に、どれくらい大変か |
特に重視しているのが、②の運用です。技術選定では、「最新かどうか」より、「5年後も運用できるか」を見るようにしています。
状況別:こう考える
| 状況 | 考え方の例 |
|---|---|
| 個人で、小さなものを作る | まずは、ライブラリで十分。必要になったら、機能を足していく |
| 短期間で、画面数が多いものを作る | フレームワークの助けが、大きな効果を出しやすい |
| チームに、すでに使える人がいる | その経験を活かせるものを、優先して検討する |
| 数年にわたって運用する業務システム | 情報が豊富で、長く保守されているかを重視する |
| 学習が目的 | 最新のものより、教材が多く、挫折しにくいものを選ぶ |
小さく始めて移行する3つの段階
「小さく始めて、必要になったら移行する」を、具体的な段階で示します。
| 段階 | 状態 | やること |
|---|---|---|
| ① 試作 | 作りたいものが、本当に必要かを確かめる段階 | 最小限のライブラリや、シンプルな構成で作る。作り込まない |
| ② 拡大 | 使う人や機能が増え、困りごとが出てきた段階 | 「何に困っているか」を書き出し、その問題を解決してくれるフレームワークがあるかを調べる |
| ③ 移行 | 困りごとが、はっきり見えた段階 | 一度にすべてを移さず、影響の小さい部分から、少しずつ入れ替える |
②の「何に困っているかを書き出す」ことが、一番大事です。困りごとが具体的であるほど、必要な機能が絞られ、選ぶべきフレームワークも、自然に絞り込まれます。
選ぶ前に、チームで話し合う5つの質問
導入を決める前に、次の質問に、全員で答えてみてください。答えが曖昧なままなら、まだ決めるのは早いサインです。
- このフレームワークで、解決したい問題は何か(「流行っているから」以外で答えられるか)
- 使わなかった場合に、どんな困りごとが起きるか
- 学習に必要な時間を、誰が、いつまでに確保するのか
- 半年後・5年後に、誰が運用・改修するのか
- 合わなかった時に、やめる方法はあるか
この5つの質問は、フレームワークに限らず、どんな技術を導入する場面にも使えます。**「新しいから」ではなく、「自分たちの問題を解決するから」**選ぶ。この姿勢が、後悔の少ない技術選定につながります。