機能をどう実現していくか考えるとき

概要

相生葵の Advent Calendar 2020 6日目の記事です。

機能をどう実現していくか考えるときどうしているかについて書きます。

手順

  1. 実現方法の書き出し
  2. 実現方法それぞれに対して、掘り下げる
  3. 不明点を潰す
  4. 実現方法を確定させる

1. 実現方法の書き出し

実現方法を思いつく限り書き出します。
この時点では、優先度はつけず、メリット・デメリットなども考えません。

2. 実現方法それぞれに対して、掘り下げる

「1」で書き出した実現方法に対して以下などを掘り下げていきます。

  • メリット
  • デメリット
  • 疑問点
  • 懸念点

3. 懸念点・疑問点を潰す

「2」で書き出した懸念点・疑問点を潰します。
コード内に答えがあることなら、コードを読んだり、人に聞いて確認できることなら人に聞いて確認したりします。
重要なことは、疑問点をもったまま先に進まないことです。
懸念点・疑問点を解消できるかどうかでどの解決策を選択するかの優先度が変わるためです。

4. 実現方法を確定させる

「2」で書き出したメリット・デメリット、懸念点を踏まえて最もよい解決策を選択します。
ここで一番重要なことは、自分の考えではなく、プロジェクトにとって最もよい選択肢を選ぶことです。

どのような方法がプロジェクト全体として、現実的で最もコスパよく達成・運用できるのかを考えます。

最後に

個人的に気をつけているのは、「3」と「4」です。
「3」については「疑問点・懸念点」があっても、確認せずに推測で無意識に進んでしまいそうになったりするので一旦考えたりして止めています。
「4」については、自分の中で完結する解決法を選びそうになるので、「プロジェクト」としてどうか?ということを意識して考えるようにしています。