Tbpgr Blog

元エンジニア 人事 tbpgr(てぃーびー) のブログ

七次下請版カイゼン・ジャーニー 1部

いつものようにカイゼンジャーニーに関するツイートを読んでいると

こんなツイートを発見しました。
確かに。で、こんなツイートをしました。

なるほど。そして現実として

というような問題があります。

なら自分がいた SIer の下請けのつらみの塊のような物語を
ストーリーとしてまとめてみよう、ということを思い立って筆をとることにしました。
ちょうど「SIerってどんな仕事するのだろう?知りたい」という話をしていた大学生の方もいたので一石二鳥です。

内容としては15年くらい前と6年前くらいの情報を元に物語を作っています。
つまり

「全く見てもいないし、体験もしていないことは書いていない。
実際にSIerの多重請負の現場であったこと」

がベースになっています。
ただし、私が経験したのはあくまで下請けの体験のみです。

15年前と6年前があまり変わっていなかったことから今でも似たような環境で
つらみを感じている人は少なからずいるだろうと予想しています。
しがないラジオ 」で今でもつらみのある現場があることは確認していますし。

物語

これは、ある文系大学卒のプログラマー「原」の物語です。

1部

1章 七次請負と面談という名の面接の連鎖

新人プログラマーの原は営業に連れられて薄暗い住宅の一室へやってきた。

六次請負の担当者による面談だ。
面接ではないらしい。
なぜだろう?

原は所属企業の営業から手渡された自身の職務経歴書を見る。
新人なのに「Java 経験 5年」と書いてある。
なぜだろう?

いくつかの質問にこたえると面談から解放された。
どうやらパスしたようだ。

そんなことを請負階層分繰り返し、ようやく元請けの面談を通ることとなる。
現場に参入する前に営業担当社から注意事項をきく。

二次請け営業担当者「ニジウケシステムとして働てもらうので名刺を渡しますね」
原「あ、ハイ」
自分の会社の名刺は出番がないのか。
なぜだろう?

こうして物語は幕を開ける。

2章 IDEが動かないPCを変えてもらう

営業担当から現場のリーダーに引き渡される原。
リーダーの吉村さんは四次請らしく、クラス図のように会社の階層を図解してくれる。
満面の笑みの吉村さんをみて「楽しい現場なのかな」と期待を膨らませた。

吉村「わかった?」
原「わかりました。ところでチームメンバーは、先程の図のどの会社の人ですか?」
吉村「勝呂さんはこちら経由の三次請けで、松本さんはあちら経由の五次請けだよ。」
吉村「実際はもっと下かもしれないし、フリーランスかもしれないけどね。はっはっは!」
原「なるほど。(よくわからない世界だな・・・)」

オリエンテーション的な説明を受け、いよいよ業務に着手することになる。

開発に使用する分厚いノートPCを受取り、紙の手順書に基づいて環境を構築する。
IDEをインストールし、起動しようとしたところで問題が発生する。
IDEを起動しようとするとPCが重くなり、動かなくなってしまうのだ。
PCのスペック不足だ。

吉村さんに報告し、PCを交換してもらうことになった。

3章 IDEを起動するとLintの警告が多すぎてフリーズする

交換したPCでようやくIDEが起動するようになった。
しかし、起動途中で動作が停止してしまう。
吉村さんに質問してみる。

吉村「あー、それね。コーディング規約通りにIDEの静的解析が実行されると警告が多すぎて動かなくなるんだよ」
吉村「だから、Linterはオフがここの常識さ!」
原「常識」
吉村「そう、常識」

原は「規約とは・・・」と思いながら、仕方なく常識に従うことにした。
Go にいっては Go に従え、だ。
Go to 魂。

4章 開発デビュー

環境設定を終え、ついに開発デビューとなった原。

共通ライブラリチームに配属された原は設計書を元に実装に着手する。
入社前に趣味でホームページ制作はしていたが、
Javaを使うのも業務のシステムもはじめてだ。

わからないことは吉村さんに教わりなが開発を進めた。

5章 調ベゴト・家デスル

ここで急遽リーダーが交代するという知らせを受けることになった。
どうやら原が参入する前に、吉村さんの退場は決まっていたようだ。
なるほど、入場説明時の吉村さんが満面の笑みだったのはこのことか・・・。

初の業務。当然わからないことは多い。
ここで特大の障壁が。
この現場ではインターネットを利用できないのである。
携帯の持ち込みも禁止である。
今までは吉村さんがいた。しかし、今はいない。

仕方がないので、内部の資料で確認できないことは
ノートにメモをとり、自宅に帰ってインターネットで調べ、翌日に解決方法を試すことになった。

6章 パワハラで戦線離脱

そして後任のリーダーである 栄さん の登場となる。

常に不機嫌で、横柄で、人を見下した態度の栄さん。
勝呂さん、松本さんは早々に彼を見限り

  • 所属企業に問題視されない最小限の業務しか協力しない
  • 栄さんとは可能な限りコミュニケーションをとらない

という方針を決め込んだ。
結果、チームのタスクは原に集中することになった。

そして原は経歴上5年目だが実際は1年目である。
栄さんの期待値よりは成果が低くなるのが当然であり、
とはいえ他のメンバーが仕事をしないので業務の多くは原に回ってくる。
タスクが増えるほどつらくあたられる機会が増える。
原を怒鳴りつけながら原の座っている椅子を蹴飛ばす栄さん。
原に伝わる怒りと振動。

栄さんがこんな調子なので、わからないことを聞く=説教のスタートである。
結局調べごとは家でするしかない状況が続いた。

原は体調を崩してこの現場を去ることになった。

7章 日付とファイル内コメントで管理する履歴

暫くの休養を経て体調を取り戻した原。
新たな現場に参入だ。

そこではバージョン管理ツールを利用していなかった。
原は私生活で勉強していたのでバージョン管理ツールの存在は知っていたし、
利用方法やその有益さも知っていた。

リーダーにバージョン管理ツールの導入を提案するも、撃沈。
2名のチームであり、自社からは原しか参入していない。
協力者は誰もいないし、参入したばかりで信頼貯金もない。

ソフトウェアのインストール権限は与えられていないため、
"せめて自分だけでもバージョン管理する" という選択肢もない。

仕方なくチームのルールにあわせて日付+連番と
ソースコード内の変更履歴コメントで履歴を残していった。

モヤモヤを抱えつつ、与えられた環境で粛々と仕事をこなしていく
原の姿はどこか不満げだった。

この現場は短期で、すぐに次の現場にいくこととなった。

8章 デザパタで炎を消す

新たな現場に参入する原。
リーダーの 駒田さん から現状をきく。

今は設計から実装に入る直前の時期で、原は実装要員だった。

駒田「実装に入った時に迷わないように既存コードを眺めながら時間を潰していてね」
駒田「プロジェクトの進行はかなりおしていて、このままだと厳しい開発になると思う」
原「なるほど。わかりました」

おもむろにコードベースを眺める原。
この頃には業務外での学習をする機会も増えて、全く勉強していない人に較べて
随分いろんなことが分かるようになっていた。

先日もGoFデザインパターンの本を読み終わったところだ。
そんな視点でコードベースをみていると、
コードが冗長で、全体の流れがほぼ同じ。
個別の業務ロジックの一部のみが特有の処理になっている。
どうもこれは Template Method パターンを使うことで大幅にコードを圧縮できそうだ。

削減可能なコード量を伝え、
実装サンプルで実現可能であることを示し、
この選択肢を選べばプロジェクトは期日内に余裕で収まることを伝えた。

駒田「じゃあ、実装工程が始まるまでに共通部分を作って、実装工程に入ったら各開発者に実装方法を説明してください」
原「はい!」

提案はあっさりと採用された。

さっそく共通部を実装し、個別部のサンプルを用意した。
また、各担当者向けの作成手順の資料を用意した。

結果として炎上プロジェクトだったはずの案件は
余裕で納品を終えることとなった。
これは原にとって大きな自信になった。

9章 導入 JUnit

次のプロジェクトまでの間、自由な時間が与えられた。
前プロジェクトの納品資料の作成を終え、
時期開発までの期間を得た原は個人的に学んでいた JUnit を導入することを提案した。

プロジェクトの隙間ということと、 Template Method による工数削減の件もあり、
すんなりと提案が通った。

そして、納品済みのシステムには自動テストが整備されることとなった。
次期開発で楽ができるぞ。

10章 まさかのステップ見積り

ある日、原は駒田さんから呼び出される。

駒田「原さん」
原「はい(どきどき)」
駒田「困るんだよね。」
原「え?」
駒田「このシステムはステップ数でお客様に見積りを出しているから
コードが減りすぎて説明ができなくなってしまった。」
原「は?」
駒田「時期以降の開発に必要となるステップ数も大幅に減ってしまった」
原「はぁ・・・」

まずは期日に納品をする、という面での活躍は認められたものの
長期的な元請けの利益の面ではマイナスの影響となってしまったのだ。

11章 燃え尽きるやる気

土曜日に無休で強制参加の帰社日。
「誰でもいいから知り合いを連れてきて」という経営者の発言をきかされることになった原。

原「そうか、誰でもよかったのか」
原「勉強して、炎上プロジェクトを救っても評価どころかお叱りを受けるのか」
原「人の倍以上の成果を出しても特に評価には反映されないのか」
原「パワハラが辛かったな」

多重請負の現場で常に一人だった原は、相談できる相手もいなく
狭い視野で悩んだ結果、病んでしまいシステム開発の仕事を離れることにした。

2部へ

続く?