開発手法と新技術と現場

たまに様子をみているプロジェクト、すこしまえから火事になっています。
火事になった原因はいろいろあるのですが、先日、そこを担当している部長がきて、相談がてらいろいろ話をしていきました。
いまのところ、問題になっているのは、TDDと、S2てことになってしまっています。
もちろん、プロジェクト管理、仕様書の手戻りなどの問題が多発してのこともわかってくれているのですが、それを差し引いてもこの二つの要因が問題になっている気がするというのです。


まず、TDDでなにが問題になっているかというと、プログラマがテストクラスを書けない、または、テストクラスを書くのに時間がかかって、本来のプログラムが進まない。


それと、S2は今回初めて使ったんだけど、開発の中心人物以外、DIのことが理解できていなく、もちろんチーム内の勉強会などを開く時間はなく、設計にとまどっているとのこと。


しかも、別の業務をまったくS2を利用せずに作らせたらそっちは進捗上、さくさくすすんでいるらしく。それが余計に管理者サイドには今回の開発手法、技術にたいしてなんらかの抵抗をあたえてしまっている。


この話を聞いて、自分がCOBOLからJavaに転向して、Javaをあまり知らずに、Strutsを使ったの擬似開発をしていた頃を思い出した。


それなりに、COBOLで手続き型、テストもほとんど机上という世界の開発から、いきなりWebアプリ、しかもフレームワーク
なにがわからないかもわからない状態。
ひとつずつ、いままでの開発でつちかった技術とどこかどう違うのか、どうマッチングできるのか?などを考えて、やっと仕組みを理解し、そのあと、どう設計、開発していけばいいかを、やはり、いままでと比較しながら、試行錯誤していた。


今回のもそこまではひどくないけど、自分たちがいままでしてきた「ベストプラクティス」から離脱して、新しいものを開発に取り入れるのはいくらその新しい考えがいいことでも、逆に開発の生産性をさげてしまう結果になるんじゃないかと思った。


技術、指向が、どういう風な経緯で生まれたか、
いまの現状とどう違うか、どこが改良されて、どこが未知なのか、
どういう風に適用していくかまで考えないとよっぽどスキルが高くないと難しいのかなぁ・・・


新しい技術でがんばってる他の人たちはやっぱそこまで考えているんだよな、きっと。


てか、文章書くのへたすぎだ、俺・・・orz
なにが言いたいのかよくわからなくなってきた。