出版間もなくにも関わらず早速増刷がかかる程の人気書籍となっています。
『はじめよう!要件定義 ~ビギナーからベテランまで~』のキモ
続いて「ネタばらしは正直いうと野暮だと思いますが」と笑いながら、羽生氏は本書の肝について説明しました。それによると本書のポイントとなるところには「目玉焼きのイラストが描いてある」のだそうです。そういえば本書の表紙のイラストも目玉焼きですが、実は意図があってのことだったのです。
本書の中では「目玉焼きを作る」という要件があった場合に、成果としての目玉焼きを実現するには材料としての卵や道具としてのフライパンなど、そして手順としてのレシピが必要になるという説明がありますが、同じように「完成したソースコードという成果が欲しいなら、要件・仕様という材料とエディタやコンパイラなどのツールという道具、そして開発手順が必要になる」のだそうです。
材料が揃っても、実力がないと活かせない
さらに「ここからは書籍に書いてないけど重要なことで、今日のセミナーの開催理由にもつながります」と前置きしてから「成果を出すために必要な材料・道具・手順が揃っても、自分自身の“実力”がないとそれらを活用することはできない」と羽生氏は語りました。“実力”には2つあり、1つは「やるスキル」でありもう1つは「ボキャブラリ(応用力)」なのだそうです。
こういうときにはこうしたほうが良い、などの発想はボキャブラリがないと出にくく、技術力は高いけど融通が利かないという人は、このボキャブラリが足りてないことが多いのだとか。ではどうやったらボキャブラリを養うことができるのかというと、できるだけ色々なものに触れることが重要になるのだそうです。
しかし一方で、自分にとって予想がつくものや、気持ちいい情報ばかりに触れている状態では、実はボキャブラリはあまり増えないので、できるだけ異質なものに触れることが大切になるようです。
スキルの成熟にはモデルがある
“実力”のもう1つの面であるスキルについても話が及びました。スキルが成熟していくにはステップがあるのだそうです。まずは「知らない」状態から知識を頭に入れた「知っている」という状態に進むステップからはじまり、その「知っている」ことを実際に「やっている」という段階に進み、そして意識しなくてもあたりまえにやれている「できる」という状態に移行していくというモデルがあるのだと言います。
一般的に実力があると言われるには「できる」という状態に達している必要があります。しかしそうなるには、何度も何度も反復して「やっている」ということを行わなければなりません。
「ですから、手を動かさないとスキルはつかないんです」と羽生氏は語りました。そして「今日ご参加くださった皆さんは本書を読み終えています。これは要件定義について『知っている』という状態になったということです。でも実際に手を動かしてないうちは『やっている』になりません。やらない限りは『できる』にはなれません。ですから今日は、本を読んで知ってお終い、になるのではなくて、やってみるということをできるだけ経験してもらいたいと思っています」と今日のセミナーの開催意図を話しました。
改めて要件定義とは
ここで「要件定義とは“今実際にないものを想像し描く”作業になります」と羽生氏は語りました。ソフトウェア開発のプロジェクトで最も重要なことは、ビジョンを具体化することです。ここで言うビジョンとは突き詰めると「要件」となるので、要件を明確に描いて、それを実現するために何が必要なのかをバックキャスト(注)する必要があります。つまり、自分の目前から物事を考えるのではなく、どういうことを実現したいのかというゴールを先に決め、そのゴールから逆算していくことが重要になるのです。ですから「どんなゴールを達成すればいいのか?」ということを想像することが求められるのです。
すべてのものは2度作られる
1度目は頭の中で「想像」する作業が発生します。そして2度目は実際に作り上げる「創造」という作業が発生します。
プロジェクトでの「想像」とは要件のことであり、「創造」とはその要件が現実に実装されることになります。これがビジョンを実現するということなのです。
[ワークショップ]画面遷移図を作成する
ワークショップは、基調講演でのスキルの成熟モデルに基づいて「知っている」から「やっている」に進むことを目的に行われました。
『はじめよう!要件定義 ~ビギナーからベテランまで~』では、要件定義の中核は「画面遷移図」であるとされています。この画面遷移図は一般的なものと少し違っていて、画面と画面の間に必ず機能とイベントを(矢印ではなく)書くことになっているのですが、「実は意外とありそうで無い記述法。ひょっとすると書籍で明記したのは世界で唯一かも」と笑いながら羽生氏は語りました。
ですからワークショップでは当然ながらこの画面遷移図を描くということになるのですが、今回は実際に作られたアプリを観て、画面遷移図を作成するという内容で行いました。羽生氏曰く「要件定義を作ってもらうためのお題を用意しようとすると、しっかりと作り込んだお題を作らなければならない。作り込んだお題を作ってしまうとアウトプットされる要件定義は、皆同じようなものになりやすく、それでは個人個人が力がついた感じにならない」とのこと。「要件定義が具体的に実装されたのが動いているアプリなんだから、それをリバースすることで元の要件を妄想する」ことが狙いなのだそうです。
実際に「やっている」という体験を多く持つことが、より実力につながるため、できるだけ回数を重ねるべく全部で3セッション行われました。
- 【セッション1】
- 4人で、「ねこあつめ」というアプリをお題に、画面遷移図を作成
- 【セッション2】
- 2人で、要件定義を探りたいアプリを決めて、画面遷移図を作成
- 【セッション3】
- 1人で、要件定義を探りたいアプリを決めて、画面遷移図を作成
「知っている」を「やっている」に変えてみる
セッション1では4人1グループとなり、最近流行りの「ねこあつめ」というアプリの画面設計を作成する所から始まりました。
「フォーマットも各チームで自由に決めてくれていいですよ」と羽生氏が言ったことで、それぞれのチームごとに『はじめよう! 要件定義~ビギナーからベテランまで』に掲載されている画面設計を作成するためのフォーマットを参考にしながら、「表示」や「機能」を分けて書き出したり、アプリにない画面でアクションを加えることで「どのような動きをするか」「どのページに遷移するか」など、4名でアイディア出し、検討し合いながら画面設計の作成を進めていきました。
そして約30分ほどでセッション1が終了した後には、各グループ(全部で4グループ)の画面遷移図を順番に見て回る見学ツアーが行われ、その後にグループのメンバーと感想を共有する時間が持たれました。
「付箋で色分けをすると見やすい」「先に画面をすべてを出した後で、各ページの要素を書き出す方が良い」など、自分のグループで出なかったアイディアを積極的に取り込んでいるようでした。
自分なりのやり方が見えてきた
講師の羽生氏からの
との言葉が後押しになったのか、セッション1、セッション2、セッション3と回数を数えるたびに、アウトプットされる画面遷移図は、それぞれに非常に個性的なものになりました。そして、良い手法はお互いに積極的に取り込もうとする姿勢になっていました。
ワークショップの狙いどおり、回を重ねることで1人でも画面遷移図を作れるという感覚は持てたのではないかと思います。
最後に
前半で座学、後半でワークショップという、文字どおり「知っている」を「やっている」に変えてみるセミナーでしたが、本セミナーで行った事を今後も続けてもらい「やっている」から「できる」にステップアップしてもらいたいと羽生氏は最後に語りました。
「要件定義をするチャンスというのは確かになかなか無いのだけど、チャンスがないというのではなく、数少ないチャンスに出会ったときにそれを活かせるように普段から少し工夫してみてほしい」
「たとえば、つねに見ているスマートフォンのアプリの画面から画面遷移図を作ってみるとか、実際に書かなくてもいいので、1日のちょっとした時間でもそういった妄想をする時間を作っていってほしい」と締めくくり、「「はじめよう!要件定義」ではじめる、すらすらと手が動くようになる楽々要件定義レッスン Vol.2」は盛況のうちに終了しました。今後の予定は未定ながらもぜひまた開催したいとのことですので、次回に機会が合えばぜひご参加されるのをお勧めいたします。
『はじめよう! 要件定義 ~ビギナーからベテランまで』電子書籍がついに発売!
Gihyo Digital Publishing(EPUB版)およびAmazon Kindleストア(Kindle版)、楽天Koboで展開中!