Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

明確な終わりの見えない道をどこで終わらせるか問題

f:id:tbpg:20170620034314p:plain

ある日のこと。
ある機能(仮にExcel方眼紙を自動化する機能としましょう)を
ある言語(仮に Brainfuck としましょう)で実装する必要がでてきました。
Excel方眼紙機能の自動化を実現するためには、その機能をライブラリ経由で呼び出す必要があります。
ライブラリで実現可能であるか、フィージビリティスタディの開始です。

BrainfuckExcel方眼紙を扱うライブラリは多く存在し、
ライブラリがExcel方眼紙の機能のうち、今回の要件で必要とする機能を呼び出すことができるかどうかは不明です。

ライブラリが3つあったとします。

  • BrainExcelHoganshi
  • ExcelHoganshiF
  • BrainExcelHoganshiF

この中で、利用者が多く1番安定していそうにみえる順に
必要な機能を揃えているか調査します。

  • ドキュメントを読む
  • ドキュメントで不足ならコードを読む
  • コード中に該当機能が見つからなければGitHubのIssueなどで経緯がないか探す

コードを読むときは、2つのアプローチを使います。

  • 主に「該当処理はこのキーワード」を含んでいるだろうという予測のもとにキーワードで検索
  • 該当ライブラリの構成上をざっくり把握し、処理があるならここにあるだろう、という予測して調べる

ここで見つからないと調査を打ち切り次のライブラリを調べます。
ただ、この打ち切りどころが難しい。
自分のコードリーディング力は確かなのだろうか?
テストコードから呼び出しがあるかもしれない。調べてみよう。
StackOverflowに何か情報があるかもしれない。調べてみよう。

ないということを証明 or 確信して自信をもって次に進む、ということが苦手らしい。

みなさんは、実現可能性が「不可能である」ことの判断はどうやってしていますか?