インフラやデータ移行の自動化~アジャイル開発の最後の問題
牛尾さんが書いた記事を@ryuzeeさんが絶賛されていたのでメモ。
【元ネタ】
アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記
Twitter / @ryuzee: これは素晴らしい記事だ / アジャイルなインフラのつくり方とデータマネジメント - メソッド屋の日記 .
XPが提唱したテストの自動化、ビルド作業の自動化によって、開発工程は確実にスピードも品質も上がる。
しかし、受入テスト環境へのデプロイ作業(リリース作業)でいつも手間取る。
本番環境は開発環境とは違って、環境そのものも違うし、データも違うから、モジュールの配置以外の作業が大変なのだ。
「アジャイル開発は開発環境ではとても有効だが本番環境ではその恩恵があまりない」という指摘は「ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション」において「ラストマイル問題」として既にあげられている。
※拙著「Redmineによるタスクマネジメント実践技法」の290ページにも、「ラストマイル問題」について触れています。
プロジェクト管理やテスト工程をクラウド化する: プログラマの思索
Agile開発が指摘したソフトウェア開発の特徴: プログラマの思索
牛尾さんの記事によれば、AmazonEC2でクラウド化するだけでなく、Rubyライブラリveewee、Vagrantを使って仮想環境の立上げ・設定・テストを自動化ができるらしい。
つまり、本番環境と同等な環境を仮想マシンで複製しておき、それを立ち上げるようにすればいいのだろう。
また、本番環境で稼働させる時には必ずデータ移行が発生し、そのために移行ツールを別途作ったり、移行元データをクリーニングする面倒な作業が発生する。
「データベース・リファクタリング」では、データ移行期間を用意して、データ移行するためのノウハウをリファクタリング作業のパターンとして提唱している。
リリース作業の問題のレベルをソフトウェアで解決できるレベルに変換すれば、それはAgile開発が得意とする所だ。
テストやビルドの自動化だけでなく、デプロイやデータ移行の自動化も今後のアジャイル開発の課題になるだろう。
| 固定リンク
「ソフトウェア工学」カテゴリの記事
- 因果ループ図を再考する~問題の症状をシステム構造として捉えて解決策を見つける(2020.12.25)
- 第73回 SEA関西プロセス分科会「モデルベースシステムズエンジニアリングの活用」の感想~モデルの検証を形式手法で自動テスト化する(2020.12.13)
- 相殺フィードバックを再考(2020.06.17)
- SaaSのビジネスモデルがアジャイル開発を促進したという仮説(2020.06.14)
- なぜなぜ分析、FMEA、FTAの違い(2020.06.09)
「Agile」カテゴリの記事
- 文化は組織構造に従う(2021.01.19)
- 「ストーリーマッピングをはじめよう」本の感想~ストーリーによる企画や要件定義はSaaSと相性がいい(2021.01.17)
- 管理職に求められる能力はPM理論そのものではなかったのか(2021.01.14)
- yWriterは映画の脚本を作るためのアプリだったのではないか(2021.01.05)
- カンバンはステータス名が大事(2021.01.02)
コメント