近況ですが、java での開発から C/C++, JavaScript を使った開発が今はメインになっています。

現在、ざっくりとした要求仕様から、[基本仕様]-[詳細仕様] が確定していない状態で開発するスタイルが板に付いています。実装(コーディング)前の設計段階で、曖昧な仕様箇所を redmine のチケットにあげています。曖昧な箇所は、レアケースな処理やイレギュラーなイベントが起こった場合の処理がほとんどです。エラーが発生した場合、内部でどのように処理を行うか、処理を継続するか、終了するか。外部ではユーザーにどのようにエラーイベントの内容を伝えるか。エラーメッセージを表示するか。初期状態にもどすか、など。

仕様が決まる過程で、いろいろと意見をいったり、仕様に納得できないときは、仕様の根拠を突き詰めて追及してしまうため、煙たがられる面もありますが恣意的で不合理な仕様に対しては、できるかぎり抵抗しています。

過去の仕事では、仕様確定の進め方・過程で考えさせられることが多かったです。要求仕様を出す側も、それを元に開発を進める側も、どの仕様がベストなのかがわからない場合いくつかの選択肢を抽出して、その内容をお互いで共有した後、内容について議論し合ってから要求仕様を出す側で仕様を決定してもらうというのがベストだと考えています。