RI!・NI!・N! RI!・NI!・N! RI!・NI!・N!
というわけで、一年と八ヶ月ほど関わっていたプロジェクトから離任した。よくよく考えてみると、俺って要件定義以前の段階から関わっていたんだよな。いやー、入社して二週間 (厳密には一ヶ月の時間つぶし的 OJT があったけど) でこんなところに放り投げられるとはなあ。未だに信じられんよ。
それにしても本当にバカらしい開発だった。書きたいことがまとまらないので箇条書きにする。
- 確かにプロジェクトがおかしくなる原因は技術的というよりも社会学・心理学的な問題だろう。が、それは技術的な側面はどうでもいいという事にはならない
- もう少し詳しく書くと、技術的な部分と社会的な部分は分離なんてされてなくて、まったくの地続きってこと。だってさあ、 BTS とか自動回帰テストとか、そういう体制が整ってないと不安じゃん
- ここ重要な。個々の作業者が不安になるような開発体制って時点で、社会学の問題になってるわけだ。というか情報技術も社会の一部なんだからさぁ……
- ここでジレンマが生まれる。もしも明らかにおかしな開発環境でみんなが作業していて、誰もそれをおかしいと思っていなかったら? そこに乗り込んでメンバーに「こっちのやり方に切り替えたらどうか」と言って、それが受け入れられるのか?
- 「バカとハサミは使いよう」と言うが、やっぱりバカはバカでしかないし、未熟者がほんの数週間で一人前になるなんてことは有り得ない
- いや、確かにプロジェクトが火を吹いていて、猫の手も借りたい状況だったのは確かだよ? だからって一年目のペーペーを送られても、現場で教育してる余裕なんてないんだよ
- これは上層部も反省しているので、今後は俺を中心にプロジェクトの火消部隊をある程度は確保していきたいんだと。ってアレ、俺がかなりワリを食う話じゃないか?
- もっと酷いのはダメダメしい奴が送り込まれた場合。これはむしろマイナスの戦力だからなあ
- お願いだからもう少しちゃんと喋ってくれ。プログラマはいつも黙ってコード書いてればいい仕事じゃないんだ
- お願いだからもう少しちゃんと考えてくれ。俺の書いたサンプルの省略記号まで引き写してコンパイルエラーを出して悩まないでくれ
- お願いだからもう少しちゃんと勉強してくれ。何で俺が現場でオブジェクト参照の概念について講義をたれなきゃならんのだ
- いい加減ウォーターフォールはやっぱり止めた方がいいと思う。いや、古典的な開発手法からも (それが反面教師だとしても) 学べる物があるというのは当たり前の話だけど、それを実践してプロジェクトを混乱させるのはどうよ
- 「プログラマと設計者は別物」という考えは大間違い。もちろん全体のアーキテクチャを考える人は限られた人数の方がいいだろうけど、それでもコードの細かな所、全体のアーキテクチャ・設計思想とは直行した部分は個々のプログラマの設計のセンスが問われるところなんだよ
- そしてそれがわかってないバカが足を引っ張るわけよ。はっきり言ってコーダーになら誰だってすぐになれるけど、コーダーで満足されちゃ困るんだよ。そして本人が「コーダーで何が悪い」と思ってる以上は、どうあがいてもそいつに重要な仕事をさせるのは無理。ぶっちゃけコーディングの技量なんて、ものすごい最悪の底辺でもない限りはそこまで問題にならないんだよ (実際、業務用 Web アプリを作るのに凄い技術はいらないからな。あった方が当然いいけどさ)。一番の問題は、本人に「プログラムを書くことは規模や性質がどうあれ設計をしていることなんだ」という認識があるかどうか。この認識がきちんとあれば、まず足手まといになんてならないと思うんだけど
- まあ、そういう認識を心の底から持てるようになるには時間がかかるってのが真相だと思うけどさ。だからこそ、プログラマを雇うときは趣味でいいからプログラミングをしていた奴を雇えといってるんだよ
- 唯一よかった部分と思えるのは、今の現場に数年単位で出入りしてる人たちはきちんとした「チーム」になっていたこと。なので、一番プロジェクトが迷走していた時期でもそこまで職場の雰囲気は酷くなかったと思う。いや、酷かったには違いないけど、程度の問題
細かい話はいくらでも出てくるけど、とりあえず今日はこの辺で。