🎸

技術選定はリズムゲームだ

2022/11/24に公開約1,900字

最近は、色々なチームの技術選定についての話を読んで勉強しています。

チーム間の技術選定の違う点さまざまありますが、その一つは、どのくらい先進的かと言うことです。

Progressive vs Conservative

技術選定の話になると必ず話題になりますよね。
よく「これを使うにはまだ早すぎる」「もうこれは古くない?」と言う議論になります。

色々な記事で技術選定の話を読んでいる中で、

  • ある技術選定に対して自分が先進的すぎるとか、保守的すぎるとか感じる基準ってなんなんだろ?

という疑問が出てきましたので深掘りしてみたいと思います。

どんな技術選定を先進的すぎると感じるか?

例えば、私が、ある技術採用に対して、先進的すぎると感じる場合は以下のような時です。

  • 初歩的な PR や Issue が溜まっている
  • 世の中で、使ってみたブログを見かけない
  • ドキュメントを読んでも新しい概念が多すぎて理解できない。。

これらの感覚はすべて相対的なもので他のライブラリやフレームワークと比較しなければなりませんが、むしろそこがポイントなのではないかと理解しました。

どんな技術選定を保守的すぎると感じるか?

逆に、以下の様な場合に保守的すぎると私は感じます。

  • PR や Issue が放置されている
  • 完全なる上位互換のライブラリが盛り上がっている
  • 使ってみたブログの公開日がもうかなり前

採用する UI の選択も似た話かも

分かりやすい UI ってなんだ?ってなった時に私がよく唱える基準は、「一般的なもの」 であるかどうかです。ユーザーは自分たちのプロダクトのみを使っているわけではないからです。いろんなアプリを生活の中で利用して日々コンピュータの使い方を学習しています。

その中で、古き良き UI

  • 黒電話のクルクル
  • フロッピーディスクの保存マーク(これは今でもあるか。。)
  • スキューモーフィズム

や、見たこともない UIを採用すれば、ユーザーは困惑するでしょう。
これらを避けるのと同様に、技術選定でも、他のプロダクトや業界の流れに準じる必要があると感じました。

技術のリズム

技術のリズムにノリましょう。遅れても早すぎてもいけません。

それは、技術が社会的なものだからです。

技術のリズムを掴むにはどうしたらいいでしょうか。

  • 実際にライブラリや言語のコミュニティに飛び込んでみる
    • リポジトリを覗いてみる
    • たくさん質問してみる
    • いいなと思ったものには積極的にコントリビュートする
  • 他のチームとコミュニケーションを取る
    • カンファレンス
    • 技術ブログ
    • 失敗談を聞く

この辺りでしょうか。まあ当たり前ですが、次の点は注意する必要があるかもしれません。

技術のリズムとは関係ないもの

自分の感想

自分で技術を触ってみた感触はもしかしたら当てにならないかもしれません。
もし、自分にとって触り心地のいいフレームワークであっても、世間的にそうであるとは限らず、そのままお亡くなりになる可能性もあるからです。

技術の革新性

もしその技術を使って様々な課題を解決できる!と思っても、コミュニティが発展しきっていない場合には、セキュリティリスクやバグの対応が遅れてしまう可能性もあります。

ただし先進的すぎたり、保守的すぎる選択が良いとされる場合もある

昔、Apple が iOS7 でフラットデザインを採用し、非難を浴びたのを思い出しました。
しかし Apple がこれまで提唱してきた多くの方針の例に漏れず、フラットデザインはいつの間にか世の中に浸透していって空気の様な UI となりました。
これは、Apple がプラットフォーマーだからだと思います。プラットフォーマーは現状の課題を打開しうるがチャレンジングな技術に取り組むべきだし、取り組みやすいのです。

逆に、保守的すぎる選択が良いとされる場合もあります。それは、安全性が非常に高いレベルで要求される場合などです。例えば、飛行機のコックピットなどは、新しい UI にしてしまったら混乱を招いたりするかもしれないので、かなり長いゆっくり改善をしてくはずです。

これは技術選定にも言えると思います。安全性が要求されたり、何かしらのプラットフォーマーである場合には例外的な選択をするべき場合があります。

まとめ

  • 技術選定は世間のリズムに合わせて行う
  • 実は UI にも同じことが言える
  • 例外的な選択をするべき場合もある

でした。

Discussion

ログインするとコメントできます