理想のソフトウェア開発がしたいという話

ナウいソフトウェア開発に必要なもの

これらは相互に依存しあっている。リファクタリングはテスト無しでは成立しないし、コードレビューは二人組みでXPのようなペアプログラミング体制があると楽かもしれない(もっとも、XPは上記のようなプラクティスの集合でしかないので当然なのだが)。VCSを使うようであればシンタックスレベルであれコーディング規約があったほうが、共有しやすい。

自分がいろんなところでこれまでやってきたプロジェクトではどうかというと、ストーリーカードの設定とか後手に回ってできなかったり、テストコードが無く変更のたびのバグが出たりした。時間が足りないときはウォーターフォールになりがち。大学の課題とかね。

少し奮発してこんな本を買った。2000年の本だけど読む価値はあった。精読するにはUMLGoFデザインパターンの知識が必要。それでも現時点で読めるところだけ拾うと、"なぜリファクタリングが必要なのか"とかコードレビューとかテストの重要性とか、プロジェクト遂行のための良い話がたくさん詰まっていた。そりゃそうだ、著者はXPの提唱者と一緒に仕事していた人だものね。

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 90人 クリック: 2,980回
  • この商品を含むブログ (291件) を見る

私は、信頼する学生らと一緒に理想のプロジェクトを遂行してみたいと思った。スキルが同程度の人とやるのが望ましいが、自分はあまりプログラミング能力が高くないから慣れている武器を作る必要がある。果たしてその場がどこになるのかはまだ分からない。できそうなきっかけは結構あったけど、どれもうまく同志が集まらなかったなぁ…


なんでやりたいの?ってところだけど、大規模から少人数までさまざまなプロジェクトにかかわっているエンジニアの方に先日聞いた話がずっしりときた。 「形だけのルールは形骸化する。開発といっても最後は人がやることだから、人の感情とか行動をうまく誘導できなきゃいけない。僕はこれをまさしくハッキングだと思うし、やりがいがある」

今まで協力体制についてたくさんの失敗をして、なんだかんだでユーザの手に届けれてないという思いがあるから、いつかは確実に最後まで終えるプロジェクトをしてみたい。私はアイディアとか出すのが苦手だから、せめて"これが欲しい"って言ってくれる人のところには届けたいんだ。そのアプローチとして開発工程を勉強してみている。他にも良い方法があるならコメント欄で誰か教えてください。