必要最低限を判断する3つの視点:「Why」「工数感」「リスク」
「必要な要件を見極めて早く開発する!」と南舘氏は決意したものの、次に「そのためには何ができたらいいのか?」という疑問に直面して考察した。まず「必要最低限」とは目的に沿っていて、納期内で実現可能な要件となる。
ここで重要な3つの視点として南舘氏は「Why」「工数感」「リスク」を挙げる。
Why:「なぜやるべきか」を可視化する
要件ブレストの場面では「やりたいファースト」な思考に陥りがちだ。次第に夢が膨らみ「あれもこれも」とやりたい要件が芋づる式に出てきて、本来の目的から逸れていく。そこで「Why」を可視化することで本当にやるべきかどうかの判断につながっていく。
例えば「複合検索機能がほしい」という「やりたい(要件)」があったとする。理由(Why)が「データが増えたら、複合検索があればUXが向上する」だとすると、まだその段階ではデータ数が少ない、または不透明なので「優先度は低い」と判断できる。
南舘氏は「手段を考えることが得意なエンジニアだからこそ、このWhyを意識してほしいです」と強調する。
工数感:ざっくりどれくらい要するかを可視化する
開発現場で人により工数感が異なるというのはよくあることだ。例えばリーダーは「1週間くらいでできるだろう」と考えるのに対して、エンジニアは「1か月はかかりそう」と考えていたりする。そのため要件定義のタイミングで工数感を可視化して互いのギャップをすりあわせておかないと、「納期に間に合わない」という事態になり、要件の見直しやリリース遅延などが生じてしまう。
ではどのくらいの粒度で工数感を出すか。南舘氏は「ざっくり○○人日くらいでいいので、チーム内ですりあわせておくことが大事。加えてきちんとバッファをとって伝えておくことも大切です」と念を押す。
リスク:実現を妨げる可能性を可視化する
新規サービス開発では検討しなければいけないことが多い。例えば個人情報や機密情報の取り扱いや技術的な検証などだ。検討が不十分だと、仕様変更や開発工数増加でリリース遅延も起こりうる。さらに後で「コア要件が技術的に実現不可能」と発覚したら、サービスリリースすらできないなんて事態も考えられる。そのため要件定義のタイミングでリスクを可視化しておくと、本当に実現可能かを判断できるようになる。
南舘氏は「エンジニア観点で早期発見できるリスクはたくさんあります。例えば、システムで取り扱う情報をどんな手段で実現するか。リスクを早期発見するためは、要件定義の時からシステム構成をイメージして臨むことが重要です」と話す。