目次
- 概要
- イテレーションフロー
- デイリーフロー
- 最後に
概要
- システム:メール管理システム
- 言語:PHP(CakePHP)
- メンバ:顧客5名+弊社4名
- 期間:6週間
- イテレーション:4回(2週, 1週, 2週, 1週)
- 参考:アジャイルサムライ 達人開発者への道
イテレーションフロー
- ストーリーカード作成
- ストーリー計画ミーティング
- 開発
- ショーケース
- ミニふりかえり
1.ストーリーカード作成
- 要件をもとに機能設計書を作成する。
- ExcelでA4 1-3枚程度に以下を記述した。
― 回顧 ―
- 簡素なため、メンテナンス性は良好。
- 設計書作成に時間をとられずに済んだ。
- 機能設計書はこのドキュメントのみだが、顧客とのコミュニケーションはこれでほぼ充分であった。
2.ストーリー計画ミーティング
- ストーリーカードを顧客とレビュし、仕様を確認、決定する。
― 回顧 ―
- 大方、意識ずれはなかったため、問題なく進んだ。
- 新しい要望が出ることもあり、やる、やらないの判断もした。
- 短い開発期間に対して、確認事項の回答が遅いことがあった。
3.開発
- ストーリーカードをもとに製造、テストを行う。
- テストはモデルクラスのみPHPUnitを使用し、他は目検。
- 以下のツールを使用。
- Eclipse juno
- subversion
- phpMyAdmin
- phpLDAPadmin
- TeraTerm(ssh)
- candycane
― 回顧 ―
- Eclipseを使用したが、コードアシストやリファクタリングがjavaのように動かず、さほど恩恵を受けなかった。PHPは型が曖昧なので候補が分からない?
- PHPUnitは他の改修の影響による修正が多く、負担を感じた。Fixtureで作ったデータの内容を思い返すのも苦しいし、LDAPにもデータを持っていたので、あまり効果的とは感じられなかった。
- 今回、0からのシステム構築であったため、立ち上がりにも時間を要し、フレームワークについても試行錯誤しながらの開発であったため、苦労した。
4.ショーケース
― 回顧 ―
- 品質が良かったため、和やかに進められた。
- ここでも新しい要望が出ることがあり、やる、やらないの判断をした。
- 顧客は初めて成果物を見る場なので、盛り上がっていて、その様子が伝わってくるのは、面白かった。
5.ミニふりかえり
- ショーケースの後、イテレーションのふりかえりを行う。
― 回顧 ―
1.デイリースタンドアップ
― 回顧 ―
- Skypeでの遠隔会議でお互いが見えなかったので、立たずに座っていた。
- 時間をかけずに行うことは意識し、5分~10分程度で終わらせていた。人数が多いと大変そう。
- 開始時間がルーズで待ち時間が多かった。時間は守りたい。
3.リファクタリング
- 当プロジェクトの取り決めで日々、少しリファクタリングを行う時間を設けた。
― 回顧 ―
- 開発に余裕がなかったので、それどころではなかった。
- 4人の開発者が一斉に0からの開発を行ったため、それぞれの個性溢れるプログラムが作られていて、それなりに対象となるポイントはあった。
- 期間中にすべては修正しきれていない。
最後に
- アジャイル開発ができるということで期待に胸躍らせて、いざ開発を始めたら、単なる期間が短い開発という感覚で、とにかく時間がなかった。
- 1週間のイテレーションだと、月曜日の半日はストーリー計画ミーティングで、金曜日がショーケースとなり、開発期間は実質3日半と、とにかく開発期間が短かかった。足りない時間は、残業、徹夜、休日出勤でカバーした。
- その中で仕様調整を平行して行っていたが、ウォーターフローの開発よりは意思決定は早く、そういうところはアジャイルだったのかなと思う。
- また、ドキュメントをそこそこに動くソフトウェアを重視したという点も、アジャイルだった。
- テストファーストをきちんとやりたかったな。バグは少なかったものの、自動テストが効果的にできなかった。
- あとは、段階的に機能を積み重ねていくので、全体を把握しておくことで、先を見据えた開発ができるであろう点は重要だと感じた。
- 小規模だからなんとかなった。大規模でこの手法は大変。
Made with Slides.com