フロイドの狂気日記

時は流れ、曲も終わった。もっと何か言えたのに。

PR

久々に嗅ぐ炎上プロジェクトの香り

PR

ここ1年間スポット的な仕事しかしてなくて、久々にロングタームなプロジェクトにジョインして震え上がっている。

 

■プロジェクト概要

ある業界向けアプリのCMS管理機能部分の追加や修正など

アプリ:コア部分は同じだが、利用会社ごとにカスタマイズがある

コード状況:特盛スパゲッティ

FW:codeigniter(ミニマルFWなのに巨大ソースコード)、jquery(人気者) 

ソース管理:gitだがルールが明確でない

営業:機能は何でもある、すぐできると宣言して案件を取得する

PM:優秀そうな2人。コードは書けるし仕様も理解している

仕様:仕様書はない。顧客ごとにカスタマイズしまくりで属人性ありあり

 

■現状

ジョインして半月。徐々にプロジェクトの概要が明確になるたびに、これはキッツいやつだと震え上がっている。PM2人はとても気遣いができて、メンバーに負担させまいと努力している。だが彼らはそのコーディング力の高さとともに、気の強さも理解した。記憶力の高さや幅広い技術への理解も言葉の端々から滲み出ている。自分にないもの全てであり、僕が記憶力も低く、技術への興味を失っていて、コード作成も早くないということは見抜かれている。今はソースコードの一行一行を説明するほどの丁寧さだが、それは最初の助走期間のみだろう。これが忙しくなり、PM達も会議やコーディングやバグチェックに追われて余裕がなくなってくるとどうなるかはわからない。経験上どんな紳士も余裕がなくなると問い詰めたりするようなことはよくある。さらに悪いことは優秀な人はたいてい自分と同じレベルを求めるということだ。

 

■地獄の入口前

実に珍しいことに修正依頼が来ても僕がソースコードを探してから処理形態を読み込むという作業をしないで済んでいる。PMがwebストリーミングで場所や修正例などを示してくれるのだ。なんて素晴らしいことでしょう。いまだかつてない丁寧さ。それが永遠に続くのだろうか?答えはNo。PMたちがにたどり着いた結論は、この複雑怪奇なシステムを理解できる人を育てて長期的に囲うことだ。そのため最初はコストをかけてシステムを理解できるように教えている。その後に待っているのはなんだというのか。

 

営業スタイルが「カスタマイズなんでもやります」である以上、キレイなコードとは相反する。何度となく繰り返される修正と機能追加はコードを肥大化させ、納期は安易なテーブル項目追加や無理やりなビジネスロジックを招く。これはプログラマ自身の能力を超えて対応できなくなる原因である。最も中小企業でよくあることでもある。

 

小さな企業というのは「なんでもやります」「安く引き受けます」「納期は短いです」などで案件を取るケースが多い。そしてこのクライアントは「なんでもやります」については変えるどころか、CEO自らそれがうちの強みだと言い切った。それができるか会社は存続できるんだと。こうなるとプログラマたちは会社を去るか、頑張るか、しかない。そして今、僕は頑張る側に立っている。引き受けた以上はやらざるを得ない。それが仕事である。

 

PMたちは去っていったかつてのリーダーや、前任プログラマが書いたコードをポツリポツリと批判する。彼らはそれでいいが、僕にすれば前任者たちの姿が未来の自分ではないと言い切れないので、苦笑いするばかりだ(音声ははミュート)

 

■遠くない未来の自分

さてどうなるだろうか。記憶力が高く神経質なPMが、下手なミスを繰り返すプログラマを見たときに、我慢していられるだろうか。アプリの細かい仕様や顧客ごとのカスタマイズを理解しているPMと、ジョインしたばかりのオッサンとの差異は果てしない。1ヶ月後に求められる水準は高そうだ。3ヶ月もすると「どうしてお前はこんなことも理解していないんだ?」とか「なぜ咄嗟に説明できないのか?」というシーンがでてくる。それは彼らが僕と同じ3ヶ月でも手に入られたモノの差が表面化した瞬間なのだ。で、キレ散らかされる。

 

フリーランスのエンジニアは縛られないという最大のメリットがある。逃げて良いのだ。切っても切られてもよい。それは不安定さの裏返しだ。しかしひとつひとつのプロジェクトに対しての、とりわけその企業独特の知識や仕様に対するモチベーションは低い。どうせ、長くはいないから覚える必要がない、というものだ。一方で企業のPMレベルになると違う。逃げられない。小さな子供を持つ家族持ちだとするならなおさら。

 

■プロジェクトは賭けに勝つか?

もう少ししたら、FWをLaravelに、フロントエンドをangularに変更し、バベルの塔を更地にするというPMたちの壮大な挑戦が始まる。これは追加修正をのらりくらりとコピペで対応するよりは遥かにストレスフルかつ高コストだろう。彼らはそれにメリットがあると考え、実行部隊の兵隊として僕は雇われた。それでもバベルの塔を積み上げる原因となった人間の欲望「競合他社より何でもやります」がある以上、新しい塔ができるだけではないか。

 

答えは遠くない未来の僕がこのブログで書くことだろう。生き残った語り部の責任は伝えることのみだ。