SwiftでiOSアプリ作って公開してみた 2 - 要望・要求

f:id:otowa_jp:20170219153622j:plain

アプリを作る際、どんなものにしようかとあれこれと考える時間はとても素敵なものです。
風呂に入りながら技術の枠をこえて発想する時間はとても短く、まさに不撓不屈の意思、決意のもとに風呂上がりの豆乳を体に流し込むわけです。

しかし安心してください。いずれは風呂で発想した宇宙のようなアイデアも、現実というふるいにかけられ仕様に落とし込まれるのです。そして寝食を忘れた開発者としての本当の戦いが始まるのです。想いを最後まで信じ抜いて1つのプロダクトをリリースさせること、これが1番難しいことだと自分が思うのは、人が誰しも誘惑に流されやすく長時間イスに座り続けることを嫌うからです。

リリースしたからといって何が変わるか分からない、そんな不安のなかで製造にあたるのが夢追い個人プログラマのストイックさであり、またアーティストな部分だと思うのです。

要望とは


プロダクトは問題解決のために作られるべきです。
業務が効率化されること、暇をつぶせること、なんでもいいのですが自分の要望を細分化して収集しきることが重要です。これはSEのスキルセットでも非常に需要な部分だと思うのですが、顧客の要望をもれなく拾い上げるSEはプロジェクトを円滑に進めます。なぜなら、出来る・出来ないが最初にすり合わされドキュメントとして残るからです。出来る・出来ないが分からない潜在的なニーズを顧客が要件検証まで持ち続けたプロジェクトに成功はあるのでしょうか。自分が何を作りたいのか、何をやりたいのかがイマイチ理解出来ていない場合、整理できていない場合はプロジェクトを前に進めるべきではありません。技術的な課題を考慮せず、自分自身としっかり対話し要望をメモしておくのです。

要求とは


要望は現実というふるいにかけられ具体的な要求へと変貌を遂げます。
その要望が技術的に実現可能か、妥当か、問題解決に紐づくか、あらゆる観点からつっつき倒していくのです。時には、代案を提示し自分自身と折り合いをつけていく。やることとやらないことをしっかり切り分けていきます。最初から要求が大きすぎるのも考えものなので、適度に要求をまとめあげ、フェーズ分けを行うのも1つの方法です。くどいようですが、プロダクトとは、問題解決ができなければ、はたまたリリースされなければ社会的にはゴミくず同然なのです。

まとめ


多少哲学的な部分ですが、チームで開発するのであれ、個人で開発するのであれ要望・要求の扱いは変わりません。顧客に対して行うか、自分に対して行うかのベクトルが違うだけ。開発において個人的には最も重要なフェーズと考えており、プロジェクト全体の進行に大きく関わるところなのです。慎重に、時に大胆に要求をまとめあげることができれば、開発のフェーズでは何より自分が楽できます。しっかり時間を割きましょうという提案です。