大企業の開発者がこんな酷いレベルだという恐怖 #7

2020/03/30

プログラミング

t f B! P L

このクソ開発について色々と言い続けてきたこのシリーズなんですけども、プロジェクトがポシャったことでようやく終焉を迎えようとしてます、はい。今回含めて 2 回でおしまい! いやー長かったね。

 この話は以下のエントリの続きモノになってます。お時間が許すのならば、最初から読んでいただいた方がより楽しめるかと思います。

今回は、プロジェクトがポシャった後のクソ開発のクソっぷりを改めて書いていこうかなと。
で、次回最終回、自社がいかにアホだったかを取締役にプレゼンし、結果的に退職することを決めるまでの流れを書こうかと思います。

喉元過ぎれば熱さ忘れる

#5 で説明した通り、このクソ開発は根本から腐っているので「要件が決まってないのに、なぜかコーディングが完了している」という異次元的な状況に陥っていたんだけども。そこからどうやって軌道修正するのか(まぁ要するに、どういう言い訳するのか)が見ものだったんだけど、彼らにはそんな軌道修正の苦労なんて無かったみたい。
だって「本来ならどうあるべき」の像が世間一般と大きくズレてるからね、その落差を埋める努力すらしないんだよね。

開発が勝手に延期してた打ち合わせが、突如開かれる

ある日突然開発が「要件についての打ち合わせがしたい」と言い出したんだよ。2 月初旬に。
表向きには「要件が固まっていない」んだけど、でも実際には開発作業が進んじゃって総合テストが始まってる頃合いね。

この打ち合わせで開発側が出してきた資料は、やっぱりクソだった。
資料は実装した仕様が書かれていたんだよね。
まぁここまで話を読んでくれた人たちなら予想がつくと思うんだけど(もちろん我々も予想していた通り)、こちらの要望はすべて無視されて開発が楽できる仕様で書かれていたんだよね。
いや、楽ができるとかそういうレベルではなくて、ハッキリいって「センスがない」としか言いようがない仕様で作ってくるの。もう頭かかえるレベル。

たとえば、もともと以下のようなイベントのツリー画面があったとしようよ。

イベントツリー
たとえばこういうツリーだったとしよう


でさ、「イベント名で検索」という UI を追加しようとしました、と。
そしたらさ、どこに検索の入力を作ろうと思う?

普通なら




あたりじゃない?

彼らが作ってきた仕様は

なぜかわざわざ遠くに配置

ココ。
わざわざ、遠い場所に、分かりづらく追加。
少し考えればわかるだろ!?
こんなん PHP で出してるんだから、追加する位置が右か左かで工数変わらないわけじゃん。なのにわざわざ使いづらいところに追加してくるってさ、やっぱセンスがないんだよね。そうとしか言いようがない。

これは一例で、それ以外にも「いやいや……それは無いだろ……常識的に考えて」みたいな仕様で実装してるんだよ。「それは無い。こう直して」って指摘が軽く 10 個以上ポンポンポーンと挙げられるほどにひどかった。


要件は固まっていない体だったのでは?

当然そんなクソ仕様で作ってもらっちゃ困るので(実際はもう作っちゃってるの知ってるけど)、こう直してほしいと指摘の Excel ファイルをまとめて開発に即日送り付けたワケ。まぁこっちが要求元なんだから当然じゃん。こっちの要求が満たされないってこっちがあらかじめ分かってるんだから、当然指摘もするし、当然直してもらう必要があるの。

そんな当たり前の指摘の Excel に対して、悠長に 1 週間使って帰ってきた開発からの回答は怒髪天を衝く内容だった。

「仕様変更になるので修正できません」

これには俺以外の人たちもさすがに激おこ。もはや誰も言わなくなったムカチャッカファイアーだった。やはり現代語の寿命というのは短い。
だって「要件はまだ固まってない」っていう体だったじゃん。その前提を全部無視してこの回答を、 1 週間もかけて「正式なルート」で出して来てるんだよ? もうお前らの頭どうなってんだよって話。

まぁ知ってたけどレビューなんてしてないし、建前と実体の不整合をなんとかすり合わせてからアウトプットしようとかいう考えすら持ち合わせていないということ。
つまり「営業なんて結局最後は開発の言う事に従うしかないんだ」というナメくさった根性が彫り込まれているってことなんだよ、この回答にね。だって少しでも気を使っていたら、自分達の言ってきたことと矛盾がないかどうか確認してからアウトプットするでしょ。
なのに時間だけかけて、中身はなにも精査しないでアウトプットしてくるんだから。ドキュメントのクオリティはどうでもいい、さらに中に書いてあるのは「ソフトウェアのクオリティはどうでもいい、開発作業が終わればいい」という意味のことが書いてあるんだよ。

もうめちゃくちゃを通り越して、世の中の開発業務すべてに対する冒涜だよ!
世間すべてを敵に回す行為だよ。分かってないだろうけど!

今回の無礼&無能の数々をピックアップ

ちょっと開発の回答から、怒りポイントが高いものをコピペするね。
言っとくけどコピペだからね。ニュアンスがこうだった、とかじゃなくて、コピペだからね。固有名詞以外一言一句変わらず、この通りに書いてきているんだからね。
それを理解した上で、「要件化が終わっていない」というタテマエも加味しつつご覧ください。

  • 「本案件は対応しない方針となった為」
    は?? 誰がいつ決めたんだそんなこと?お前らが勝手に決めていいことなんか???
  • 「営業会社様との分科会で方針を確定する想定でしたが、未解決の為以下の仕様で対応しています」
    いやいやいや、お前らのせいで分科会が開かれなかったんだよね??
    それでなんで「未解決だから仕様勝手に決めました」とか堂々と宣言してんの????
    意味不明すぎるだろうが!!
  • 「○○に対応するのは困難なため、相応の期間を有することになります」
    いや、そもそも我々の要求が○○だったのに、君らがその通りの仕様で作らなかったんだよね……? こっちの要求通りにできないから、勝手に作りやすい仕様きって作って、それでいいわけないだろ?
    それで、なんでそんな偉そうに言えるの??
    「要求通りになっていない仕様提示してしまい申し訳ありません。要件化の打ち合わせも再開となりましたので、再度仕様すり合わせさせていただければと思います」って言うべきだよね???
  • 「仕様変更の為、次バージョン以降の対応でおねがいします」
    はぁ????最高の煽りだな。お前が車の運転しながらコレ言ってるとしたら今すぐ免停だよ。それぐらいクソ煽り。
    こっちの指摘に対して「仕様変更」だと????
    お前らの要件検討漏れだよ!!! コードも仕様書も持っていない外部の我々が指摘できるぐらい仕様検討が甘いからツッコミ受けてるだけだよ!!!
    理解しろよ、自分たちの能力が低いせいで指摘受けてるってことを……。

「まだ要件すら固まっていない」という建前はどこに行ったのか?
そのタテマエを忘れてしまったのだとしたら、とんだ大馬鹿野郎でしょ。
チームの誰もタテマエを覚えてないってことでしょ。誰からもツッコミ入ることなく、これをチームの正式なアウトプットとして出してきているんだから。そんな鳥頭なヤツらが開発できるわけないよね。そんな記憶力じゃ仕事になんねぇだろ! 辞めちまえ!
そのタテマエを覚えていて、それでいてこれを書いているんだとしたら、とんだ大馬鹿野郎でしょ。
チームの誰からも「これはさすがに無礼では……?」というツッコミ入ることなく、これをチームの正式なアウトプットとして出してきているんだから。そんなビジネスパーソンとしての基礎もできてないヤツらは学生からやり直すべきだよね。 辞めちまえ!

ま、結局どっちに転んでも「お前ら辞めちまえ!」という結論にしかならないんだな、これが。


そんな物なら要らない

クソ無礼&無能な回答をしてきて押し切ろうとする開発だけど、営業会社側からの回答は今までとは違った。
「そんな物なら要らないからリリースしないでくれ」
さてはて、この回答に開発はどう対応するのか……?

リリース中止!

営業会社が NG を出すことなんて今まで無かったんだけど、ついに NG 出されてリリースは中止になったんだよね。
そこで開発は大いなる勘違いをしたんだよ(いや、ずっと勘違いし続けた 2 年間だったけども)。
「営業の指摘に対応してリリースしなおし」
だと勝手に解釈したんだけど、もう情勢は要求を出した時とは大きく異なっているんだよね。つまり「プロジェクトはキャンセル」って事実が年明けに公表されたって事。
元々 NG 出されたのは去年の 11/1 に出した要求に対する NG であって、その時点ではプロジェクトがキャンセルされるとは想定していなかったの。だけど今は違う。状況が異なる。プロジェクトはキャンセルされた。

となると、当然去年出した要求なんて意味がなくなって、新たにプロジェクトキャンセル(つまり店じまい)に向けたアップデートが必要になってくるよね。だから要求が変わってくるの。

当然、新規開発なんて無くなるのが本筋

プロジェクトがキャンセルされるんだから、当然投資なんてできるだけしないに決まってるじゃん?
ってことは、コストかけて新機能なんて追加しないのが当たり前じゃん。

だけど開発は本当に本当にバカだから、ポシャる前に出した要求は、ポシャった後には不要になる事が分かってないの。
いや、もしかしたらバカのフリをしてるだけかもしれない。だってバカだろうがなんだろうが、開発アイテムが無くなってしまったら食い扶持が無くなるじゃん。だから知らんぷりして開発作業をしたがってただけかもしれないけどね。

待てよ、仮にそうだとしたらそれは開発者としてクソみてぇな判断だから、やっぱり本当にバカなのでは……。
ま、仕方ないね。「開発の政治屋」は、とにかくチームを維持して少しでも長い間エラソーにしてたいんだから。だから開発に意味があるかどうかなんてどうでもいいんだったね。
そうだったそうだった、忘れてたね。
まともな発想だったら、こんなクソみたいな開発チームじゃないよね。

やりかけの修正は全部捨てろ

開発は「では要求の通りに修正しますのでスケジュール出し直します」とか言ってて、まだ自分の立場分かってないんだなぁって思いながら「プロジェクト収束向けの要求」を出し直したのね。
今までの要求に対して、要件定義書の出来が悪かった部分は全部捨てさせたの。
いや~、まぁ爽快だね。開発にとっては屈辱的とも言える仕打ちだもんね。せっかくやったものをただ捨てさせるんだから。賽の河原みたいなもんだよ。
コーディングは別にすぐだろうけど、アイツらアホだから「影響範囲だけ再試験」ってできないんだよね。だから広範囲に意味ない試験をさせられてたんだよ。で、その労力がすべてパァ。

いや~、辛かったでしょうねぇ。

「これは要りません、あれも要りません」って言ったら、開発は言い返せなかったね。だって「お前らがバカだから」って事を遠回しに言われるの分かり切ってるからね。さすがに聞けなかったみたいね。
ま、ただ A さんだけは本当にバカだから「後学のために、なぜ要らないか教えてください」と言っていたらしいけど。
俺だったらボロクソにけなす回答するところだけど、やっぱり営業さんは優しいからゆるやかーに「プロジェクトのキャンセルをうけて、優先度が変わったため」という当たり障りない回答してたけどね。
実際は要件定義書がボロすぎてこっちの指摘山盛り、それに対する回答もクソみたいな内容だったので「これ開発させたら危険じゃね? 余計なトラブルの元になるんじゃね?」ってことで全部取り下げたし revert させたんだけど。

だって信用できるんだったら、もうできてるモノは submit させるでしょ。信用できないから、全部捨てさせた。それだけの話。
ま、それを伝えなかったのは「優しい虐待」という気もするけどね、俺としては。ハッキリ言った方がお互いのためだとは思う。そこでハッキリ言わない関係を続けたからこそ、クソ舐められてきたんだと俺は思うけど。

「改修不要」の回答でスッキリ

ともかくプロジェクトキャンセルのための改修を再度要求し直したのね。
以前よりやる事は減って、まぁ簡単に言えば「顧客データのエクスポート」的な事に力を注いだ内容になってたの。 UI を使いやすく的なことは無し。まぁ当然といえば当然。新規開発は無しなのが原則なんだから。

プロジェクトキャンセルを受けて、営業会社側も 3 月末に人員を大きく削減することは決定済み。もちろん開発側も人数は削るんだけど、そこは政治屋が幅を利かせていることもあって 7 割ぐらいは残るんだよ。一体なにするんだかって話だけど。

で、そういう事情から営業会社としては受入うんぬんもあるので「 3 月末までに対応完了」を条件として出したわけ。多少の融通は効かせるかもしれないけどね。
まぁその条件出してるのが 2 月中旬ってところからして無理めな筋なんだけど、それは知ったこっちゃない。こっちとしては体制が 3 月末で変わるんだから、それまでにやってもらわなきゃ困る。それ以降にできあがったとしても人員的に対応できないから、そうなるならそもそも要らないよって話。

しかしながら、だよ。開発側は人員相当数残しているし、そもそも政治屋は「できるだけ長く王様やりたい」っていう発想の人だから、たぶんできるだけ期限を延ばそうとしてくるだろうと予想できたんだよね。
俺の予想としては「 6 月末完了、と言ってきて、そのままグダグダとなし崩しに 9 月末まで延期延期を繰り返す」というもの。
直属の上司は「えぇ~? さすがにこっちが 3 月末って要求してて、しかもその理由まで知ってるのに 6 月末とは言ってこないでしょう」という感想。

さて、私の予想と上司の予想、どっちが正しいでしょうか? という状況で開発との打ち合わせが開かれた。
開発は打ち合わせでこう宣う。

「スケジュールは 6 月末開発完了です」

はい俺様大勝利。
すぐさま営業会社の部長が回答する。

「それであればこちらの要求日程とミートしないので、改修する必要はありません」

これには開発も肩透かしを食った格好。
政治屋は困っただろうなぁ。おそらく想定外の回答だったんだろうね。「んじゃ要らない」って言われるとは。
これで開発人員を大量に抱えていても、やることが無くなってしまった。
3 か月単位の契約だから、間違いなく 6 月末で開発チームはごく少数に削られることだろうよ。

目論見が達成できず、ざまぁぁぁぁぁぁぁあああって感じ。

かくして私の役目は終了となる

開発側の目論見をスカして「 4 月以降の開発アイテム、ゼロ!」を達成して、俺は晴れてお役御免となる。
最後の最後に、ようやくまともな「じゃ、要りません」が言えて良かったねって感じ。まぁ本当にあのまま開発させてたら余計なトラブルの元になっただろうし、本当にやらなくてよかったと思うよ。

一年の長きに渡って正論を吐き続けた(そしてプロジェクトがポシャることを警告し続けた)俺の役目は終了。
営業会社との契約も 3 月末をもって終了となるわけであります。

はぁ、このヘドロに腰まで浸かって不愉快な思いをするのもこれまでか。ほっとするわ。


無礼&無能な回答をしているのは自社の社員

さてはて、このプロジェクトはポシャり、営業会社での仕事は終了となるんだけども。
問題は自社の開発社員ども。

あの無礼&無能な回答を書いていたのは自社の社員。もちろんリーダーとして A さんはレビューもできずに(たぶん能力的にできない)アウトプットしているので、そっちが大問題。

頭抱えちゃうよね。同じ会社の人間って思われたなくないよね。
今のヘドロ開発は周りがバカばっかりだからいいよ。
だけどまともな開発に入ってこんな事言ったら即営業呼び出されて「おたくの会社どうなってんの!?」って詰問されるよ。

そうならないために、自社のために、俺は彼らにはまともな人間になってもらう必要性を感じたのよ。
そのため、幾度となく自社の取締役には現状報告をしていたのね。

次回、ちょっとどういう報告をして、自社の対応がどうで、結果退職することを選んだかを書いて最終回にしようかと思います。

↓私の一番好きな「ソフトウェア設計とは何か?」を考えるための入門書。
実に分かりやすくタメになる。今でもうちの本棚に置いてある。



ブログ内検索

ブログ アーカイブ

QooQ