最近、@syobochimのブログを読んでいたら、こんな言葉が書いてあった。
顧客に価値を届けたい。
私はいま、価値届けられてるんだろうか。
アジャイルサムライを読んだら意識高まってつらい - そこに仁義はあるのか(仮)
僕はどうだろうか。今のプロジェクトはありていに言えば"炎上"している。
そんな中で「誰の考え方が一番正しい」のか分からなくなった。ので、今日はそんな話を書いてみようと思う。
この話の登場人物
- あやぴー
僕です。
- マツダさん
僕と同じ会社の先輩。エンジニア歴10年位。
- モリさん
僕と同じ会社の上司にあたる人。エンジニア歴20年位の大ベテラン。
- イノウエさん
元請けの会社に8月くらいに中途で入社したエンジニアさんで立場的にはプロジェクトリーダー(PL)的な感じ。転職するまでPL1とかVBとかのお仕事をやってきたらしい。
- ノジリさん
元請けの会社の人でプロジェクトのプロジェクトマネージャー(PM)となっている人。詳細不明のいけ好かない人。
※登場人物は一応全て仮名です。
プロジェクト初期の話
まず背景からするりと。
3月末で前職を退職した僕は4月から東京で働くことになり、4月の半ばからとある金融関係のプロジェクトに参画することになった。そこではJavaでバッチシステムを作っていて、僕はモリさんがいるからということで一緒に参加することになった。まぁこの時期のは結構ひどかったんだけど、6月に同じお客さんの別のプロジェクトへと行くことになった。それが今のプロジェクトである。
このプロジェクトは昨年の12月頃までモリさんが参加していたプロジェクトで、モリさんが要件定義の前段階をやっていて6月の終わりから設計が始まるのでキックオフミーティングからまた参加してほしいというオファーがきたからだった。
6月中頃、キックオフミーティングが行われた。元請けの会社はかなり大きく、そのキックオフミーティングを行われた部屋はちょっと大きいミーティングルームだった。現在その部屋はプロジェクトルームになっている。長机と椅子*1が並べられていて殺風景だし、なんとも言えない部屋だ。
キックオフミーティングで分かったのは、期間が思いの外短い*2ということと、その時このプロジェクトの要件を詳しく知っている人がいないということくらいだった。
キックオフミーティング後よく分からないまま、外部設計という工程に入った。大手らしいWF開発のようだ。当然要件がよく分からないので、要件定義書を読み解くところからスタートした。僕自身はいわゆる上流みたいな仕事をする機会が今までなかったので、それはそれで楽しみだった。
7月を迎えるくらいのときにマツダさんがプロジェクトに合流した。それと時を同じくして一人目のPMが去っていった。正確に言えば統括PM*3の判断によって、PMを変えられたというのが正確だろう。何かが噛み合わない不気味な音に、その時はまだ気付かなかった。
終わりのない打ち合わせとプロジェクトの遅延と
7月になってお客さんのところに週2回くらい打ち合せに行っていたが、要件定義が済んでいたはずなので外部設計をしていく上で必要な事柄を詰めていくのが主になるはずだったのだけど、何故か手元にある要件定義書とお客さんの要望が食い違っていて全然噛み合わなかった。要件定義をやり直しながら外部設計をやっているような感じだった。。
「さっきまでと言ってること違うじゃない」そうSCANDALが歌っている歌があったと思うけど、本当につい1周間前*4までと言ってることが真逆になったりするので理解できなかった。お陰で打ち合わせの成果が毎回ほとんどなく、何度かかけてようやく決まったという部分も少なくない。そうこうしているうちに8月を迎えていた。8月末までに設計を終わらせて9月からは実装というスケジュールだったので、なんとしても8月末までに決めないといけないことが多かった。そこでどういう手段に出たかと言うと休日の午前10時から集中ミーティングという形でお客さんを迎えて打ち合わせをすることになった。このミーティング、長い時で翌日の午前3時までやっていたことがある。何度かやったけど全て日付が変わる前に終わった試しがなかった。
書き忘れていたけど、このとき既に二人目のPMが消えて三人目のPMになっていた。理由はお客さんからPMが出入り禁止とされたから。それと同時期にイノウエさんが合流した。当初イノウエさんの活躍は凄まじくメシアかと思った。荒ぶるお客さんを鎮めなんとか設計を終えることが出来たのはこの人の活躍あってのことだろう。
さて、8月終盤の怒涛の日々を乗り越えて9月になったものの、結局お客さんとの打ち合わせは続いた。ただ、僕はその頃打ち合わせから外れて、設計書の体裁を整えたり日々の打ち合わせで決まったことなどを反映させるお仕事をしていた。この時プロジェクトは既に当初予定から2ヶ月くらい遅延していることになっていた。
オフショア開発によって生まれる歪み
9月から実装予定だったものは何処に消えたかというと、実装開始を10月にずらし内部設計から全て海の向こうに任せることになっていた。本当に凄いと思う。開発の全てを任せてその上受け入れテストとか全くしないっていう新しいスタイル過ぎて目眩がした。もちろんプロジェクトメンバー全員が反対していたけど、それでも元請けはそれを聞き入れることがなかった。
ただ、一部複雑なところの実装を僕が行うことになった。それが10月からのこと。
実質的に実装していたのは10月の2週目くらいからだったけど、それでも順調に実装は進んでいたし、それで11月の2週目くらいまで実装をしていた。その頃、海の向こうで実装されているコードと僕の書いていたコードは同居していた。同じリポジトリで同じように海の向こうでも開発が続いていた。そして、自分が実装していたコードを取り上げられることになる。
僕が実装していた機能は比較的重要な部分で、もちろんテストも僕がやる予定だったんだけど実装も終わりかけの頃、四人目のPMの鶴の一声によって開発を止められてしまう。
少し間が抜けているので、補足していくと10月にマツダさんは海の向こうへ長期出張することになった。理由は業務的なことを教えに行く必要があるとPMが判断したのと、向こうから要望があったため。なのでこの間、マツダさんは不在であった。モリさんはというと、少しでも海の向こうに任せている内部設計や実装が良くなるようにと孤軍奮闘していた。しかし、それもPMからの指示により中断することになる。既に次期プロジェクトのための見積りと打ち合わせが始まっていて、それについて現在一番今のプロジェクトについて知識のあるモリさんが駆り出されていた。登場当初メシアのように思われていたイノウエさんはというと、四人目のPMであるノジリさんにより完全に力を封じられていた。というより、ノジリさんの決定に逆らえない感じだった。
さて、僕の実装が止められてそれがどうなったのかは、数日前に書いた。とても悲惨なものになった。つらい。僕の実装が止められた理由は「プロジェクトをリカバる為に実装とテストを向こうに任せてしまって、統合テストのテストケースを作って欲しい」とのこと。
ということで僕とマツダさんで現在テストケースというのを作ることになった。しかし、明らかにスケジュールに無理があって、更にテストは海の向こうでやるしデータの作成も海の向こうでやるというもの。もはや、理解出来なかった。
既に出来上がってきているものを見る限り、技術力なんて皆無だったし業務知識すらまともに理解されていない、更に日本語もおぼつかないという三拍子揃っていて、誰がどう贔屓目に見ても勝ち目のない戦であるのは火を見るより明らかだった。
四人目のPMであるノジリさんは特徴的で、エクセルと机上の空論だけで仕事をしているという印象をとても強く受ける。そして、独裁的で現場の声を受け入れず「俺が言うことが正しいんだ」を地でいっていた。ある意味、すごいと思う。
オフショア開発に対して不信感を持つプロジェクトメンバーと、盲信する元請けのPM。そうして、色んなものが歪んでいった。
大きくなる歪み、そして聞こえるすべてが崩れていく音
ある日、鉄人とまで呼ばれていたモリさん*5が倒れた。これがつい2週間くらい前のことだ。倒れたというよりは目眩や吐き気がして、仕事に集中することができなくなったということで、病院に行って精密検査を受けたりして今日まで自宅療養中である。
10月の段階で僕らは元請けのイノウエさんやノジリさんに対して、プロジェクトに人を増やして欲しいとお願いしていた。いや、もっと前から(少なくとも8月の段階で)このペースで行けば間違いなくコケるから、増やして欲しいとお願いしていた。何度となくお願いしていたが、なしの礫だった。それ以外にも海の向こうに任せてもできないから、僕らがやった方がいいといったこともアピールしていた。僕らは最善の提案をしていたはずなのに、それは受け入れられることがなかった。そうして11月末、僕らはプロジェクトを降りることを決めた。1月末までで抜けるように調整がされた。そうして僕らが抜けた後のための人員が追加された。
11月の末から海の向こうの出来上がったものを目にする機会が増えたが、とてもじゃないが「ひどい」という言葉を幾ら重ねても表現できないくらい散々たる有様だった。テストのデータを作るにしても業務を理解していないから当然のように変なものが出来てくるし、「だから言ったのに」としか言い用がなかった。今作っているシステムはリリースを2ヶ月くらい先に伸ばしたようだ。お客さんは「データがめちゃくちゃにならないなら欠陥があっても良い」とまで言っているらしい。
それぞれの価値観
僕らの契約内容は「請負」ではなく「支援」であり、「8時間」の労働力を提供するという契約だった。なので、1日8時間働けば契約は満たしていることになる。
マツダさんは最終的にノジリさんやイノウエさんに愛想を尽かし、「1日8時間働けば契約を満たしているんだから、もう残業してまでやんなくていいよ」と僕やモリさんに言っている。これだけ書くと随分薄情というか無責任に思えるかもしれないけれど、一番ノジリさんやイノウエさんをどうにか説得しようとしていたのもこの人であり、お客さんとの打ち合わせでしっかりと信頼され設計をこなしていたのもこの人であり、お客さんに価値を届けたいという想いはとても強いように見えた。
モリさんはなんだかんだで夜遅くまで全力で仕事しちゃう人で、要領が悪いわけでもなく仕事が遅いわけでもないんだけど、その実力故に任される仕事量も膨大で実際今回のプロジェクトで全体像を知っているのはこの人だけのように思える。この人の仕事の仕方は自分の仕事に誇りを持っているというか、元々個人事業主なので自分の仕事をお客さんや元請けにどう評価されるかが如何に大事かというのを知っているようにも見える。そして、やはりお客さんの為にちゃんとしたシステムを作りたいという想いも強いのだと思う。結局倒れてしまったけど。
イノウエさんは途中で入ってきた人だけど、それでもやっぱり8月の打ち合わせから入って業務知識もそれなりに付けてもちろんプロジェクトをコカしたいわけではない。しかし、ノジリさんには逆らうことができないので、ノジリさんから課せられた制約(例えば海の向こうを積極的使うとか)の中でなんとかしようと頑張っている。しかし、いい判断とは思えないのでやはり僕やマツダさんから反発される。この人もプロジェクトをコカしたいわけじゃないし、お客さんにちゃんとしたシステムを提供したいと思っている一人だ。
そんな中、ノジリさんだけは絶対違う思想の元に動いている。この人はどちらかといえば社内での評価を気にする人だ。そして、プロジェクトをコカしたくないのは同じだろうけど、お客さんに価値を届けたいと思っているようには思えない。本当のところは分からないけど、言動を見ているとどうもそうは思えない。
そして、僕は「顧客に価値を届ける」ってなんだっけと悩んでいる。僕ら下請けの立場では変えることができないことが沢山ある。それを僕は今回初めて知った。
自分の無力さを知って、マツダさんのような考え方を知った。確かに僕らは全力を尽くしてきたと思う。そしてどうにもならない現実を目の前にして、プロジェクトを降りることにした。その選択は間違っているのだろうか?このまま行けば間違いなく疲弊するだけだし、何も得るものはない。それでも「顧客に価値を届ける」ために沈みゆく船に乗り続けるのは正解なのだろうか。お客さんの言うとおり「データはめちゃくちゃにならないけど、欠陥だらけのシステム」を完成させることが「顧客に価値を届ける」ということなのだろうか。モリさんのように倒れるまで残業して必死になんとかしようとすることだけが、「顧客に価値を届ける」ということなのか。
残り1ヶ月と半分、僕はもう少し考えたいと思う。
僕は、顧客に価値を届けることができたのだろうか。その為にやることをやったのだろうか。