ホトカミをつくるDO THE SAMURAIのブログ

みんなでつくる神社・お寺の投稿サイト「ホトカミ」を運営している、株式会社DO THE SAMURAIのブログです。

インクリメンタル開発、小さいことを積み重ねていく

ホトカミのエンジニアをしている小沼晋です。
今日は、hotokami.jpの開発に使用している開発手法の中から、「インクリメンタルな開発」について書きたいと思います。

*インクリメンタルとは
インクリメンタルはアルファベットでincreamentalと書きます。

日本語では「暫増的な」という意味です。
インクリメント(increament)の形容詞です。
このインクリメントという単語はプログラマーにとって、とてもなじみのある単語です。
数字を1つずつ増加させるプログラムを書くときに使用する記号にインクリメント演算子というものがあり、ループさせるプログラムなど様々な場面で多用するからです。

たとえば、変数iをインクリメントするプログラムはこんな感じに書きます。
「i++;」

*インクリメンタル開発とは
インクリメンタル開発は、プログラムを一度に設計してしまい、完成するまで同じ設計のまま開発していく手法とは逆に、最小限のプログラムから初めて、少しずつ設計し直して開発していきます。
この開発手法は、パッケージに入ったソフトウェアに比べて、インターネットで公開しているWebサービスの方が、相性がよいものです。
Webサービスの場合、ユーザにアップデートさせる必要がなく、ちょっとした変更が即座に反映させることができるからです。

ユーザからの要望やバグ報告などをもとに、開発者とユーザが一体となって理想のソフトウェアを目指すことができます。
ソフトウェア開発の経験がないであろうユーザにとって、ソフトウェアに必要なものが何かをソフトウェアの原型が全くないときには、想像しづらいものですが、ある程度の形が見えて、実際に触ることができるようになると、本当に必要なものがわかるようになります。
これを開発者が知ることによって、ソフトウェアの開発を間違った方向に向かわせずにすみます。
またソフトウェアの開発は長期間に及ぶ場合には、インクリメンタルな開発でないと激しい時代の変化に、ついて行くことができません。
ソフトウェアの世界は、ものすごい早さで変化しています。
インクリメンタル開発で設計を柔軟に変更していかないと、すぐ設計は時代に乗り遅れた古いものになってしまいます。

 

*インクリメンタル開発はソフトウェアだけではなくて
小さなことを積み重ねていくことが大事って、ソフトウェア開発の手法として改めて、理解するまでもなく、よく言われることですよね。
現代のソフトウェア開発の手法としても用いられるくらいなので、インターネットの時代になってから、より大切な考え方になっているように思います。

  • 日々の生活の中で何かを少し改善してみる。
  • SNSなどで小さなアウトプットをちょっとずつ続ける。

このように時代に柔軟にちょっとずつ変化していくことを視野に入れながら、今まで、たくさんの人によって積み重ねられてきた文化の中に、自分も一つずつ積み重ねていきたいです。