イテレーションについて考える
最近うちの上司がイテレーションをなくしたいということを言っているので、
なくすことによってどんなメリットがあるのか、
そもそもなんでイテレーションが存在するのかについて考えてみることにする。
イテレーション
うちは2週間でイテレーションを区切っている。BtoBtoC。
最初に計画を立てて、物を作り、最終テストをしてリリースする。という流れ。
イテレーションとはつまり期限を決めることか?
違う、イテレーション=反復という意味らしい。
イテレーションがあることによるメリット
顧客と開発者、両方の目線で考えて見る。
顧客からの視点
ある程度、いつまでにできるかわかる
これはどうだ?そもそも、今のうちのやり方がおかしいからこういう発想になるのではないか?計画、レビューのみ参加するってことができる
がっつり入り込めない忙しい人には嬉しいのかもしれない。
でもこれもちがう、ダメだと思う。
開発者の視点から
開発リズムができる
計画を全員で立てればなんとなく全体の状況が把握できる。終わったーっていう達成感とか。
あとは、この日までにここまでやらなきゃいけないという気持ちにさせてくれる。進捗を管理できる
もう完全に何のためだかわからなくなってきた。
イテレーションがないことによるメリット
顧客からの視点
- できたものがすぐに提供できる
イテレーションで区切ると最後のタイミングで一斉にリリースってなるけど、それがなくなる感じ。
開発者の視点から
期限に間に合わせようと品質を犠牲にしなくなる
やはりなんとか間に合わせようとしてしまうことはある。物を作る、以外の付加価値作業ができる ここまでにこれ終わらせなきゃ、ってならないと
なんかこの作業いつもめんどくさいから自動化するかって発想になりそう。
自分が作ったものの使われ方とか気になって、ログ解析とかしそう。
いや、ちゃんと顧客にその価値を伝えてやらせて貰えばいいんだけど、進捗を管理しなくていい
ちょっと言い過ぎかもしれないけど。
でもさぼるやつでそう。俺みたいな。
現状を踏まえての結論
今のままではイテレーションをなくすことはできないんだと思う。
「相手にこの機能をここまでに出します」って約束しちゃってるから、
そうするとイテレーションなりなんなりで進捗の管理をせざるを得ない。
でも、イテレーションがある意味があまりない、かな。
「不完全」な状態でも一旦見せて、フィードバックを受けて成長させるということができていないから。
最初から特定の機能をどーんと作って、それで終わり。というものが多い。
ちょこっとはフィードバック受けているだろうけども、なんか違う気がする。
ただ2週間ごとにやることを決めているだけな感、それじゃそんなに意味なくない?
ぬあああああ、結論、「進捗管理」のためのイテレーションになっているのでなくすことはできない思います。
なくすためにはお客さん、さらにはその先の先まで思想の共有をして納得してもらって
もっと透明性のある情報共有を行なっていく必要がある。
とは言ってみたが
個人的になくすことは賛成。
進捗管理なんて、エンドユーザからしたら何の意味もない。
大型リリースとかならともかく、細かい改善やバグフィックスは許可なんて得ないでどんどん出していけばいい。
もっと意味のあることに時間を費やすべき。
自由にやらせた方がいいものができるんじゃない?(→これは妄想かもしれぬ)
そのためにいろんな仕組みが必要になると思うけど、自分がこっちのほうがいいと思った以上それに向けて頑張る。