はじめに
2年目の時に初めて技術選定を行ったので、その時に気をつけていたことをまとめました。
バーコード写真から値を読み取るライブラリの選定だったと思います。
まず要件整理
必要な 要件の整理 と、どのくらいの時間 をかけて調査を行うかを決めました。これがずれているとせっかく技術選定を行っても、時間が無駄になってしまいます。
どんな機能を満たせば良いか、調査にかける人数と時間、テストコードを作成する時間を軽く見積もって期日を決めます。ちゃんと合意を得て、調査に時間をかけることを承認してもらいます。
調査
GoogleやGitHub、stackoverflowなどを利用して、要件を満たすにはどんな技術があるか、調べられるだけ調べます。この時、GitHubのスター数やフォーク数を見て最近のコミュニティの活発度合いも調べます。できれば、安定して長いこと動く見込みのあるメンテナンスされそうな技術を使いたいですしね。
そして、 ライセンス や セキュリティ 、必要なライブラリに関しても確認します。
あとは開発者が信用できそうかどうかとか。
テストコード作成
調査でまとめた技術を使って、同じ要件でテストコードを作成します。実際にコードを書くと、意外と実装できなかったり、要件に合わないことが分かったりします。候補が少なかったら諦めきられませんが、簡単に実装できない技術があった場合は、その技術を実装することをひとまず諦めたりもしました。
最後にパフォーマンスなど調査結果をまとめます。
決定
調査結果とテストコードを持って、他の人にコードを動かしてもらいます。そして使ってもらった意見を聞いて、それぞれの技術の利点と問題点を並べ、最終決定します。
感想
新しい技術を短い期間にどんどん試せるのが楽しかったです。ライブラリごとに異なるコーディングスタイルや性能を比較できたのもおもしろかったです。
また、ライセンスやレビューなどを普段より真剣に読みますし、他の人とのやりとりも通じて色々なことがかなり勉強になりました。