こんにちは!
私は業務系SEで3年働いた後、WEB系に転職して、半年くらい経ちました。
業務系時代はウォーターフォール開発に携わることが多くて、アジャイル開発の考え方にはまだ慣れておらず、この記事を書くに至りました。
本記事ではWEBサービスを含めたアジャイル開発に強いと言われる「インクリメンタル型開発」について、書いていきます。
本記事の対象:プログラミング初心者
インクリメンタルって何?
インクリメンタル(incremental)を辞書で調べたところ
「ますます増加する」「徐々に増加する」などの意味があるようです。
「少しずつ増えていく」というイメージで良いのかなと思います。
インクリメンタル開発とは?
初めに最も単純で、動作する骨組みを作成します。
そして、骨組みが決まったら、少しずつ肉付けをして完成形に近づけていきます。
一気に完成させようとするのではなく、最低限の機能から作成していくようなイメージです。
言葉だけで説明するのは難しいので、以下に具体例を示したいと思います。
インクリメンタル開発の概念を掴むための具体例
こんなプログラムを作りたいとします。
ユーザーが商品の税抜き価格を入力すると、税込み価格を表示(アラート)する
※JavaScriptで実装
例なので、細かすぎるくらい分けて書いていきます。
あくまでイメージとして、捉えてください。
ステップ1 まずは税込み価格を表示するロジックを記述する
alert(`330円`);
最初から動的に表示させようとせず、シンプルに固定値で表示させます。
ステップ2 次に税込み価格を変数に置き換えてみる
let taxIncludedPrice = 330;
alert(`${taxIncludedPrice}円`); //330円
まずはalertの税込み価格を変数に置き換えました。
ステップ3 税込み価格を算出するロジックを追加
let taxExcludedPrice = 300;
let taxIncludedPrice;
let tax = 1.10;
taxIncludedPrice = taxExcludedPrice * tax;
alert(`${taxIncludedPrice}円`); //330円
税抜き価格と税率から税込み価格を算出できるように変更しました。
ステップ4 税抜き価格をユーザーの入力した値に変更する
let taxExcludedPrice = prompt('商品の税抜き価格を入力してください', 0);
let taxIncludedPrice;
let tax = 1.10;
taxIncludedPrice = taxExcludedPrice * tax;
alert(`${taxIncludedPrice}円`); //n円 nはユーザーの入力値
ユーザーが入力した値から税込み価格を算出し、表示するようになりました。
ステップ5 入力値のバリデーション処理を追加する
今のままだと、ユーザーが数値以外を入力した場合、「NaN円」とおかしな値が表示されてしまいます。
エラー時の処理を記述していきます。
let taxExcludedPrice = prompt('商品の税抜き価格を入力してください', 0);
let taxIncludedPrice;
let tax = 1.10;
if (isNaN(taxExcludedPrice)) {
alert('エラー:数値を入力してください'); //入力値が数値以外の時
} else {
taxIncludedPrice = taxExcludedPrice * tax;
alert(`${taxIncludedPrice}円`); //n円 nはユーザーの入力値
}
条件文を追加して、数値以外の場合はエラーメッセージが表示されるように変更しました。
このように最初は単純な処理を記述し、少しずつ肉付けをしていくイメージです。
※実務ではもっと大きな単位で切り分けて、コーディングしていくと思います。
まとめ
インクリメンタル開発のイメージはなんとなく掴めたでしょうか?
名前は聞いたことないけど、既に実践している方もいらっしゃると思います。
実務ではもっともっと複雑になると思いますが、なるべくシンプルに考えていけるようにしたいですね。