連載
|
|
|
※ご注意 ……本稿に登場する人物、会社、団体などはすべてフィクションであり、実在の人物、会社、団体などとは一切関係ありません。登場人物の役柄はストーリー上の設定であり、筆者や読者を代表するものでもありません。あくまでもフィクションとしてお読みください。 |
■■プロローグ■■
|
点網 滝は福井県に来ていた。福井のCADメーカーとの仕事のために、昨日から来ているのだ。そのCADメーカーは、先日アジャイルなコミュニケーションのコツについて教えてくれた井坂 十蔵氏がかつて勤めていた会社だという。
こういう場合、大抵は師匠と一緒に出張となる滝だが、今回は1人だ。師匠は所用のため遅れてくるのだ。明日福井で合流する予定となっている。
羽田から飛行機で約1時間。小松空港に降り立った滝を車で迎えに来てくれたのは、訪問先のCADメーカーに勤める1人の青年だった。それから2人は、会社までの道程を小1時間、赤松の並木の向こうに夏の日本海の白波を右手に眺めながら走った。夏の好きな滝は、すっかり上機嫌で若きドライバーを質問攻めにした。
彼は、新人として入社して2年目で、なんでも.NETでCADを作っているという。学生時代からプログラミングが好きで、スーパー・プログラマーを目指しているとのこと。好きなプログラミング言語は、C#。興味のある分野は、3Dグラフィックス。独身。好みの女性のタイプは明るい人だという。
調子に乗った滝は、「明日土曜日だよね。前から永平寺に行ってみたかったんだ」と翌日の観光案内の約束まで取り付けていた。そして、今朝は宿泊先に車で迎えに来てもらい、永平寺に連れてきてもらっていた。
※ 筆者が永平寺に行って撮影してきた写真。 |
永平寺の参拝からの帰り道の参道。敷き詰められた細かい石の上を2人は並んで歩いていた。梅雨が明けたとはいえ杉の大木の林を通ってくる風はどこか涼しい。遠くに夏山が黒く見える。
■■永平寺参道を歩く滝と健二■■
それにしても、健二君。永平寺素敵だったね。ああいう場所で修行している人が、いまでも大勢いるんだなってあらためて気付いたよ。よい体験だったな。 |
|
|
|
僕はずっと福井に住んでいるんですけど、永平寺は久しぶりだったんで新鮮な感動がありました。それから、禅修行にも興味を覚えました。修行ってどんなんでしょうね。修行をすると何が分かるようになるんでしょう? |
|
|
|
……。 ……じゃあ、滝さん。この近くにおいしい団子屋があるんですけど、そこへ行って話しません? |
|
いいねぇ。もちろん行く! おなかすいたね。 |
■■団子屋にてアジャイルを語る滝■■
……ほら。あそこの赤い
|
||||
|
||||
わあ。来た来た。へぇー……。ではさっそく……。おおお。これは! ちょっといままで食べたことがない食感と味の団子だ。師匠の分も買わなくちゃだね。……うん。福井って初めてなんだけど、けっこうおいしいものがいろいろとあるみたいね。 ……さて、健二君。おなかが落ち着いたところで、そろそろアジャイルが嫌いなわけをお姉さんに話してもらおうかな。 |
||||
|
||||
うう。あまり話したくないんですけど。実は……。実は、それは僕の父に関係があることなんです。僕の父は、僕が幼いころから、アジャイルにのめり込んでいたんです。そしてだんだん、家族よりアジャイルにばかり時間を割くようになっていったんです。母が大きな病気になって、長く寝込むようになってからも、それは変わりませんでした……。やがて、母は亡くなりました。 |
||||
|
||||
……。 | ||||
そして、僕は家を出ました。それ以来、父方の姓を名乗らず母方の姓を名乗っているんです。僕には、母を苦しめた父が、そしてアジャイルが、いまひとつ好きになれないんです。いっそ一生ウォーターフォールで開発できればと……。 |
||||
……そうだったんだ。つらい思いをしたんだ……。 | ||||
それに、滝さんの前でこんなこというとしかられるかもしれませんけど、アジャイル開発って、ちょっといいかげんなところがあるような気がして、そこも好きになれないんです。「変化に対応」っていいますけど、それってどうなんでしょう? まあ、予測のつかない変化もあるでしょうから、それへの臨機応変な対応も必要なんでしょうけど。でも、それより初めからきっちりと先を見越した開発計画を立て、先を見越した保守性の高い設計や実装ができるように努力することの方が先決なんじゃないでしょうか? 適当にやっておいて、後で直せばよいみたいなのは、エンジニアとしてどうなんでしょう? |
||||
うーん。アジャイルだから「初めは適当でよい」なんてことはないみたいよ。私もそうだったんだけど、健二君、少しアジャイルに誤解があるかもしれない。 |
||||
そうなんでしょうか。でも、取りあえずやってみて後で直せばよい、みたいなところありません? |
||||
そうね。確かにアジャイルでは、まずはやってみて、その結果を見て、それによってやり方を微調整する、という面はあるみたいね。実行結果から、フィードバックを得る、みたいな。 |
||||
でしょう? | ||||
でも、そうするのには訳があるんだ。私の師匠からの受け売りになっちゃうんだけど……。 確かにウォーターフォール的に、開発の初めに将来を見越して計画を立てて、そのとおりに進めることができるのなら、もしそれが可能だったら、それが理想かもしれない。でも現実には、そううまくいかない場合が多いみたい。そして、なぜうまくいかないかというと、それはソフトウェア開発の「複雑さ」に原因があるようなんだ。 例えば……、うーん……。それじゃ師匠から聞いたドライブの例を挙げるね。例えば、「円形のレーシング・コースを決められた回数だけ周回する」というような非常に単純なドライブの場合だと……。ちょっと紙に書いてみるね。
この場合だけどね。例えば9割の精度で計画を立てることができて、9割の精度で計画どおりに車の速度を保つことができれば、全体としてはまあ9割くらいの精度でこのドライブを成功させることができると思う。 つまり、 っていう、ウォーターフォールの理屈が成り立つわけ。で、こういう単純な場合はこれでよいんだけど、現実のドライブは普通、もっと複雑な場合が多くて、例えば、次のような場合。
ね? で、こういう場合……、出掛ける前に「目的地までの道のりを9割の精度で求めて、道の込み具合を9割の精度で求めて、家族の昼食の好みを9割の精度で求めて、子どものその日の駄々のこね具合を9割の精度で予測できて、9割の精度で速度を保つことができれば」、全体としては9割くらいの精度でこのドライブは成功するのかな? それよりも実際にドライブをしながら、周りの状況を見たり、家族の意見を頻繁に取り入れていったりした方がよくない? |
||||
うーん……。 | ||||
つまり、ソフトウェア開発は複雑だから「円形のレーシング・コースをある回数だけ周回する」ようにはいかない、ということらしいんだ。ウォーターフォールの考え方では、「まず高精度な計画を立てて、いかにそのとおりにやるか」に注力するんだけど、アジャイルでは、それよりもむしろ、「やってみてそこからのフィードバックで細かく軌道修正する」方を重視するんだ。 納得いかない? んじゃ、もう1つの例。子ども服の例だよ。
どう? |
||||
うーん……。何だかビミョーな例ですね。分かるような分からないような……。 |
||||
駄目かぁ。よーし。健二君、じゃあ、これからちょっと一緒に来てくれる? 実は今日は午後から、私の「師匠の師匠」のところへ伺うことになっているんだ。こういうことに詳しい人なんだよ。 |
INDEX | ||
開発をもっと楽にするNAgileの基本思想 | ||
第3回 アジャイル開発のキモはフィードバック! | ||
1.団子屋にてアジャイルを語る滝 | ||
2.女祖泥寺(めそどろじ) | ||
3.設計と実装に対するフィードバック | ||
4.「ツッコマレビリティ」とeXtreme Feedback! | ||
5.重要なのはフィードバックを受けようとする態度 | ||
「開発をもっと楽にする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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|