久々に衝撃的な体験だった。
とあるシステム案件の下請け的開発依頼だったのだが、
1.アーキテクチャがおかしい
ビジネス系の人が直接実装担当のエンジニアに指示を出している。丸投げである。よってアーキテクチャが根本的におかしいのだが修正できない。
アーキテクト不在。
2.ドキュメントが無茶苦茶
基本なぜかエクセルで書いている。読みにくいことこの上ない。さらにバージョン管理が無茶苦茶である。ほとんど読んでも意味の無い古いドキュメントだらけで解読が非常に難しい。アプリのバージョン、開発環境などもドキュメント毎に違っている。ビルドするとドキュメントが自動生成されるなんてことは一切ない。
ドキュメント担当不在。
3.プロダクトのソース管理が無茶苦茶
ソース管理ソフトはつかっているものの、理解不能なブランチに分かれていて同等製品が複数派生している。修正に手間がかかる。
ソース、プラットフォーム管理者不在。
4.ユニットテストのコードがない
ユニットテストの自動化を一切していない。これもエクセルでテスト項目があげられていて開発者がチェックしていく。
テスト担当不在。
5.GUIがひどすぎる
お客にそのUI見せただけで信用度がた落ちである。いくらショボイ機能しかなくてもUI一つでもう少し印象が変るのに実装エンジニアのセンスそのまま。
デザイナー不在。
6.ざっくりなマネジメント
形だけのマネジメントは存在するが、根性論だけで根拠もなく工数見積もりXXヶ月となる。上記のような問題点は不問であり、ざっくり勝負。
マネジメント不在。
そのシステムの開発オリジナルメンバーが転職してしまった状況での残務処理ということであった。
ここから、日本のIT企業では単純に人材の流動性が高まるとリスクが非常に高いことがわかる。
・アーキテクトが転職した場合、それに見合うアーキテクトをあてがうという流れが自然であるがそれがなされない。恐らくオリジナルの開発グループでも担当が明確になっていなかったので、どういう人をあてがえばいいのかはっきりしないのだろう。つまり日本式の担当を明確化しないやり方だと、お互いを補完しあう関係が重要なのであり、同一メンバーで最後までやる分にはなんとか回せていけていた。それが人材の流動性が高まることによって補完しあえず、穴だらけになっていく。個々人の個性が悪い方向に作用していってしまうのだろう。
・人が居なくなってしまうリスクを過小評価しているためか、ドキュメントの内容とそのバージョン管理などが非常に疎か。
・マニュアルですべてのテストも開発者がこなしてしまおうというあたり、人使いの荒さが見受けられる。
・ドキュメント担当、デザイン担当、アーキテクトなど担当を明確に設けないため統一感がなく、その時々の担当者の個性が出てしまいプロダクト全体として非常に醜い。
・トップが根性論を持ち出すので、以上のような分析はなされず、新たな対応もされない。
かといって終身雇用の囲い込みが難しくなっている現在、責任範囲の明確化を進めるのか、囲い込みを再度強化するのか(可能なのかは不明だが)選択せざるを得ない状況なのではないだろうか。さらに責任範囲を明確にするのは担当者をただ置くだけでない。その担当がその道のプロとしてやっていくことを担当者も会社も覚悟しなければならないのである。
私が関わったこの会社がたまたま酷かったのであり、他の会社はもう少しうまくやっているといいのだが。