2011年10月12日水曜日

「作法を学んでいる暇があったらプログラムしろ」それが自分なりの結論 | ソフトウェア開発の技術は今確実に良くなりつつある–未来は明るい - Tech Crunch Japan

ソフトウェア開発の技術は今確実に良くなりつつある–未来は明るい - Tech Crunch Japan

・・・Scrum(スクラム)が攻撃されている: “Scrumが死んでAgile(アジャイル)だけ生き残ってほしいね”・・・テスト駆動開発も、批判されている・・・この考え方は一時は神聖視された・・・“試験をすればするほど、そのソフトは悪くなる”・・・ “テスト駆動開発は、その概念そのものが欺瞞だ。あんなものを信奉するなんて、犯罪行為だ”・・・

一時期、スクラムだのアジャイルだのXPだのペアプログラミングだのテスト駆動開発だの・・・と開発スタイルや体制についてやんやんいわれていたことがあった。

部分的には参考にして導入しながらも、本気で全てを導入する気にはなれなかった。なぜなら、一時期サーバーサイドJavaの世界で「フレームワーク」がもてはやされて乱立していた時期にソックリだと思ったから。

Strutsとかね。散々試しては消え・・・そのたびに「作法」を学ばなければならず、一体自分はプログラムをしているのか?作法を学んでいるのか?と。こんな感じで右往左往したおかげで、どれだけの時間を無駄にしたか。

フレームワークはプログラムの粒を揃えるには確かに便利だけど、それは「行動を強制・矯正する」という面があるからだ。つまり、管理者側には便利だけど、開発者側にも便利とは限らない。

もし開発者が抑圧されるなら、自由な発想をもったプログラムは書けない。「これをやってみたい」と衝動的に思っても「テストを先に書け」というの?これじゃやる気無くすよね。

銀行システムのようなプログラムには自由な発想は必要ないだろう。しかし、ユーザーの感性を刺激するようなプログラムを書く場合は、それではいけない。

適切な開発スタイルというのは、開発の規模やプログラムのタイプにもよる。だから「あれもダメ、これもダメ」でもないと思う。それなりのベストプラクティスの結果なのだろうから、しっかりと見極めて、参考になることは参考にすればいい。

やってはいけないことは、「周りが使っているから」とか「これをやってないと恥ずかしいから」とか、そういった動機で盲目的に導入することだ。

自分はもう「フレームワーク」的なものは導入しないと決めている。スタイルは自分で作る。誰にも規定されない。

他人の作法を学んでいる暇があったらプログラムしろ。周辺より核を。Focusing is about saying NO. それが自分なりの結論。