サービス

開発手法

さくらソフト開発手法・アジャイル開発での開発者メリットについて

さくらソフトでは、『アジャイル』と呼ばれる開発手法で、 現在開発を続けております。

アジャイルなソフトウェア開発とは?

『PDCA(Plan Do Check Action)サイクル』という言葉をご存知でしょうか?

管理アプローチの仕方の一つですが、業務目標を上司の指示ではなく、自らの意思で決め フィードバックをかける、自己管理に基づく管理アプローチのことです。

PDCA(Plan Do Check Action)サイクル

アジャイルなソフトウェア開発は、この『PDCA』の管理と類似しています。

つまり、一定の期間で短期目標を立案・実行し、その目標の達成度や達成出来なかった理由を分析し、次のサイクルにフィードバックする作業の進め方です。

ただ一つ、『アジャイル開発』と『PDCA』で大きな違いがあります。

『PDCA』が個人、若しくは社内での仕事サイクルを指すのに対し、『アジャイル開発』は、クライアント様がコントロールできるサイクルで 成り立つことです。

『アジャイル (agile)』とは、英語で「機敏な・敏捷な」という意味の言葉であり、アジャイルなソフトウェア開発とは、機敏にソフトウェア開発を行うことを意味します。

「原則」や「プラクティス」などの指針に沿って、アジャイルなソフトウェア開発を 実践していきます。

近年日本で話題になっている『XP』( eXtreme Programming ) は、 アジャイル開発手法の最も有名な具体例です。

『イテレーション』(iteration:反復)と呼ばれる一定の期間内に、「要求・設計・実装・テスト」などを行い、動くソフトウェアを作り上げます。 そして、そのソフトウェアを評価することにより、フィードバックを得ながら開発を進めるやり方です。

アジャイルなソフトウェア開発では、このイテレーション(反復)毎の目標は、 クライアント(企画者)と開発者の話し合いにより決められますが、 クライアント様から開発者への信頼があることが、大前提になります。

つまり、PDCAとの一番の違いは、

クライアント(企画者)からのフィードバックを得て、「イテレーションのサークルをクライアント(企画者)がコントロール出来る」

ところにあります。

XPでは、開発チームが共有すべき4つの原則があります。

  • コミュニケーション(communication)
    クライアント様と弊社さくらソフト、 もしくは開発者間での円滑なやり取りに注力します。
  • シンプルさ(simplicity)
    必要最小限の設計しか行わないという約束に基づき、確実に進めていきます。
  • フィードバック(feedback)
    頻繁にテストを重ね、常に改良する開発になります。
  • 勇気(courage)
    大胆な設計変更にも、動揺することなく敏捷に対応していきます。

その上で、経験に基づいた具体的な実践項目(「プラクティス」と呼ばれる)があります。

主なものを、下記にご紹介いたします。

  • シンプルデザイン(simple design)
    余計な複雑さを排除し、常にシンプルにすることを意識して取り組みます。
  • リファクタリング(refactoring)
    動作を変えることなくプログラムを書き直します。
  • ペアプログラミング(pair programming)
    1台の開発マシンを2人で共有して、常に共同でコードを書きます。
  • スモールリリース(small releases)
    1、2週間毎のリリースを繰り返し、改良を頻繁に行います。
  • 40時間労働(40-hour work)
    週40時間以上働かない事を推奨します。

上記の、『原則・プラクティス』を通じた開発を行うことにより、動くソフトウェアを用いて顧客のフィードバックを得ます。

そして、顧客ニーズにより即したソフトウェアを、より安全に開発する開発手法が、『アジャイルなソフトウェア開発』です。

さくらソフトは何故、『アジャイルモデリング』を開発手法とするのか?

当社は、2週間の繰り返しで、要求・設計・実装・テストをしていきます。そして、その2週間で作成したソフトウェアを評価することにより、次の2週間にフィードバックを生かしていきます。

ここから、2週間毎の達成感・充実感が味わえ、タイトなスケジュールでも確実にこなしていくことが出来ます。

アジャイルな手法で開発をしているエンジニアに実際に聞いてみると、

  • 2週間ごとにリリースを繰り返すことで、納期までのプレッシャーが軽減された。
  • 他の会社では不可能と呼ばれた工期を、タイトではあったが難なくこなしてしまった。
  • クライアントに常にフィードバックを受けるため、最終的な成果物は、クライアント(企画者)が望んだ以上のものになった。
  • クライアントと開発者、また開発者同士で信頼していて初めて出来る手法のため、とても気分良く、モチベーションを保って開発出来た。
  • 普通の開発では仕様の変更は恐怖に近いが、アジャイルな手法だと苦にせず対応出来る。
  • 常に動くものを手にしている、という安心感を持つことが出来る。
  • 早い段階でリスクを洗い出し、無理がある計画を発見出来た。
  • プロジェクトが進むにつれ、品質や生産性が上がっていった。
  • 開発を通じて、クライアントとの信頼関係が非常に高まった。

と、非常に好感触でした。

『エンジニアのための会社』をうたって活動している当社には、最適な開発手法だと発見いたしました。

さくらソフトが開発手法に『アジャイルモデリング』を選んでいるのは、このためです。この手法から、エンジニアの働きやすい環境・モチベーション維持に努めております。