連載
NAgileで始める実践アジャイル開発

第2回 ソフトウェア開発をシンプルにする考え方のコツ

―― 開発をもっと楽にするNAgileの基本思想 ――

福井コンピュータ株式会社 小島 富治雄
Micosoft MVP 2005 − Visual C#)
2005/11/05

はじめに

Back Issue
1
.NET+アジャイルなら本当に幸せになれるのか?

 ソフトウェア開発ではこれまで、できるだけ「シンプル」に設計・開発することの有効性が繰り返し提言されてきた。ソフトウェアをシンプルにすればするほど、設計は見通しが良くなり、開発は容易になり、メンテナンスも楽になる。

 では、開発を<シンプル>にするというのはどういうことなのか? 一体どうすれば<シンプル>になるのか? これらの質問にあなたは即答できるだろうか。実際のところ、頭ではシンプルにすることが良いと分かっていても、現実には実践できていなかったりするのではないだろうか。

 そこで本稿では、現実の開発現場でシンプルな設計・開発を行うための1つの手段として、その「考え方のコツ」を考察する。もちろんこのコツを身に付けることは、すべてのソフトウェア開発で役立つものだろうが、特にNAgile(エヌ・アジャイルまたはナジャイル)を実践していくうえでは、ぜひ知っておいてほしい(NAgileについての概要は前回の記事を参照されたい)。

 ここまでは少し硬くなってしまったが、以降は会話形式の物語として話は進む。登場人物は以下の2人だ。

登場人物:
NAgileの師匠:ナジャイラ師(マスター)(♂)
NAgiler(ナジャイラー=NAgileの実践者)。謎の多い人物。ちょっと偉そうだが、根はいいやつ。
その弟子:点網 滝(てんもう たき)(♀)
.NET開発者。ウォーターフォール型の開発を行っているが、アジャイル開発に興味があり、始めたいと思っている。

 それでは、この2人の会話に耳を傾けてみよう……。

※ご注意 ……本稿の物語やそこで交わされる会話はすべてフィクションであり、実在の人物、団体などとは一切関係ありません。登場人物の役柄はストーリー上の設定であり、筆者や読者を代表するものではありません。あくまでフィクションとしてお読みください。

■■“NAgile”って何? どうやる?■■

“Welcome to the NAgile world.”
(NAgileの世界へようこそ)

   

さっそくですが師匠、NAgileって、つまりはどういうものなんですか?

   

NAgileというのはひと言でいってしまえば「.NET環境でアジャイル開発を実践すること」だ。アジャイル開発とは、XP(エクストリーム・プログラミング)に代表される開発手法で、変化に俊敏に対応しようとするところが特徴だ。NAgileでは、特にNUnitやNAntなどのN*(エヌ・アスター)と呼ばれるツール群(以降、N*ツール)を使って開発を行うところに特徴がある(*1)。

*1 N*ツールについては前回の解説を参照すること。
 
ということは、「NAgile」イコール「N*ツールを使って開発すること」?
   

そうではない。もちろん、N*ツールを使ってアジャイル開発のプラクティスを実践していくことは大切だ。だが知っておくがいい。最も重要なもの(=価値)は次に挙げる5つだ。

NAgile開発の5つの価値:

 これらはXP(エクストリーム・プログラミング)でうたわれている「5つの価値」だが、NAgileではこれらの価値を重視する。とても大切なので、以下に毛筆で書いておいた。

NAgileでも重視する5つの価値(毛筆版)

 壁に飾っておくことだ。

   

(この師匠、何かというと紙に書いて壁に貼らせようとするんだよね)うーん……じゃあNAgileって精神論なんですか?

   

いや、違う。重要なのは、これらの価値にコミットすることだ。つまりNAgileでは、課題に取り組むときにこれらの価値を上げる方向で<実際に実践していこうとする態度>こそが重要なのだ。価値を知るだけで実践しなければ、それはNAgileではない。

 陽明学の始祖、王陽明の言葉に、次のものがある。

「知はこれ行の始めにして、行はこれ知の成るなり」

 これは、知識と行動が合致していなければならない、という教えだ。正しく価値を知ること、そしてそれを実践していくこと。NAgileでは、それらがともに重要だ。

   
……? よく分からないけど、N*ツールを使いさえすればよいというものではないと……!?
   

言っておこう。

“I'm trying to tell you that when you're ready for NAgile, you won't have to use the N* tools.”
(お前がもし真にNAgileに目覚めれば、もはやN*ツールを使うまでもない)

■■「プチ・パラダイム・シフト」を起こせ!■■

ともかく、価値に真にコミットすること。NAgileの考え方を知らずに、形だけまねてもうまくいかないかもしれん、ということだ。

 例えば、いくらNUnitを使ってみても、従来の開発スタイルと従来の考え方に固執していては、その良さに気付けないかもしれん。その場合、考え方を少しだけ変える必要がある。

 つまり、「プチ・パラダイム・シフト」だ。

【「プチ・パラダイム・シフト」のポイント】
NAgileは、まずは実践。だが、形だけでなく「価値」にコミットすることが重要。そのためには「プチ・パラダイム・シフト」が必要かも。

 

 INDEX
  NAgileで始める実践アジャイル開発
  第2回 ソフトウェア開発をシンプルにする考え方のコツ
  1.“NAgile”って何? どうやる?
    2.NAgileにおけるシンプルさの極意“NSimplicity”
    3.「シンプルさ」にコミットする演習 ― シンプルに考えるための問題意識
    4.「シンプルさ」にコミットする演習 ― 実際のDateクラスのソース・コードの実装
    5.“Be Agile. That's my attitude.”という心構えを持とう!
 
インデックス・ページヘ  「NAgileで始める実践アジャイル開発」

@IT Special

- PR -

TechTargetジャパン

Insider.NET フォーラム 新着記事
  • Visual Studio 2017が目指す世界とは? (2017/3/24)
     Visual Studio 2017はもはやWindowsアプリ開発者のためだけのものではない。どんなアプリを開発できるのかを見てみよう
  • foreachループで現在の繰り返し回数を使うには? (2017/3/23)
     LINQのSelect拡張メソッドを使用して、foreachループの中で現在が何回目の繰り返しなのか、そのインデックスを得る方法を紹介する(C# 7/VB 15対応)
  • Listの要素を並べ替えるには? (2017/3/22)
     LINQのOrderBy/ThenByなどの拡張メソッドとListクラスのSortメソッドを利用して、Listの要素を並べ替える方法を解説する
  • .NET Portability Analyzer (2017/3/21)
     .NET Portability Analyzerは、さまざまなプラットフォームをまたいだ.NETプログラムの移植性をチェックするためのツール
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

イベントカレンダー

PickUpイベント

- PR -

アクセスランキング

もっと見る

ホワイトペーパーTechTargetジャパン

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH