連載
|
|
|
3. NAgileを始めるにはどうすればよいのか?(+NAgileの将来展望)
―― NAgileを始めるには、冒頭の「プラクティス+ツール」の実践ステップにあったように、やはり単体ツールのNUnitが一番重要なのですか?
小井土:はい。NUnitがなければ始まりませんからね。NUnitをベースとしてNAntが、さらにはNUnitとNAntをベースとしてCC.NETが動くわけですから、NUnitがすべてのプラクティスの基本になります。だからとにかく、まずはNUnitを使っていただくことが先決です。
市川:NUnitの利用を開発チームに広めるのは比較的簡単です。NUnitは開発者に対して説明しやすいからです。NUnitを使うことで、「単体テストを自動化できること」や「NMockによって疑似的なデータが取り扱えること」を開発者やプロジェクト・マネージャに訴求すれば、「それはいいね」とすんなり聞き入れられることが多いです。
それにNUnitは導入が楽で、それに関する情報も豊富です。日本の一般的な開発プロジェクトでは、NUnitの資料として、小井土さんが書かれた「NUnit利用ガイド(Ver2)(Word版)/(PDF版)」や「NUnitトレーニングテキスト(Word版)/(PDF版)」が用いられるケースが多いです。
ちなみにC#やVB.NETのコーディング標準の資料としては、河端 善博さんが書かれた「C#コーディング標準(Word版)/(PDF版)」か、中西さんが書かれた「VB.NET コーディング標準(Word版)/(PDF版)」が非常によく使われています。
しかしながら、NUnit以降の実践プラクティスである「NAntによるビルドの自動化」や「CC.NETによる継続的インテグレーション(=常時結合)」などは、なかなか理解してもらえないことも多々あります*3。
*3 本連載では次回以降、これらの「実践プラクティス+ツール」に関する内容を個別に順次解説していく予定である。従って今後は、「NAntによるビルドの自動化」や「CC.NETによる継続的インテグレーション」のメリットを正しく理解してもらうための資料の1つとして、本連載の記事が活用できるだろう。 |
―― 「プラクティス+ツール」の各フェイズは、いま現在すべて実践できるわけですよね?
森屋:実は「FITによる受け入れテストの自動化」のフェイズは、まだ発展途上の段階にあります。しかしこのフェイズは、NAgileのメインストリームの中でもいま最もホットな部分であり、個人的にはこれからNAgileを推進するためにも頑張って開拓していかなければならないと考えています。
中西:アジャイル開発は繰り返し(イテレーション)型の開発を基本としていますので、何度も(日々あるいはビルドごとに)システム全体をテストします。
そのため、最終的なユーザーの要求が満たされているどうかを検証するための「受け入れテスト」はやはり重要になります。また受け入れテストは、プロジェクトの進ちょくを管理するための明確な指針にもなります。ユーザーの望んでいない間違ったソフトウェアを、いくら正しく作っても進ちょくが進んだとはいえません。このため、アジャイル開発では「FITによる受け入れテストの自動化」を最終目標に据えているのです。
小井土:実際にはFITによる受け入れテストは、Java開発でも行われているのですが、必ずしもうまくいっていないのが現状です。FITは、ユーザー要求をテストするものなので、ユーザーにポジティブに参加してもらう必要があります。そこでは、ソフトウェアに対するユーザーの深い理解が求められるのですが、これがネックになっていると思います。
FITはあくまで受け入れテストなので、ユーザーがソフトウェアにしてほしいこと、つまり「ソフトウェアの目的と結果」が必要となるからです。これらを明確化しないと、当然ながら受け入れテストは作れません。つまりFITによる受け入れテストを実現するには、ゴールを明確化できるユーザーが必要なわけです。
森屋:FITによる受け入れテストは、まだ将来的な話でしかありません。われわれも実は「これから頑張ろう」と先週話し合ったばかりです。
取りあえず現段階では、冒頭で述べた実践プラクティスの 番目である「CC.NETによる継続的インテグレーション」までのフェイズを目標として、NAgileに取り組めばよいと思っています。
―― 「プラクティス+ツール」の各フェイズではそれぞれ別のN*ツールをインストールする必要があるわけですが、これらの基本的なN*ツールを一括してインストールする手段はあるのでしょうか?
森屋:残念ながら現状ではありません。しかしそれは、やはりやらないといけないと思っています。ゆくゆくは、そういう一括インストール・パッケージも用意していきたいです。
NAgileプロジェクトの将来展望 |
―― 最後の質問ですが、NAgilerとして成長していくために大切なことは何でしょうか?
森屋:成長していく過程は、思考の過程でもあります。ですから、良い物を見たときに素直にそれを消化できる能力を身に付けることが重要です。これにより独創性が自分の中に芽生えてきます。
そして開発者自身が自律した存在として(自分自身で良い物についてよく考えて)、「お客さんにより良い物を提供したい」という気持ちを持つことがとても大切です。NAgilerに限らずどんな仕事でもそうですが、そこに喜びを感じられるようになっていただきたいと思います。
―― 本日は皆さまどうもありがとうございました。
■
以上が座談会の大体の内容である。本稿でNAgileの内容や良さについて理解していただけただろうか。もしこの記事をきっかけにして読者諸氏がNAgileに興味を持っていただけたなら筆者として幸いである。
実は座談会では本稿で記述したテーマ以外にも、さまざまな興味深いテーマについて活発な議論が取り交わされた。しかし紙面(画面?)の都合上、大半の議論の内容は割愛せざるを得なかったのが心残りである。しかしこの記事は「NAgileで始める実践アジャイル開発」という連載の導入部分でしかない。連載の執筆陣は今回集まっていただいたNAgilerの方々8人の予定で、リレー連載となる。よって次回以降の記事では今回割愛された話題もきっと取り上げられるだろう。
次回以降では、主にNAgileの個々のN*ツールの具体的な内容について解説していく。次回は、まずはその前準備として「シンプルさ」の重要性について解説する予定だ。アジャイル開発プロセスの1つであるXP(エクストリーム・プログラミング)では「コミュニケーション」「シンプルさ」「フィードバック」「勇気」「敬意」という5つの価値を重要視しているが、「シンプルさ」はその1つでNAgile開発の基礎知識として必ず知っておいてほしい項目である。お楽しみに。
|
INDEX | ||
NAgileで始める実践アジャイル開発 | ||
第1回 .NET+アジャイルなら本当に幸せになれるのか? | ||
1.そもそも“NAgile”って何? | ||
2.NAgileを実践すると何がうれしいのか? | ||
3.NAgileを始めるにはどうすればよいのか?(+NAgileの将来展望) | ||
「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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|