BT

必要最小限のアーキテクチャとは

| 作者: Savita Pahuja フォローする 3 人のフォロワー , 翻訳者 吉田 英人 フォローする 0 人のフォロワー 投稿日 2014年11月30日. 推定読書時間: 3 分 |

原文(投稿日:2014/11/08)へのリンク

アジャイルとは,必要最小限の要件と,必要最小限のアーキテクチャとのバランスである。対照的にウォーターフォール開発では,すべての要件を紙面に書き出した上で,それらの仕様に対してソフトウェアを構築する。これは長いプロセスである上に,実際のユーザからのフィードバックを欠いた製品が完成することも珍しくない。実行可能な最小限の製品を,最小限のアーキテクチャを使って開発することが必要なのは,そのためだ。

Kavis Technology社のブログにあるように,実行可能な最小限の製品を開発する上で課題となるのは,そのための適当なアーキテクチャが存在しないことだ。

私はまた,ひたすらアーキテクチャに注力する一連のスプリント(私たちは配管/plumbingと呼んでいます)へと進むチームを,いくつも見てきました。このアプローチでは行き過ぎとなり,エンドユーザに何の成果も見せられないまま,設計と開発に何ヶ月も費やすことがあります。これはアジャイルの目的に反しています。私たちに必要なのは,市場投入のスピードとアーキテクチャのバランスです。MVA(Minimum Viable Architecture/実行可能な最小限のアーキテクチャ)が必要なのです。

Kavis Technology社のブログの筆者は,アーキテクトが最小限のアーキテクチャを作る作業を支援する目的で,プロダクトオーナにいくつかの質問をするように推奨する。

  • 最初のローンチ時点でシステムを利用するユーザの数は?当初6ヶ月は?年内では?
  • ローンチ時のユーザは内部ユーザか外部ユーザか,その両方か?
  • ローンチ時点で想定されるトランザクションは,1秒あたり何件か?当初6ヶ月は?年内では?
  • ローンチ時点のプロダクトに期待されているのはアルファ版か,ベータ版か,あるいは製品準備版か?
  • ローンチ時のシステムには,何人のユーザが追加される予定か?
  • ローンチ時には,どのレベルのセキュリティと監査機能が要求されているのか?6ヶ月以内は?年内では?

Randy Shoup ConsultingのコンサルティングCTOであるRandy Shoup氏は,先日のプレゼンテーションで,実行可能な最小限のアーキテクチャについて説明した。氏はスタートアップする製品のアーキテクチャについて,製品調査,開発実施,スケーリングの各段階の面から説明する。

調査フェーズの間は"プロトタイプ"アーキテクチャを使用するべきだ,と氏は言う。可能な限り迅速かつ安価に,スペースを探ることが,ここでの作業の目標だ。実施フェーズでは"必要十分(Just Enough)"アーキテクチャを使用するとよい。この段階で目指すのは,ユーザの目標を最低限で満たすことだ。ここではモノシリックなアーキテクチャと,最小限のインフラストラクチャの利用が許可されている。"必要十分"アーキテクチャを使用することの利点は,次のとおりだ。

  • 最初はシンプルに
  • インプロセスのレイテンシ
  • 単一のコードおよびデプロイユニット
  • 最小限で効率的なリソース

必要最小限のアーキテクチャを使用している間は,モジュール性や詳細なログ,継続的デリバリなどを心がけるべきだ,と氏は言う。さらに,Thoughtworksのコンサルタントで著作者のMartin Fowler氏が提唱する犠牲的アーキテクチャ(Sacrificial Architecture)を引き合いに出しながら,必要十分なアーキテクチャのコンテキストにおいて,次のように述べている。

今書くことのできる最善のコードは,数年の後には破棄されることになるのです。

実施フェーズの後には,スタートアップのスケーリングフェーズが来る。このステージでチームが使うのは"次世代(Next-Gen)"アーキテクチャだ。目標は,急速に成長するビジネスの前を行くことにある。これにはチームのスケーリング,アーキテクチャのスケーリング,同時実効性と効率性への配慮などが含まれる。

完璧なシステムの構築が正しいアプローチであることはほとんどない。過剰設計のアーキテクチャを構築しようとしてはいけない。氏は言う。

当初の技術的判断を後悔することがないのであれば,おそらくそれは過剰設計です ... アーキテクチャの再設計は成功のサインです。その必要がないのならば,過剰開発だったのか,そもそも不要な開発だったのか,いずれかです。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT