インフラやデータ移行の自動化~アジャイル開発の最後の問題
牛尾さんが書いた記事を@ryuzeeさんが絶賛されていたのでメモ。
【元ネタ】
アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記
Twitter / @ryuzee: これは素晴らしい記事だ / アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記 .
XPが提唱したテストの自動化、ビルド作業の自動化によって、開発工程は確実にスピードも品質も上がる。
しかし、受入テスト環境へのデプロイ作業(リリース作業)でいつも手間取る。
本番環境は開発環境とは違って、環境そのものも違うし、データも違うから、モジュールの配置以外の作業が大変なのだ。
「アジャイル開発は開発環境ではとても有効だが本番環境ではその恩恵があまりない」という指摘は「ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション」において「ラストマイル問題」として既にあげられている。
※拙著「Redmineによるタスクマネジメント実践技法」の290ページにも、「ラストマイル問題」について触れています。
プロジェクト管理やテスト工程をクラウド化する: プログラマの思索
Agile開発が指摘したソフトウェア開発の特徴: プログラマの思索
牛尾さんの記事によれば、AmazonEC2でクラウド化するだけでなく、Rubyライブラリveewee、Vagrantを使って仮想環境の立上げ・設定・テストを自動化ができるらしい。
つまり、本番環境と同等な環境を仮想マシンで複製しておき、それを立ち上げるようにすればいいのだろう。
また、本番環境で稼働させる時には必ずデータ移行が発生し、そのために移行ツールを別途作ったり、移行元データをクリーニングする面倒な作業が発生する。
「データベース・リファクタリング」では、データ移行期間を用意して、データ移行するためのノウハウをリファクタリング作業のパターンとして提唱している。
リリース作業の問題のレベルをソフトウェアで解決できるレベルに変換すれば、それはAgile開発が得意とする所だ。
テストやビルドの自動化だけでなく、デプロイやデータ移行の自動化も今後のアジャイル開発の課題になるだろう。
| 固定リンク
「ソフトウェア工学」カテゴリの記事
- なぜInfrastructure as Codeが必要なのか?(2021.04.18)
- Excel駆動でWBSやガントチャートが作れない人はどこに原因があるのか? #redmine(2021.04.18)
- テスト駆動開発が抱える問題は可読性と保守性のトレードオフ #dxd2021 #streamA(2021.04.10)
- プロジェクト管理手法はプロジェクト型開発からプロダクト型開発へ変えるべきだ(2021.04.01)
- ソフトウェア開発は打ち合わせ駆動開発だ(2021.03.30)
「Agile」カテゴリの記事
- Excel駆動でWBSやガントチャートが作れない人はどこに原因があるのか? #redmine(2021.04.18)
- テスト駆動開発が抱える問題は可読性と保守性のトレードオフ #dxd2021 #streamA(2021.04.10)
- 沢渡さんの資料「テレワークに役立つ8つのスキル」はいいね(2021.04.04)
- 要件定義プロセスはDXで終焉するのか(2021.04.01)
- プロジェクト管理手法はプロジェクト型開発からプロダクト型開発へ変えるべきだ(2021.04.01)
コメント