連載
|
|
はじめに
Back Issue
|
||
|
ソフトウェア開発ではこれまで、できるだけ「シンプル」に設計・開発することの有効性が繰り返し提言されてきた。ソフトウェアをシンプルにすればするほど、設計は見通しが良くなり、開発は容易になり、メンテナンスも楽になる。
では、開発を<シンプル>にするというのはどういうことなのか? 一体どうすれば<シンプル>になるのか? これらの質問にあなたは即答できるだろうか。実際のところ、頭ではシンプルにすることが良いと分かっていても、現実には実践できていなかったりするのではないだろうか。
そこで本稿では、現実の開発現場でシンプルな設計・開発を行うための1つの手段として、その「考え方のコツ」を考察する。もちろんこのコツを身に付けることは、すべてのソフトウェア開発で役立つものだろうが、特にNAgile(エヌ・アジャイルまたはナジャイル)を実践していくうえでは、ぜひ知っておいてほしい(NAgileについての概要は前回の記事を参照されたい)。
ここまでは少し硬くなってしまったが、以降は会話形式の物語として話は進む。登場人物は以下の2人だ。
|
それでは、この2人の会話に耳を傾けてみよう……。
※ご注意 ……本稿の物語やそこで交わされる会話はすべてフィクションであり、実在の人物、団体などとは一切関係ありません。登場人物の役柄はストーリー上の設定であり、筆者や読者を代表するものではありません。あくまでフィクションとしてお読みください。 |
■■“NAgile”って何? どうやる?■■
“Welcome to the NAgile world.” |
|||||
さっそくですが師匠、NAgileって、つまりはどういうものなんですか? |
|||||
NAgileというのはひと言でいってしまえば「.NET環境でアジャイル開発を実践すること」だ。アジャイル開発とは、XP(エクストリーム・プログラミング)に代表される開発手法で、変化に俊敏に対応しようとするところが特徴だ。NAgileでは、特にNUnitやNAntなどのN*(エヌ・アスター)と呼ばれるツール群(以降、N*ツール)を使って開発を行うところに特徴がある(*1)。
|
|||||
ということは、「NAgile」イコール「N*ツールを使って開発すること」? | |||||
そうではない。もちろん、N*ツールを使ってアジャイル開発のプラクティスを実践していくことは大切だ。だが知っておくがいい。最も重要なもの(=価値)は次に挙げる5つだ。
これらはXP(エクストリーム・プログラミング)でうたわれている「5つの価値」だが、NAgileではこれらの価値を重視する。とても大切なので、以下に毛筆で書いておいた。
壁に飾っておくことだ。 |
|||||
(この師匠、何かというと紙に書いて壁に貼らせようとするんだよね)うーん……じゃあ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の考え方を知らずに、形だけまねてもうまくいかないかもしれん、ということだ。 例えば、いくらNUnitを使ってみても、従来の開発スタイルと従来の考え方に固執していては、その良さに気付けないかもしれん。その場合、考え方を少しだけ変える必要がある。 つまり、「プチ・パラダイム・シフト」だ。
|
INDEX | ||
NAgileで始める実践アジャイル開発 | ||
第2回 ソフトウェア開発をシンプルにする考え方のコツ | ||
1.“NAgile”って何? どうやる? | ||
2.NAgileにおけるシンプルさの極意“NSimplicity” | ||
3.「シンプルさ」にコミットする演習 ― シンプルに考えるための問題意識 | ||
4.「シンプルさ」にコミットする演習 ― 実際のDateクラスのソース・コードの実装 | ||
5.“Be Agile. That's my attitude.”という心構えを持とう! | ||
「NAgileで始める実践アジャイル開発」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|