機能先行、非機能あとまわしでアジリティを出す方法

アジャイル開発のひとつのアプローチとして、機能要件を優先し、非機能要件は後回しにする方法があります。まずは必要な機能を実装し、その後磨きをかけていく方法です。

特にパッケージ開発において、機能優先がよい結果を生むことが多いです。なぜなら、前提としてパッケージは標準的な機能を満たしているからです。そして、数あるパッケージの中で選んだパッケージは、会社の業務フローに合致している確率が高いはずです。

よくある話しは、一旦パッケージ選定した後、業務メンバーにヒアリングした結果、カスタマイズ項目が大量にでてきて、プロジェクトが難航するケースです。現状のフローは会社固有のフローですので、現行フローを基準にするとフルカスタマイズになってしまいます。パッケージをフルカスタマイズすると割高になりますから、いっそのことスクラッチ開発にした方がよいという笑えない話しがでてきます。

ですから、現行フローを基準にするのではなく、業界スタンダードであるパッケージを活用するスタンスが必要です。多少の学習コストは発生しますが、今あるフローも学習して体得したものです。

まずはストレートにパッケージを導入し、どうしてもまずい部分を改修していきます。実際につかってみるとパッケージの方がいい部分もあります。パーツパーツで見ると現行プロセスがよいかもしれませんが、パッケージは前後関係も考えられていますので、一気通貫で使ってみるとよく練られていることに気づきます。

まずは最小限必要な機能セットを導入し、被せて操作性に磨きをかけていきます。

作られていないモノは全て予測に過ぎません。実際に使ってみて知識になります。機能を理解した上で、操作性などの非機能要件を検討します。予測を前提に、非機能要件を被せて予想するのはムダになります。

このアプローチを採用する場合、注意点がひとつあります。それは、非機能要件が変更する可能性があることを開発メンバーに認識しておいてもらうことです。将来的な変更を踏まえて、アーキテクチャーを組み立てもらうことが必要です。