今日は早速面接。
現場を途中で抜け出して東銀座へ。
で、感想。なかなか内容の良さそうな仕事みたいだ。
Javaのswingを使ったフレームワークを使ってるっていうのが唯一気掛りだけど、
話を聞いた限りではそれほど悪い作りでも無さそうだ。
--- Agile ---
この現場で採用されている開発スタイルがこれ。
アジャイルって何ぞや?と思い、少し関連ページを調べてみた。
--- 今までの流れ ---
従来の開発工程というのは大まかに言って
「基本設計→詳細設計→プログラミング→テスト」という流れだった。
相手先の出した案件に対してSEが基本設計をする。
そして、この設計で果たして
客の希望するシステムが実現できるのかどうかを検証し
客からのGOサインが出ればその仕様を元に詳細設計が始まる。
そして、その詳細設計をプログラマに渡しコーディングを任せるという流れだ。
--- 理想と現実 ---
が、この流れはあくまで理想論に過ぎない。
実際に開発をしてみれば、コーディングをする段階になって
基本設計の不備が見つかる事が多い。
そしてこれをどう解決するかと言えば、
開発側はその為に必要な仕様を修正し相手先に「仕様変更」の資料を渡す。
これにより新たな時間、人材、賃金が追加され開発工程は大幅に遅れてゆく…
--- 柔軟な対応力 ---
プログラム開発は、こういった流れ作業では絶対にうまくいかない。
これは僕自身常々思ってきた。
なぜなら、コーディングもしていないのに仕様の全てを決定してしまう事など
絶対に不可能だからだ。
コーディングをしていく上で、今まで考えていた仕様を
修正しなければならない事態は必ず発生する。
従来の開発スタイルでは、
コーディングに入ってから基本設計を変更する事はまず無い。
しかしそんな事では、効率的な開発が行えない。
強引に仕様に従ってコーディングしてしまうと、その後の保守や改良に影響をきたす。
結果的に、これはアプリケーションの質を低下させてしまうのだ。
--- 当たり前の概念 ---
アジャイルの概念の中で僕が最も気に入った点がある。
実際にシステムを構築しない限り、自分たちのシステムでも理解することは絶対にできない
これだ。この、僕としては当たり前の事実を認識している人間は驚くほど少ない。
なぜなら、今までのやり方では
設計をする人間はコーディングを全くしないからだ。
自分達(SE)が立派な仕様書を作れば、それで
素晴らしいシステムが完成するという考えが彼らにはあるのだろう。
だが、現実を見てみろよ。そんな事が実現された現場がかつて存在したか?
最終的にはプログラマに全てを押しつけてきたSEの罪は果てしなく大きいのだ。
--- 現実を直視せよ ---
アジャイルのアプローチは極めて現実的だ。
仕様を初めから決定するような事はせず、まずはプログラムを「ちょっと作ってみる」。
これが大事なんだ。その「ちょっと作る」を繰り返すだけで、
大規模なシステムを完成させる事ができるのだから。
ここの現場では、およそ2週間の周期でプログラムの「部品」を完成させ
それを検証するという作業を繰り返すルールになっているらしい。
以前紹介したXPに似ているが、こちらの方がより現実的なアプローチだと僕は思うね。
--- 結果は… ---
さて、今日の面接の結果は明日か明後日にでも報告できそうです。
面接自体はかなり好感触だったから、あとは入るべき枠が余ってるかどうかだね。
どうなりますか…
--- 大雨 ---
面接をしているあたりから段々雨足が強くなってきたと思ってたら
帰る頃にはどしゃ降りだった。参ったね。
まだ梅雨入りもしてないのに最近は雨ばっかり。
明日も雨だったら休んじゃうぞ(笑)、ホントに。