真面目で優しいシステムエンジニアは損をする⑤~誰も知らない~

2022-03-18

どうも!ヒグッティ(ヒグッティ@システムエンジニア)です!
私の実体験を元に真面目で優しいシステムエンジニアが損をすることについて書いていこうと思います。 これはフィクションです。とあるシステムエンジニア、ヒグッティの物語です。
前回はプロジェクトでの決断について書きました。

真面目で優しいシステムエンジニアは損をする④~決断~

今回は人の入れ替えやミドルウェアの移行についての話となります。ではお楽しみください。

入れ替え

plsqlファイルを別のプログラム言語に変換することをチームメンバに共有し、どの機能から変換していこうかなども決めて、いよいよ作業を開始しました。開始する前にどのプログラム言語にするかを決めて、サンプルプログラムとサンプルのテストコードを用意しました。ボウズさんにこのサンプルをお願いしたのですが、いきなり用意するのは無理!と断られてしまい、私が用意する羽目になったんですけどね…
お客さんへの見積もりとスケジュールも大体決まってきました。決めるのにかなり揉めましたが…決まるまでの流れはこんな感じのやり取りでした。

ヒグ∶やはり別のプログラム言語に変換するので、来年1月くらいまではかかりますね…
PM∶何度も言ってますが、11月までに終わらせるようにして下さい。うまくスケジュールするのがヒグさんの仕事でしょ?
ヒグ∶しかし…人もいませんし…この変換作業以外にもやることがありますし…
PM∶なんで来年1月までかかるんですか?工数の内訳を見せてください。
ヒグ∶機能によりますが、大体、変換で1日、単体テストで2日かかります。
PM∶えー、単体テストに2日もかかるの?単体テストが2日になる理由は?
ヒグ∶テスト件数を1機能あたり大体12〜13件と想定しているためです。この資料を見てください。テスト件数を入れると自動で工数を算出するようにしています。
PM∶どれどれ。なるほど。でもテスト件数が多すぎませんか?変換するだけならこんなテストしなくても大丈夫でしょ!
ヒグ∶しかし、単体テストで正常系、異常系などくまなくテストをして品質を上げないと、あとあと大変なことになりますよ?
PM∶大変なことにならないようにして下さいよ(笑)ちゃんとソース読んで変換すれば問題ないでしょ?現に既存のシステムでちゃんと動いてるソースだし!
ヒグ∶まぁ、確かに…
PM∶ほら!この資料でテスト件数を5件にしたら11月いっぱいで終わりそうだよ!
ヒグ∶そうですけど…
PM∶ヒグさんは心配性なんだからー(笑)大丈夫だよー!
ヒグ∶そうですね…でもこれだと異常系のテストまで手が回らないです。
PM∶まぁ異常系は後でもいーんじゃない?来年4月あたりからこのプロジェクトも時間が空いてくるし、その時やれば大丈夫でしょ!
ヒグ∶そうですね!わかりました!これでスケジュール組みますね!
PM∶お願いします!

私の性格もあり、お客さんに負けてしまいました。交渉は苦手です。
スケジュールなども決まり、変換作業が始まりました。
しかし、まもなくして問題が発生します。進捗がほとんど進まないのです。最初は慣れの問題かと思っていましたが、メンバによっては1日、2日、1週間立っても1機能すら終わらないのです。原因は明らかでした。

○原因
1.メンバのスキル不足。
2.plsqlのロジックが複雑。
3.0から新しいプログラムを作成するため、参考にできるソースがほとんどない。
4.プログラムの際、ルールを決めていなかった。コーディング規約はあったが一般的過ぎてみんな見ていない。
5.メンバ同士でコミュニケーションが取れていなかったため、プログラムの共通化ができていない。

駄目なプロジェクトの典型的な失敗例みたいですよね(笑)
いまどき0からプログラムを作る事なんて殆どないんですよね。大体、既存のソースを流用するとか、パッケージを使うとかで土台ができてる上で、必要に応じて新しいプログラムを追加します。なので余計、工数がかかっていたんですよね。
あとはチームメンバのスキル問題ですね。面接した時はプログラミング得意です!って言うんですけど、いざ蓋を開けたら全然…ってことも珍しくありません。メンバに聞いたら、今までテストしかやってこなかったとか、プログラミングしても簡単なツールしか作ったことがないとか言ってました。面接を受ける側とする側での価値観や認識の違いですね。
私も日々の作業や調整でメンバと話せない事が多くありました。管理できてなかったんですよね。スケジュール表みて、この人の作業遅れているから、誰々さんフォローお願いします!としか指示を出していませんでした。メンバ間の仲もあまり良くありませんでした。みんな初対面だったし自分の作業が優先、他の人のフォローなんてしてられない状況でした。どの現場でもあることだと思いますが、優秀な人ほど作業が多くなります。自分の作業は終わっているのに他の人のために残業したり、休日出勤しないといけないこともあります。自分の給料が上がるわけでもないので理不尽ですね。

そんな状況の中、やばいと感じた私は優男さんに相談しました。

ヒグ∶思ったように進捗がでなくて…
優男∶そうか。まぁ最初だし、しょうがないかなー。メンバの入れ替えする?
ヒグ∶はい。美容師さんは正直厳しいので入れ替えたいです。
優男∶了解。別の人探すから、また面接しよー。あとウーバさんが今月でやめたいって。
ヒグ∶えっ…ウーバさんが…
優男∶うん。なんかもっとクリエイティブな仕事したいんだって。企画とかしてみんなでワイワイやりたいって。
ヒグ∶そうですか…ウーバさん優秀だったので残念です。
優男∶まぁよくあることだから。とりあえず2人探すよ。
ヒグ∶了解です。

実は少し前にウーバさんにメールでクレームを入れていました。美容師さんのフォローをお願いしているにも関わらず、フォローができていない、もっと手厚くやってほしいという内容でした。優男さんもこの事は知っています。クレームが原因でいなくなったのかは未だに謎です。多分、これが原因ですど。

誰も知らない

メンバの入れ替えを検討している間にも別の問題が発生しました。
以前、PMさんからミドルウェアのインストールがうまくいかないと相談を受け会議にいったことがありました。そこで問題が発生していました。未だにミドルウェアのインストールができていなかったのです。インストールを担当していたのは環境構築の人(以降、ノッポさん)でした。その事について会議をしました。

PM∶何でインストールできていないんですか?
ノッポ∶いやーわからないです。マニュアル通りにやっているんですけど、途中でエラーになるんですよー
PM∶いやいや、その原因を調べるのがあなたの仕事でしょ(笑)
ノッポ∶そうなんですけど…ミドルウェアのサポートセンターに問い合わせても解決しなくて…ネットにもほとんど情報がなくて困ってるんですよー
PM∶そうですか…でも今既存の本番環境で動いてるミドルウェアはどうやってインストールしたの?
ノッポ∶当時、インストールした人がもういないんですよ…なので話も聞けないしエビデンスも残ってないみたいで…どうしたら良いか…
PM∶サポートセンターの人に問い合わせて、インストール作業自体をやってもらえば?
ノッポ∶やりたいんですけど、めちゃくちゃお金かかるんですよ!予算あります?
PM∶そうか…予算はないなー。予算を増やすには申請が必要だし、インストールできないから予算増やして!なんて言えないよ。
ノッポ∶ですよね…
PM∶それにインストール終わらないと次の作業に影響でない?今週までに終わらないと。ミドルウェアが持ってる設定の移行作業に遅れが出ちゃうよ?移行作業はヒグさんのチームがやる事になっているけど、どうするの?
ノッポ∶ちょっといつ終わるかわからないですね…でも都度、報告します。
PM∶了解。朝と夕方に必ず報告してね!ヒグさん、申し訳ないけど、この作業終わるまで少し待ってくださいね。
ヒグ∶了解です。
PM∶移行作業ってどのくらいかかるんだけっけ?
ヒグ∶7日と見積もってます。
PM∶後続のタスクに影響ある?
ヒグ∶そうですね。来年1月からこのミドルウェアを使ったテストがあるで、それまでには移行作業が終わっていれば大丈夫です。
PM∶そっか!まだ9月下旬だし余裕だね!
ヒグ∶ですね!

この後、ノッポさんの頑張りでインストールは完了しました。インストールできない原因はサーバにデスクトップ画面を表示するソフトが入っていなかったこと、ミドルウェアとDBの相性が悪かったことだったようです。ノッポさんすげーな。あとから聞いた話だと、ミドルウェアとDBの相性については、問題ないとサポートセンタの人に言われてたけど、よくよく調べたら駄目だったらしい。なので、ミドルウェアを入れてるサーバに別のDBをインストールして上手くいったらしい。

ノッポ∶ようやくインストールできました!
PM∶よかった!ありがとうございます!ヒグさん、設定の移行作業をお願いしますね!予定より1週間くらい遅れちゃったけど、設定の移行作業は十分間に合いますね!
ヒグ∶そうですね!了解です。で、移行方法なんですけど、ネットとかマニュアル見てもどこにも書いて無いんですよ…サポートセンターに問い合わせることっできます?
PM∶ノッポさん、サポートセンターに問い合わせをお願いします。今後はノッポさんとヒグさんが直接やり取りしてこの作業を進めてください。
ヒグ∶了解です。

それから1週間が立ちましたが、ミドルウェアの設定移行は終わりませんでした。理由は移行方法がわからないからです。サポートセンターに問い合わせてもマニュアルを見てくださいとか、調査しますとしか回答がなかったため、作業を進めることができませんでした。今のミドルウェアの環境構築をした人や設定をした人も既にいなくなっており誰も知らない状況でした。そんな状況の中、PMさんからはいつになったら作業が終わるか、目処はつかないのか?と質問攻めされ、私も「すみません。わかりません…」と回答する日々。中々キツかった。チームメンバにも相談しましたが、ミドルウェアの知識やサーバのインフラ周りの知識を持っている人がおらず、お手上げ状態。私がこの作業を専属で担当することになりました。唯一、味方だったのはノッポさんでした。一緒に方法を考えてくれたり、サポートセンターに問い合わせしてくれたり、心の支えとなっていました。
そんな中、ノッポさんと一緒に考えているうちに、少しずつ光が見えてきました。
サポートセンターから移行ツールを使えば設定を移行できると回答が来たのです。この移行ツールはネットからダウンロードできるものではなく、サポートセンターの人からしか貰えないものでした。これで解決できるかと思ったのですが、まだまだ道のりは長かったです。移行ツールを使うにはミドルウェアのバージョンが同じ環境同士でないと利用できないのです。
以下、解決までの道のりです。
1.既存本番サーバにあるミドルウェアと同じバージョンのミドルウェアを新しいサーバに構築。
2.既存本番サーバのミドルウェアの設定を新しいサーバのミドルウェアに移行(移行ツールを使う)。
3.2で移行したミドルウェアのバージョンを最新に更新。
4.最新バージョンのミドルウェアとAurora(DB)を連携。
5.ミドルウェアの稼働確認

上記の手順以外にもネットワークで通信できるように設定を追加したり、バージョンを揃えるためにミドルウェアの設定を変更したりと色々やりました。都度、サポートセンターに問い合わせしながら作業をしていたのでかなり時間がかかっていまいました。
作業の間も朝、夕にPMさんと進捗報告会議をし、他の作業の進捗管理をし、ミドルウェアの移行作業をしたりと忙しかったです。基本的には日中はPMさんへの報告資料の作成、他チームメンバの進捗確認、進捗表の更新、作業の相談、リスケに追われていました。定時すぎてからはミドルウェアの移行作業でした。
ミドルウェアの移行が終わる頃には11月の下旬になっていました。最初は1週間と見積もりしていましたが、結果、2ヶ月弱もかかってしまいました。

PM∶ミドルウェアの移行作業が完了して良かったですね!
ノッポ∶ですねー。一時期はどうなるかと思いましたが…
ヒグ∶良かったです!でも、この作業にかなり時間とられちゃいましたね。
PM∶そうだねー。でも作業は終わったしよかった!ヒグさんの会社でこのミドルウェアに知見のある人をメンバに入れといてってお願いしてましたけど、何でこんな時間かかったの?
ヒグ∶いやー、プロジェクト始まる前に使い方とかは勉強してもらっていたんですけど。この移行作業はネットで調べても情報がでてこなかったのでかなり難航しました!つかこの移行作業って最初から見積もりに入ってないんですよね…
PM∶そーだっけ?でもうちがヒグさんの会社に出してる要件リストを見ればわかることでしょ?暗黙の了解でこの作業は必須ってことは承知してもらってることだと思ってましたよ(笑)
ヒグ∶そうですね!((笑)じゃねーよー!こっちはそのせいでめちゃくちゃ残業してんだからー!)

仕事ではお客さんに恩を売っておけ、とよく言われます。私はこの作業で恩を売って他の作業のスケジュールをトレードオフしてもらおうかと思っていましたが、できませんでした。約2ヶ月の工数を背負ったまま次の作業に望むことになりました。
ミドルウェアの設定も終わり、久しぶりに定時で上がることにしました。大変だったけど、終わってよかった。帰宅中、風が冷たくなっている事に気づきました。空もどんより曇っていました。帰宅してからは東海オンエアの動画を見て元気をもらい、就寝しました。

まとめ

交渉は大事。負けたとしても相手に条件を提示し折り合いをつけるべし。
優秀な人は損しがち。
人の入替が多いプロジェクトはヤバい。
誰も知らない機能や仕組みが本番環境で普通に動いている。
よくわからない作業や特殊なミドルウェアを使うときは工数を積んでおけ。

スポンサーリンク

Uncategorized

Posted by user