コラム

  • 技術コラム
  • ローコード開発×アジャイル開発 業務プロセスの効率化だけでなく組織を変える力も持つ

    • ローコード開発

    アジャイル開発とは?

    ウォーターフォール開発 vs. アジャイル開発

    ローコード開発のメリットや特徴を知るうえで、切っても切れない関係にあるのがアジャイル開発です。
    アジャイル開発とは、ソフトウェア開発におけるプロジェクト管理手法の一つで、「計画→設計→実装→テスト」の開発プロセスを「反復増加型」で進めることで、速いスピードで運用を実現することができます。

    この説明ではまだピンと来ないと思います。そこでもう一つの開発手法であるウォーターフォール開発と比べると、アジャイル開発の特徴がよくわかります。

    以下の図1のように、ウォーターフォール開発はすべての機能をもれなく「設計→実装→テスト」とそれぞれのフェーズを順番に進めていきます。すべての設計フェーズが終わってからすべての実装フェーズへと移り、すべてのテストを行います。

    まるで「滝」のように上から下へとフェーズを進行させていきます。今なおこの開発手法を選ぶプロジェクトは多く、プロジェクトの進行を段階的に把握しやすく、品質も段階的に確認できるメリットがあります。

    しかし、各フェーズで大量のドキュメントが発生し、各フェーズの終了を待つため時間も費用もかかります。それぞれのフェーズ担当者が異なるため、「設計→実装→テスト」の工程は、このドキュメントによりバトンタッチされ進められるからです。
    また途中から後戻りすることは基本的にできません。担当者の異なる全ての設計、ブログラムを見直す必要があるからです。

    つまり要件の変更に柔軟に対応しづらい面があります。これらのドキュメントに基づいて、プロジェクトのすべての進行を把握し、スケジュールおよび予算や人員管理をすることは、まさに神の業といえるでしょう。

    図1 ウォーターフォール開発とアジャイル開発の違い

    一方でアジャイル開発は、まずプロジェクト全体を小さな単位に分けます。その中でまず一番に開発したい機能において、「計画→実装→テスト」のフェーズを、一般的に1週間~4週間のサイクル(イテレーション)で繰り返していきます。
    1回のイテレーションごとに機能を追加していき、徐々にシステム全体を完成させていきます。

    また、各フェーズの担当者は同じメンバーで進めていきます。これらの繰り返しのなかで、当初予定していた機能(小さな単位)の開発順序を入れかえることはよくあります。プロジェクトが進むにつれ、当初想定していなかった「気づき」が生じるためです。
    同様に想定していなかった新たな機能を追加することや、計画に入っていた機能を削ることも多々あります。

    システム開発に限った話ではなく、どのような計画も進行の途中で「最初に抽出した課題以外に大きな課題が見つかった」「欲しいと思っていた機能を最初に伝え忘れた」など、不確実性はつきものです。

    ウォーターフォール開発では、この後戻りの作業に大変な労力を必要としますが、アジャイル開発ではこのような後出しのニーズをうまく拾いながら、サイクルを繰り返して適切なシステムやアプリケーションを構築していきます。

    開発の途中で、実際のユーザーや社員もアプリケーションを操作し、そのフィードバックを開発に反映できるため、顧客満足度の高いシステムやアプリケーションを開発しやすいメリットもアジャイル開発にはあります。

    アジャイルでは、一つ一つのイテレーション(スクラムでは、スプリント)を繰り返しながら、同じチームメンバーで螺旋階段を一歩一歩登るようにゴールを目指します。

    ローコード開発×アジャイル開発のメリット

    ローコード開発とアジャイル開発のシナジー効果

    ローコード開発とアジャイル開発を組み合わせることで、開発スピードのアップ、柔軟性向上、品質向上など様々な効果があります。

    実際に株式会社フォリウムでは、設計、コーディング、デプロイを1つのシステムで行えるローコード開発プラットフォームであるOutSystemsを用いたローコード開発と、アジャイル手法とを組み合わせた開発を行っています。

    【参考ページ】:foliumのローコード開発×アジャイル開発

    ローコード開発と、反復増加型のアジャイル開発を組み合わせることで、以下のようなシナジー効果が生まれます。

    【シナジー効果1】開発サイクルの短縮
    ローコード開発はあらかじめプラットフォームに搭載されているコンポーネントを使って機能を構築します。そこにアジャイル開発の反復的な小サイクルでの開発を組み合わせることで、開発サイクル・開発期間を大幅に軽減できます。開発にかかる費用も大きく減らすことができます。

    【シナジー効果2】迅速なフィードバック
    ローコード開発はコーディング作業が限定的なためプロトタイプをスピーディーに構築できます。そしてアジャイル開発の反復的な開発サイクルでは、フィードバックを反映しながら開発を進めていくことができます。実際のアプリケーションの動作をユーザーが確認しながらゴールを目指すことで、齟齬のないアプリケーション開発が可能です。

    【シナジー効果3】それぞれの業務部門における生産性向上
    ローコード開発もアジャイル開発も、実際にアプリケーションを操作することになるユーザーの声を聞きながら開発していきます。
    プログラミング知識のない非IT部署の人材も、欲しい機能や課題などの意見を発言しやすく、IT部門もその他業務部門も、等しく高い満足度のもとで新しいアプリケーションを使うことになります。結果的にそれぞれの業務部門・チームの生産性向上にも役立ちます。

    【シナジー効果4】変化や修正への迅速な対応
    ローコード開発もアジャイル開発も、要件の変更や市場ニーズの変化などに対応しやすい特長を持っています。ウォーターフォール開発の場合は、新しい機能追加に時間がかかる場合がありますが、アジャイル開発では現場の意見に柔軟に対応しながらアプリケーションを開発していきます。

    ビジネスにおけるニーズの変化は年々加速しており、あらかじめ変更への対応を想定したアジャイル開発であれば、実際に役に立つシステムやアプリケーションを構築しやすいメリットがあります。

    アジャイル開発 導入のステップ

    ローコード開発プラットフォーム×アジャイル開発フレームワークの組み合わせは、組織ごとに答えがある

    「組織やプロジェクトを小規模な単位に分け、機能ごとに、こまわりの利く開発を行う」がアジャイル開発のうま味ですが、実際にどのようなステップで開発していくのかをご紹介します。

    【ステップ1】現状分析と目標設定
    まずは何が課題なのか、何をどう解決したいのかを分析し、目標・ゴールを設定します。このステップで決めることは他にもあり、イテレーション(開発サイクル)の長さや、ベロシティ(チームが作業を進める速度)も決めます。イテレーションは約1週間~4週間を目安にするのが一般的で、ベロシティもこのイテレーションの目安を参考にして決めます。

    【ステップ2】プラットフォームとフレームワークの選定
    ローコード開発とアジャイル手法を組み合わせる場合、まずローコードプラットフォームを選定します。大企業向け、中小企業向け、大規模システム向け、シンプルなアプリケーション向けなど自社のニーズに沿ったプラットフォームを選びます。

    また、アジャイル開発にはいくつかのフレームワークがあります。

    • スクラム手法
      「計画、設計、開発、テスト」のフェーズを機能単位で行います。短期間の反復的な開発サイクルで、アジャイル開発の代表的なフレームワークの一つです。
    • カンバン手法
      アジャイル開発は同時にマルチで進めていくため、混乱する場合があります。そこで開発作業の可視化を優先し、同時に行う開発作業に上限を設定し、カンバンボードと呼ばれる管理ツールで作業の進行具合を視覚的に情報共有しながら進めていくフレームワークです。
    • エクストリーム・プログラミング手法
      スクラム手法はラグビーのスクラムと同じように、チームで一緒になって開発を進める形式です。一方で、顧客の意見をよく聞き、なるべく関係者間のコミュニケーションを重視して、顧客満足度の高いアプリケーションを開発するためのフレームワークがエクストリーム・プログラミングです。

    企業の規模、社内のリソース、時間、コスト、要件などによって、ローコード開発プラットフォームとアジャイル開発の手法の組み合わせは、無尽にあると言って過言ではありません。100の組織があれば、100通りの組み合わせがあり、システム開発会社との綿密な打ち合わせが必須です。

    【ステップ3】チーム編成とトレーニング
    スクラム手法を例にすると、10名以下のメンバーでチームを結成します。その中でプロダクトオーナー1名、スクラムマスター1名、その他開発メンバーの役割を決めます。

    プロダクトオーナーは責任者であり、ゴールがぶれることのないようにユーザーのニーズを、同じチームのメンバーに伝えていきます。
    スクラムマスターはプロセスの進行を支援する役割で、チームが作業に集中できる環境も整えます。それ以外の開発メンバーは設計、開発、テスト、リリースの実作業を行います。

    この中で、トレーニングを行うのはスクラムマスターの役割になります。トレーニングといっても、この場合は専門的な知識の鍛錬よりも、デイリースクラムと呼ばれるミーティングをイメージするとよいでしょう。チーム内で障害になっている問題はないか、今日はどこまで進められそうかなど、情報を共有し、メンバー同士が力を合わせやすい環境を整えます。

    【ステップ4】プロジェクトの開始と管理
    アジャイル開発では、リリース計画をプロジェクト全体ではなく、スプリント単位(イテレーション)で出します。スプリントの後半にアプリケーションや追加機能などのデモンストレーションを実施し、フィードバックを得ます。そこでまた改善点を加える場合と、テスト後にOKが出て本番環境に移し、稼働させながらまた改善点をシステムに追加していくパターンがあります。

    このように、継続的な改善を行いながら品質の高いアプリケーション、システムを生み出していきます。

    ローコード開発×アジャイル開発の注意点

    ローコード開発×アジャイル開発は組織を一新する起爆剤にもなる?

    迅速な開発と柔軟な対応が可能なローコード開発×アジャイル開発の組み合わせですが、留意しておくべき点はあります。

    ①技術的な制約
    ローコード開発プラットフォームには、カスタマイズの範囲に制約があります。アジャイル開発は要件の変化に対応しやすいメリットがありますが、プラットフォーム側の技術的な制約が壁となって、要件を満たせない場合があります。そのため事前にプラットフォームの比較検討をする必要があります。

    ②組織文化の変革
    アジャイル開発を導入する場合、今までの組織文化を良い意味で打ち破る必要が出てきます。日本の企業や組織の多くは、これまでウォーターフォール開発で、上長の承認を得てから次のフェーズに移るという手法が多かったです。

    しかしこの方法では要件の変更に対応できず、時間もかかり、システムやアプリケーションが完成した頃には、何かしらのギャップが発生するというリスクがありました。

    アジャイル開発を取り入れる場合、小さな単位であっても多くのリーダーが必要となります。アジャイル開発を取り入れることで、若手の中からリーダーを選び、自発的な改善ができる組織へと変革できる可能性もあります。

    ③コストと時間の管理
    複数のスプリント(あるいはチーム)を同時に動かすため、アジャイル開発は効率的な時間の確保が必要になります。またコストについては、ローコード開発プラットフォームにはサブスクリプション形式の料金体系としているものが多く、初期投資を抑えることができます。

    一方でアジャイル開発の場合は、スプリントを走らせている間にまた新たな要件への対応…という状況が繰り返される場合もあり、プロジェクトの完成時期が予定よりもズレる場合があります。そのためシステム開発会社となるべく多くのコミュニケーションを取ることで、このギャップを埋めていく必要があります。

    長期的なROIで見た場合、ローコード開発プラットフォームはメンテナンス費用の軽減、カスタマイズの柔軟性などメリットは大きいです。またアジャイル開発では継続的に改善していくため、システムの品質を落とさず運用していけると特長があります。

    初期費用および長期的な視点でも、ローコード開発プラットフォーム×アジャイル手法には、導入する組織側に大きなメリットがあるといえます。

    サービス資料

    青森県八戸市、山口県山口市にある拠点から ・ローコード開発事業 ・ビジネス拡張ソリューション事業(BPO) を提供し、クライアント企業さまの成長・課題解決に貢献しています。

    ダウンロードはこちら

    コラム一覧に戻る

    関連コラム RELATED CASE

    コラム一覧を見る

    関連コラム RELATED CASE

    コラム一覧を見る

    資料ダウンロード

    フォリウムのサービスやローコード開発に役立つ情報をまとめた資料を無料でダウンロードいただけます。

    資料ダウンロード

    お問い合わせ

    ローコード開発に関するお悩みや、サービスに関することなど、どんなことでもお気軽にご相談ください。

    お問い合わせ