redmineの文化を考える
= 進捗率を考える =
はい、きょうもちょっとだけRedmineの文化につて触れます。
ともあれ、チケットの進捗率というのは付ける方が難しいモノである。
なんとなくで付けて?なんで進まないの?完了してよ
正直めんどくさい系になる。
結局のところ、進捗率90%シンドロームに陥るのがおちである。
終わらせたらめんどくさい。できてないって言われたらどうしよう。なんだか解らないけれど終わったらダメな気がする
はい、そんなモノはRedmine文化を創ればOKな訳である。
90%の壁を考えると、私の文化では、自分の結合試験が終わらないと言うステータスとなる。
だったら、試験を見直すか、ソフトウェアの開発に問題があると判断できる。
そんな文化を簡単な図式にまとめてみた
あ、図に書いてないけれども、再試験を実施してプログラムの開発完了の状態が90%である。
再試験実施のループをなんど回ろうとも、90%である。
つまり、90%で進捗を申請してきたなら、毎日試験を実施して、修正している状態と判断する!
10% 〜 80%までが実際に新規でのコーディングになるので、この進捗遅れは設計がミスっているか、技術的なつまずきとなるのでフォローが必要となる。
正直、これがベスト!とは言えないけれども指針にはなるとは思う… 思いたい。
だったら、窓を閉じるだけのWebアプリならどうするんですかぁー
とか鼻をいぢりながら言われるとどうするかって?
未完了 | — | チケット発券 |
進行中 | 0% | 作業に取りかかる |
進行中 | 10% | 「window.close() をJavascriptで書けばOK」 |
進行中 | 20% | 「実際にはjsファイルをはき出しているのでjsファイルを書く」 |
進行中 | 30% | 「jqueryなのでidを振る」 |
進行中 | 40% | 「コード window.close()を書く」 |
進行中 | 50% | 単体試験:「閉じるのを確認する」 |
進行中 | 80% | 結合試験:「呼び出し元画面を表示して、ウィンドを開いて閉じるのを確認する」 |
完了 | 100% | 「動作を確認する」 |
まじめな人なら50%から80%に飛ぶのはおかしいんじゃないの?と思うかもしれない。
そんなの関係ないw
50から80へ飛ばしてください。試験に合格しているのです。万事OKですよ。
(正直このタイミングが結合試験・単体試験というのかは不明ですがw)
師匠の Unit > Service > UI の試験、から考えるとUIとServiceの違いなわけである。
( TestPyramid (Martin Fowler 1 May 2012))
日本語ならUIが単体?結合?Serviceが統合?と表現がかなり難しい… Unitテストはメソッドテスト +アルファと私は考えますけれども
ともあれ、私は一つの指針を示しました。実際のプロジェクトリーダーの人はこれを参考にプロジェクトのルールを決めて運用をしてください。
開発者ってのは開発中にチケットを相手にしている時間はないので、作業の開始に進捗中にしてくださいって言うだけではNGですって事です。
方針が決まれば10%にしてね。
全体的な流れを確認する前に80%にしてね。
それがOKなら 100% だめなら90%にしてね。
数値はそれぞれが決めれば良いですけれども、10%刻みという微妙に粗い運用を求められているredmineではそれほどのステータスを細かく指定はできません。
できたとしても開発者がそんなにマメに入れることはないです。
全件、全ルールを開発者側に求めているので、90%シンドロームなんて発生するわけですわな。
チケット駆動開発ってのはそんなところで手間取るようなら開発の邪魔になりますよ。
次回は… 開発者側のチケット駆動開発の話でも書こうかな。
試験を頭からする人ってのが出てくるとこの開発って向かないので考え方を考えようと言う話だね。(これで全部かも)