ある日のGunosyに届いた記事。
みなさんいろんな意見を言っていて、思わずプッとなるものまで非常に楽しませてもらいました。
しかし、タイトルにも書いたのですが、投稿内容にちょっと違和感を感じたので少し書かせていただきます。
初めに僕の意見を言ってしまうと、凄いプログラマーって、技術がうんちゃらよりも、もっと人間的なもの、平たく言うと発注者が本当に欲しいものを見抜いて、ちょっとだけ期待値を超えたものを提供できる人じゃないかと思います。
「いやいや要件定義や仕様決定はプログラマーの領域ではないよ、上流システムエンジニアや企画の仕事だろう。」 そういう意見もあると思います。
しかし、そういった業務の切り分けは意思決定を遅らせるし、発注者との認識違いも起きやすい。マイナスはあってもプラスはない。
「じゃあ上流エンジニアや企画が全責任を負ってプロジェクトに望めばいいんじゃないか?」
彼らがそれを実現することは難しい。なぜなら一番大切な納品ができないから。
鮮やかなプレゼン資料だけじゃプログラムは動きません。非の打ち所がない仕様書だけじゃかっこいいページを表示することはできません。
プログラマがそれをできないから、彼らがいるんでしょ? そのとおりです。
だからプログラマができるようになればもっとよくないですか?
ノンプログラマがプログラムをいちから勉強するより、プログラマが客前にでて話を出来るようになるほうが遥かに簡単です。
そしてそれが出来るといわゆる凄いプログラマになれます。
なぜスゴイか
流通業で中間業者がいなくなるとエンドユーザーに安くプロダクトやサービスを提供することができます。請負者は中間業者に払うべき利益を自分の懐にいれることができるので、利益率が上がります。
100万円の案件を上流エンジニアとプログラマで対応したら、乱暴に言えば一人あたり50万の売り上げ。
50万の売り上げじゃ1ヶ月も持たないので3つ4つと案件を掛け持ちする
↓
掛け持ちすると時間が足りない
↓
手を動かすのはプログラマしかできない
↓
徹夜
↓
デスマーチ
↓
品質悪い
↓
客怒る
これって誰得でしょうか?
プログラマが客先に出て話せば半分の労力で同等の売り上げを上げることができます。客先にでて話すのなんて慣れの問題です。4,5回やればコツがつかめます。
そして発注者はめちゃ営業がうまい人を求めてはいません。自分たちが欲しいものをつくってくれる人と話したいのです。そして作品に近ければ近い人のほうがいい。
伝言ゲームと同じで、仲介する人が増えれば増えるほど要望は曖昧になり、自分たちに都合がいいように置換されていきます。そして、いつしかオリジナルの要望からかけ離れた”何か”が出来上がります。
現にお客様先に行き、「私はエンジニアで、私が作ります(もしくはがチームリーダーとなってつくります)」というと100%喜ばれます。
プログラマじゃなきゃいけない理由
打ち合わせでは「あれはできる?これはできる?どのくらい時間かかる?」っていう質問がたっっくさん飛んできます。
これはプログラムを書く人か、書いていた人でなければ答えられません。いちいち「社に持ち帰ってエンジニアに相談します」なんてやってたら、要件定義で確保した貴重な予算を浪費してしまいます。
そしてお客様先に出向いて話すことに慣れてきたら、プログラマだからこそできる、さらなる付加価値があります。
それは事実に基づいて相手の意見を否定することです
そんなことしたらお客様を怒らせるだけでしょ と思うかもしれません。
ここが大切なのですが、お客様が求めているのはYESマンではなくて、ソリューションを提供してくれる人です。ここをはき違えると、完成したものが満足度60%だったときに「だってそう作れっていったじゃないですか」っていう小学生みたいな言い訳が飛び出してきます。
こういう仕事のやり方だとぜーーーんぶ賃金が安い海外にオフショアされてしまいます。だって付加価値ないですもん。
例えばE-commerceサイトを作りたいというお客様がいたとします。そして、高度なフィルタ機能をつけて、探している商品がズバッッ!っと表示されるようにしたいという要望もあるとします。
そのフィルタを実装すると+100万円のカスタマイズ費用がかかりそうだ。E-commerce本体の開発で200万。あわせて300万。
しかしお客様の予算は250万円。「予算オーバーですね。うちでは請け負えないかもしれません。」端的にそう結論づける人は損します。
何もデスマーチ覚悟で突っ込め! なんてことを言うわけではありません。
「恐らく50万くらい予算をオーバーしてしまうので、この方法はどうですか?」
瞬時にこの一言を言えるか言えないか。ここが凄いプログラマの分かれ道です。
ミーティングの流れや人の気持ちって水物です。
然るべきときに然るべき言葉を言わないと大きく方向が変わってしまいます。そして作るのが自分なら言葉ひとつひとつに責任感が生まれるでしょうし、問題になりそうなところはこの時点で排除していくことも出来ます。
これができるのがプログラマです。作業見積もりにおいて、プログラマの口からでてくる数値以上に信頼できるものはあるでしょうか?
それでは上のE-commerceの例ではなんと言うべきでしょうか?
僕なら「月々のサービス費用はかかりますが、初期費用の少ないオンラインサービスのショッピングカートを利用してみては?」と提案します。
そして「それで売り上げをあげて、そのお金でプロモーションをしたり、必要ならE-commerceをグレードアップしましょう!」って言います。
誰も損はしません。損どころか僕は今後のプロモーションを請け負えるチャンスを得ることができ、お客様も大金をはたいて売り上げが上がらなかったときのリスクを回避することができます。
お客様が求めているのは高度なフィルタをつけることではなくて、売り上げを上げることです。そしてそれを実現する方法を探しています。
そして僕らは損をせずに確実に利益を上げる方法を探しています。
プログラマはもともと技術の人です。「回り道なんてせずに、要求された仕様を1ヶ月間泊り込みでこなしてこそエンジニアだ!」という人も多いと思います。しかし、それじゃ体がもたない。仕事は来月も再来月もあるのです。
だからちょっと顔を上げて別の道がないか探してみる。プログラマはネットにも精通している人が多いでしょうから、ソリューションは結構簡単に見つかるかもしれません。
まとめ
えらそうなことを書きましたが、5年前ならば僕も、「そーだよなー、無駄のないコード書ける人とか、ちゃんとオブジェクト指向に則って書いてる人とか凄腕プログラマーっていう印象があるなー」
なんて考えていたと思います。
僕は新卒で就職して以来、ずっっっと開発と運用をしていました。仕様書や企画はマネージャや企画部から上がってきて、必要なら詳細設計書をつくって開発。バグが出たら夜中に出勤してセブンのおにぎりをかじりながらあーでもない、こーでもないとやっていました。
そういった仕事の中で技術レベルをあげて、いつか「あいつに任せたらバグなしのエクセレントなコードがあがってくるよ」って言われるように、ある種、盲目的にそして淡々と毎日の業務をこなしていました。
やっぱりどこの職場でもスーパーなエンジニアというのはいるもんで、みんなに一目おかれているわけです。そして僕もああいう風になりたいなぁと考えていました。
ではいったい5年前に何があったのか?
答えはシンプルで、
営業をしてみたのです。自分で。
正直、世界が変わりました。なんていうか、縦に深くなったのではなくて、横にグーーっと広がった感じです。
みなさんはなぜプログラムを書いているのでしょうか?
タイピングをするのが好きだからですか?
すごいコードを書くと表彰されるからですか?
羨望のまなざしで見られたいからですか?
それならば仕事にする必要はないです。趣味でウィークエンドにやればいいと思います。
お金をもらってプログラムをするたった一つ理由。
それは誰かが欲しているからです。
どんなにすばらしいコードを書いても、どんなにメンテナンスしやすいコードを書いてもお客様を満足させられないのであれば全く意味はありません。
だから思うのです。凄いプログラマーって 発注者が本当に欲しいものを見抜いて、ちょっとだけ期待値を超えたものを提供できる人じゃないかと。
Ads by Google
http://www.conversiondiary.com/2011/03/is-it-irresponsible-to-trust-god-too-much.html
http://www.7ideas.net/idea-killers/