途中で軌道修正ができないウォーターフォール型は、スピードが重視されるDXの領域には合わなくなっています。
この10年間、システムはものすごいスピードで進化しています。そのシステム開発の潮流の中で特に注目しているのが、アジャイル開発です。
古いシステムの開発手法はウォーターフォール型ですから、事前に細かい要件定義が必要です。
わずか数年後には当初の想定と業務内容が違ってしまうことがあります。
チームワークで「どんどんつくっては失敗&改善していく開発」は日本人が得意な手法なので、アジャイル開発は長所が生かせると思います。
目次
アジャイル開発を支えるアーキテクチャ設計「マイクロサービス」
社会の急激な変化と開発期間の単位が短くなるニーズから、昨今注目されているソフトウェアのアーキテクチャが「マイクロサービス」です。
「マイクロサービス」は、海外ではAmazonなどeCommerce企業や、NetFlixなど新興オンライン企業で多く採用されており、日本でもLINEやクックパッドなどの人気サービスを提供している企業がすでに取り入れています。
細かいユニットに分けてくっつけてまた外せる「マイクロサービス」のような、疎に結合された集合体として構成しサービス化する並列開発手法も日本人向きだと思います。
これがモノリシック・アーキテクチャで構築された密結合になると、1個失敗したり、あるいは1個追加しようとすると、全部やり直しになってしまいます。
新しいサービスを追加しようとすると、情報システム部門から「サービスの追加には、1年ぐらいかかります」と言われる場合もありますが、マイクロサービスではそういったことはなくなります。
マイクロサービスのメリット
Merit 1. 局所化による効率的な利用
マイクロサービスは、1プロセスにつき1サービスを稼働させます。
そのため、どこかで問題が起こった時にも障害の起こっている箇所を特定しやすいというメリットがあります。
サービス同士がそれぞれ独立しているマイクロサービスは、1つのサービスごとに障害の有無や影響をチェックできるので回復が容易であり、かつ連鎖反応を起こすリスクが少ないといえます。
Merit 2. リソースの有効活用
マイクロサービスは、1プロセスずつ必要な部分だけを構築していく仕組みなので、リソースを最大限有効に使うことができます。また、不要な部分までカバーすることがないので、無駄のない計画を立てることができます。
Merit 3. 新技術などの採用が容易
システム全体をある程度統一された技術で構築する必要のあるモノリシック・アーキテクチャとは違って、マイクロサービスはそれぞれのプロセスに特化した新技術を採用することができます。
実現したいサービスに合わせて個々に最適な技術を用いることによって、スピーディかつ時代に即した構築が可能になります。
Merit 4. 個々の変更への対応が容易
マイクロサービスであれば、システム全体を変更することなく、パーツ単位で改変していくことが可能です。
「新規で機能を追加する」「軽微な変更を高頻度でおこなう」「システムの改変を更改する」といったことをスピーディかつ軽負担でおこなうことができます。
しかしながら個々に最適な設計を実現するのは、いうまでもなく高いスキルレベルを要求されます。
また、システムを実際に設計するスキルだけでなく、各サービスを適切な単位に分割する能力が必要になるため、実装の難易度はかなり高いといってよいでしょう。
アジャイル開発は計画段階で厳密な仕様を決めていないため、方向性がブレやすいというデメリットがあります。
さらに良くしようと改善を繰り返し、テストやフィードバックで変更・追加を加えていくことで、当初の計画からズレてしまうことがあります。
ウォーターフォール開発の場合は、最初に指標となる機能設計と併せて、開発スケジュールを設定するので、現状の進捗度を把握することが可能です。
しかし、アジャイル開発では計画を詳細に立案しないため、スケジュールや進捗具合が把握しにくくコントロールが難しくなります。
そのためにはプロジェクトマネージャーとスクラムマスターが、常にメンバーとのコミュニケーションを重視し、自立的に動けるチーム作りが肝要です。
お気軽にヒューマンデジタルコンサルタンツへお問い合わせください!
関連記事:システム開発の工程の流れ(ウォーターフォールモデル)
関連記事:リーン・スタートアップとアジャイル開発で、新規ビジネス創出を加速させよう!