久々に衝撃的な体験だった。
とあるシステム案件の下請け的開発依頼だったのだが、
1.アーキテクチャがおかしい
ビジネス系の人が直接実装担当のエンジニアに指示を出している。丸投げである。よってアーキテクチャが根本的におかしいのだが修正できない。
アーキテクト不在。
2.ドキュメントが無茶苦茶
基本なぜかエクセルで書いている。読みにくいことこの上ない。さらにバージョン管理が無茶苦茶である。ほとんど読んでも意味の無い古いドキュメントだらけで解読が非常に難しい。アプリのバージョン、開発環境などもドキュメント毎に違っている。ビルドするとドキュメントが自動生成されるなんてことは一切ない。
ドキュメント担当不在。
3.プロダクトのソース管理が無茶苦茶
ソース管理ソフトはつかっているものの、理解不能なブランチに分かれていて同等製品が複数派生している。修正に手間がかかる。
ソース、プラットフォーム管理者不在。
4.ユニットテストのコードがない
ユニットテストの自動化を一切していない。これもエクセルでテスト項目があげられていて開発者がチェックしていく。
テスト担当不在。
5.GUIがひどすぎる
お客にそのUI見せただけで信用度がた落ちである。いくらショボイ機能しかなくてもUI一つでもう少し印象が変るのに実装エンジニアのセンスそのまま。
デザイナー不在。
6.ざっくりなマネジメント
形だけのマネジメントは存在するが、根性論だけで根拠もなく工数見積もりXXヶ月となる。上記のような問題点は不問であり、ざっくり勝負。
マネジメント不在。
そのシステムの開発オリジナルメンバーが転職してしまった状況での残務処理ということであった。
ここから、日本のIT企業では単純に人材の流動性が高まるとリスクが非常に高いことがわかる。
・アーキテクトが転職した場合、それに見合うアーキテクトをあてがうという流れが自然であるがそれがなされない。恐らくオリジナルの開発グループでも担当が明確になっていなかったので、どういう人をあてがえばいいのかはっきりしないのだろう。つまり日本式の担当を明確化しないやり方だと、お互いを補完しあう関係が重要なのであり、同一メンバーで最後までやる分にはなんとか回せていけていた。それが人材の流動性が高まることによって補完しあえず、穴だらけになっていく。個々人の個性が悪い方向に作用していってしまうのだろう。
・人が居なくなってしまうリスクを過小評価しているためか、ドキュメントの内容とそのバージョン管理などが非常に疎か。
・マニュアルですべてのテストも開発者がこなしてしまおうというあたり、人使いの荒さが見受けられる。
・ドキュメント担当、デザイン担当、アーキテクトなど担当を明確に設けないため統一感がなく、その時々の担当者の個性が出てしまいプロダクト全体として非常に醜い。
・トップが根性論を持ち出すので、以上のような分析はなされず、新たな対応もされない。
かといって終身雇用の囲い込みが難しくなっている現在、責任範囲の明確化を進めるのか、囲い込みを再度強化するのか(可能なのかは不明だが)選択せざるを得ない状況なのではないだろうか。さらに責任範囲を明確にするのは担当者をただ置くだけでない。その担当がその道のプロとしてやっていくことを担当者も会社も覚悟しなければならないのである。
私が関わったこの会社がたまたま酷かったのであり、他の会社はもう少しうまくやっているといいのだが。
いや、おそらく日本では普通だと思います。最近だとメッセサンオーの情報漏洩の話がありましたが、あれを笑えないような会社は珍しくありません。
http://slashdot.jp/security/article.pl?sid=10/04/06/0655212
コストダウンの名の下に人減らしだけは進みましたが、そのことがどれくらい破壊的な影響をもたらしているかを、上の人が全く理解できていません。上の人ほど開発経験に乏しく、細部を理解できていないのです。
『鉄筋減らしてコストダウン』して住めないマンションを大量生産したマンション販売会社がありましたが、IT業界は減らすどころか「鉄筋も柱も無くしてコストダウン」を目指してる感さえあります。
そもそも人事部が採用する時に、技術スキルの高い人は取ろうとしませんし、ユニットテストのような基礎知識さえも全く知らない人が大半を占めます。(酷いのになると例外処理さえもスッパリ抜け落ちているのに、「動きました」と報告されているという……。orz)仮に採用する意欲がある時でさえも「ユニットテスト経験のある人」みたいな無意味な基準を出してきます。当然のことながら、スキルの高い開発者が採用できることはありません。
見直すための工数は悪、辻褄合わせるのが正義。
修正に必要な工数を出しても、それがその場しのぎを下回らない限り
ゴーサインが出ることは無い。結果、工数がどれだけ膨らんでも
「その時点での最善を尽くした」で終わり。
>実装エンジニアのセンスそのまま。
デザイナーが居ても、「客が操作方法わからない」という理由で
上司好みにされてしまうという。
設計も実装も何もわからなくてもUIには口挟めますから。
まあこれは単に長期的成果を犠牲にして短期的成果を出してるに過ぎないわけですが、経営者や管理職の頭が悪いのでそこにトレードオフがあることを理解できないんですねー。どうにもならんと思いますよ。
日本では、PGはゼネラリストでなければならないし。。
なので滅茶苦茶になる。(にわか仕込みの知識で勝負するw)
つーかそもそもSEってなんだ??(意味不明)
マネジメントにおいては、PGから無理やりPMにさせられた人がするんだから、できるはずがない。ざっくりできればまだいいほうなんじゃない?まったくできないでPMやってますとか平気でいますからw
マネジメント専門の人がいないからね日本は。
ちなみに海外との一番の違いは、
開発期間の長さと開発人数じゃないですかね?
日本で3か月であれば、海外では5カ月で見積もるし。
日本で3人で見積もれば海外では5人で見積もるし。
この余裕がある程度、あげている1〜6の項目に反映してる
気がします。
余裕がないので、いつもギリギリだし、毎日デスマーチ。
これでいいものがつくれるはずないよね。
クライアントに関しても、システムに対する理解度が
違うんじゃないでしょうか?
やたら、高いだの、時間がかかり過ぎるだのうるさいしね。
スケジュール勝手にどんどん削るから。
そのくせ無駄な機能を追加、追加、追加、そしてやっぱりやめた。
・・・・
システムを作る上でクライアントの協力が最も必要なのに
全く協力しないしね。下手すると、まる投げで担当者さえ
つけない会社があるし。
しかも、PGって言うとなんか相当社会的地位が低いように
思われるし。奴隷ですよ奴隷。
日本では、もう働けないかも。。
>日本で3人で見積もれば海外では5人で見積もるし。
日本で5ヶ月と見積もると、プロマネが3ヶ月と上に報告し、
日本で5人と見積もると、プロマネが3人と上に報告する。
というような気も。現場の専門家の意見より、開発経験0のプロマネの希望的観測が常に優先されるのです。
さらに「学歴不問」で集めた質の悪い人材と、グダグダの開発環境。
協力しない顧客担当者、etcが加われば、ブラック企業のできあがり。