ネタつつき145 - お客様を羅針盤に開発の荒海を航海する
先に断っておきますが、銀の弾丸は存在しません。あったら誰も苦労しません。現実は常に複雑なのです。人間の能力など高が知れており、神様でもない限り完璧な開発は行えません。しかし諦める必要もありません。事実をありのままに受け入れれば、困難な現実を乗り越えられます。
システム開発が難しい一番の原因はゴールが定まらない事です。完璧な要求定義など見た事がありません。お客様の要望は時間と共に変化します。従って、スタートした時点でゴールが決まっていないのです。正しく荒海を航海するのと同じです。いえ、漂流するのと等しいと言っても過言ではありません。プロにとって、技術的な事ならば比較的簡単です。しかし、非技術的な問題は解決が困難なのです。
この難題を解決する方法は一つです。初めから仕様とゴールは変化するものと考えるしかありません。人は自然(世の理)に勝てません。下手に逆らわず、自然に対応する術を身につける方が賢明です。だからと言って、無目的に漂流しろと言っているのではありません。言いたい事はその逆で、常に目標を見失わない事が大事です。
改めてシステム開発の目的について考えましょう。芸術的なプログラミングをする事でしょうか?完璧な理論で設計を組み事でしょうか?美しいドキュメントを書く事でしょうか?・・・。答えは否です。それらは一要因にしかすぎません。システムを販売している以上、答えは一つしかありません。システム開発の目標はお客様を満足させる事です。厳しいようですが、お客様が満足しないシステムに価値はありません。
システム開発では一般的に、仕様要求の変更は忌避するべきものと看做されています。しかし前向きに考えれば、むしろ歓迎するべき事だと分かります。常にお客様の満足だけを目標にすれば、開発の荒波で沈没しないことを意味しています。従って、お客様の意思である仕様変更は喜ぶべき事なのです。それさえわかれば、迷うことなどありえません。
誤解が無いように書きますが、お客様の満足度を考えると言う行為は、盲目的に従う事を意味していません。日本ではその辺が混同されています。お客様は情報に関しては素人です。迷って当然です。ですから私達プロが、お客様の真の要望を引き出しつつ道案内をすればよいのです。そうすれば自ずと、技術軽視、知識軽視、ドキュメント指向などといった奇妙な現象は起きません。
もちろん、実際にそれを行うのは難しいです。だからと言って、始めから放棄する者は、プロを名乗る資格がありません。必死になって泥臭くやるからこそ、仕事はやりがいがあるのです。お客様の笑顔を糧に、充実した人生を送りましょう。誰かから求められる人生を目指すのか、誰からも必要とされない人生を目指すのか、それを選ぶのは貴方です。