文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

IT業界で最強に困る無理難題は一体なにか!?

ITを知らない人達はみんな「ITは魔法である。あらゆる事を解決できる。」と思い込んでいる節があります。


f:id:treeapps:20170817135400p:plain


お客様から無理難題 : SE100人に聞いたシステムエンジニアの仕事 - 仕事内容とその魅力

この記事を読んで、私も激しく心当たりがあったので、私も書いてみようと思います。それぞれタイプに分けて考えていきます。

※ この記事以外のあるあるも記載しています。

お金は出さない型

  • 予算がないから、費用を半額にしてほしい
  • 金額はそのままで、機能追加を要求された。
  • 見積もり価格の半値八掛けにしろと言われた

何故こんな事が起こるのでしょうか。

こういう事を言ってくる人たちは基本的に「システムを構築するためにこちらがどんな作業をするのか」を全く理解していないのです。だから「え?この作業になんでお金かかるの?意味解らないんだけど」と思っているので、半額にしてようやく「妥当だな(キリッ」となってしまいます。

今すぐ型

  • 途中でもいいから今すぐ全てを納品して
  • 上司が来週から使いたいと言ってるから
  • 1か月はかかるような仕様変更を「タダでやれ。今日中にやれ」
  • 削除したデータを戻してくれ
  • かなりの遠方や僻地であっても「今すぐ来てほしい」
  • 1日で出来ない仕事を数時間以内でやるように言われた。
  • 夜8時ごろ客先より連絡あり、「明日の朝に試運転したいからソフト作成してくれ」と要望があった。朝5時にメールを送付した
  • 当日に仕様変更
  • すべてをすぐ納品してくれ
  • とても間に合わない期限での対応を要求された
  • そもそも間に合わない納期厳守
  • すぐになんとかして
  • 翌日までにいちからシステムの作り直しを命じられたとき
  • 夕方に依頼されたのをその日のうちに仕上げさせられる。
  • 定時すぎてから、明日までに作れとか。
  • 今日中に見積もりをしてほしいといわれて徹夜で見積もり

今すぐ型の意見が多すぎるので、この辺にしときます。

何故こんな事が起こるのでしょう。

大抵の場合は「相手側の都合」が原因です。


今日中にやって貰わないと「俺が」困るんだよ!

では何故そうなってしまうか。

  • クライアント側の社風があらゆる事が「今すぐ」だから。
  • 担当者がミスをしたが、上司にそのミスがばれるとボーナスの査定に影響するから。
  • 前述のように、こちらの作業の内容を全く理解していないから。

大体この3パターンくらいしかありません。今すぐ型は本当に質が悪いです。

ここで「解りました。では要件を今日中にまとめて頂ければ対応します」等と言ってしまうと、「はあああ!?そんなの無理に決まってんだろ!?お前アホか!?」等と返ってきます。つまり「俺は今すぐ完了させられないが、お前は今すぐ完了するのが当然。ITなんだから当然できるだろ?」という考えなのです。まるでジャイアンですね。

常識的に100%有り得ない要求型

  • Microsoftに交渉してWindowsの仕様を変更してほしい
  • Googleと交渉して、GoogleMapに私だけが使う◯◯な機能を追加して貰って下さい。
  • 100%エラーが起きないシステムを作って下さい。

この辺はもう笑っちゃいますね。要望を出すのは自由ですよ?しかしですね、MSやGoogle立場になって考えてみて下さい。「あなたしか使わない独自機能を追加する事に一体なんの利益があるのか」と。しかも無料でやって貰えるなんて本気で考えてるのでしょうか。


俺犬飼ってるんだけどさあ、神様にお願いして物理的に猫に変えてよ。ITならできるでしょ?

とか

最近体が重たいからさー、万有引力の物理法則を変更してよ。え?できないって?神様にお願いしてみました?

みたいな事と同レベルです。

とりあえず開発会社に調査依頼型

  • 内容を説明しないで調べて欲しいとか
  • お客様から受領したdllが落ちているのに、明日までに、このエラーの原因を教えてください。

これは本当にあるあるです。

よくあるパターンは、「開発ベンダーが沢山いる中で何故か私の会社だけにあらゆる調査依頼を投げてくる」パターンですね。他ベンダーが開発したモジュールの調査依頼も余裕で来てしまいます。

例えば、csvデータを毎日scpで送信してくれるデータ配信会社が上流にいるとき、「なんでこのデータはこうなってんだ?今すぐ説明しろ!」と、何故か私達開発会社に調査依頼がきます。「いや、元データがそうなってるのでデータ配信会社に聞いてよ・・・」という事を何度経験したか・・・それを100回伝えても理解して貰えないんですよね・・・

または「なんでエラーになるんだ!今すぐ調査し(略」という場合、「いや、B社のAPIが500エラー返すから・・_」というのもよくあります。

お役所型

  • 仕様が何も決まっていないのに、納期と金額は決まっていて、「とりあえず作って下さい」
  • 仕様が全然決まっていないのに、納期/金額が決まっている

お役所型というか、実際のお役所との仕事は大抵こんなもんです。

予算だけ決まってるのでこのお金を使いきらないといけないんだけど、何がしたいかとか解らないし、そもそもやる気も無い、という感じでしょうか。

言わなくても解るだろ型

これはIT業界に限りませんが、「は!?そんな事いちいち言わないと解らないのか!?」とか言ってくる方々がいます。

そして実際私は今絶賛言われ中です。

人間はエスパーではないので、言って貰えないと理解できんのです。こちらから情報を引き出す努力は勿論欠かさないのですが、「え、それって教えてくれないと絶対知り得ない情報なんだけど・・」というやりとりがしばしば発生します。

もしリリース前にそれを言ってくれていれば、費用内で期間内に対応できたのに、言ってくれなかったがために対応できない事は非常に多いです。

IT技術者はエスパーでもお前のお母さんでもない。だから言わなくても解るだろ等と言っている人間は、相手に要件を伝えられない無能を晒しているだけである

リリースしてから動作確認型

何故か解りませんが、私の周囲でよくテスト環境で事前にUIや動作確認ができる状態を提供しているのに全く確認せず、リリースしてから本番環境を見て文句や不平不満をまき散らす人がいるのです。しかも以外と多く。(ちなみにちゃんと検収期間を設けて事前確認して貰うスケジュールになっています)

推測ですが、恐らくリリース後に一般ユーザからクレームを入れられてようやく動き出し、あたかも自分の意見かのように振舞っているだけなのかもしれません。

いずれにせよ、前述の言わなくても解るだろ型と同様、事前に確認して貰えたらリリース前に対応できたかもしれないのです。

人数を2倍にすると納期が半分にできる型

極端な例を挙げると、1人で100日かかる作業を「100人用意するから1日で終わらせて」というパターンですね。お金はいくらでも出せるから人は沢山用意できる、だから1日で完了しろ!的な。

終わるわけねーだろ。頭おかしいんじゃねえか?

と思ってしまいますね。

例えば相手が土建屋だったら「では、あなたが家を建てる場合、100人作業員を集めれば1日で家が建つのですね?」と質問しましょう。すると間違い無く「は?できるわけねーだろ?お前頭おかs(略」と返ってきますね。ここは畳み掛けるように「え?でもさっきあなた100日かかる作業を100人用意して1日で終わらせてっていいましたよね?それができるならあなたも100人作業員集めれば1日で家が建ちますよね?」と返しましょう。すると「お前頭おk(略」以降、無限ループします。

作業というのは完全に綺麗に分ける事はできません。

ITで例えると、開発とテストは分業できます。しかし開発が完了していないとテストはできません。前述の例に当て嵌めると、開発とテストが同じ日にスタートし、同じ日に完了しないといけません。

家を建てる例に例えると、設計図を書くのと建設する作業が同時に開始して同時に完了しないといけません。そんなのは物理的にありえません。

しかしクライアントは理解してくれません。何故か?それは・・・


ITはあらゆる事象を一瞬で解決できるらしい万能の魔法である


という、願望のような、理想のような、そんなよく解らない漠然とした印象を持っているからです。

雑感

ITは本当に理解されません。

というか、よく解らないことにすれば無理難題もいい放題!!なんて考えてそうで怖いです。

さて、あなたが今までに実際に遭遇した無理難題はなんでしたか?

私は「Googleに頼んでGoogleMapにこんなユニーク機能を作って貰え。勿論無料で。」という無理難題でした。

我々開発者に安息の日々が訪れる日は来るのだろうか・・・


最後に、これだけは解って欲しい。

プログラムは書いたようにしか動きません。

プログラムは設計したようにしか動きません。

プログラムは魔法じゃない。現実です。