アジャイル開発者の習慣-acts_as_agile

第1回 フィードバックを重視する

この記事を読むのに必要な時間:およそ 5 分

アジャイルな開発者

アジャイル開発では,チームの開発者がアジャイル開発者である――アジャイルに開発するスキルと心構えを備えている(または備えるようになる)ことに期待しています。

これは見方を変えれば,アジャイル開発はチームに参加する個人に依存しているともいえます。ですが,現代のソフトウェア開発は,事前に定義した開発プロセスに従いさえすれば,確実に成果を出せるほど単純なものではなくなっているのも事実です。

心構えとスキル

アジャイル開発者の心構えとは「はやめに・こまめに」の達成と持続を目指す態度のことです。

心構えなしに,アジャイル開発がうまくいくことはありえません。しかし,心構えだけでもうまくいきません。心構えだけで成功できるのであれば,いわゆる「デスマーチ」は絶滅しているはずです。

心構えと,心構えを実践できるスキルの両方が必要です。実践できるスキルに裏打ちされていない心構えは,絵に描いた餅です。

私は,アジャイル開発者としての心構えは,アジャイル開発者としてのスキルを磨いていく過程で内面化されていくと考えます。そのため,本連載ではスキルに焦点を当てて話を進めていきます。

スキルという言葉はさまざまな意味合いで使われます。本連載では,スキルを「開発者個人が身につけていて,開発チームのメンバーとしての日々の作業の中で実践できる技術」と考えます。

4つのスキル

先の「Early and Often」の講演資料によれば,アジャイル開発者に必要とされるスキルは次の4つです。

アジャイル開発者の4つのスキル
  1. ストーリの作成(Creating Stories)
  2. 計画づくり(Planning)
  3. テスト駆動開発(Test-Driven Development)
  4. リファクタリング(Refactoring)

4つのスキルの詳細は連載を通じて紹介しますので,ここでは簡単な説明にとどめます。

ストーリの作成

「ストーリ」はシステムに要求される振る舞いを,顧客価値の観点から,顧客に理解できる語彙で散文的に記述したものです。ソフトウェアの価値とは顧客にとっての価値ですから,ストーリを作成できることは重要なスキルです。

計画づくり

アジャイル開発は計画を立てずにいきなりコーディングする――アジャイル開発に対するよくある誤解の一つです。確かにアジャイル開発では,作成された計画(Plan)を絶対視しません。その代わりに,状況に応じて計画づくり(Planning)を行います。アジャイル開発では計画づくりの実施頻度が高いので,1回あたりの計画づくりを効果的・効率的に行うスキルは重要です。

テスト駆動開発とリファクタリング

「テスト駆動開発」「リファクタリング」は,アジャイル開発という文脈を越えて,開発者の重要なスキルであると認識されています。書籍も複数出版されています注7⁠。本連載では,アジャイル開発の価値と目的に即した観点から改めて紹介する予定です。

注7)
みなさんすでに熟読のことかとは思いますが:-),本誌Vol.35の特集1「実演! テスト駆動開発」Vol.37の特集1「実演! リファクタリング」(いずれも和田 卓人(著⁠⁠)は特に参考になります。

アジャイル開発者になる

4つのスキルを身につけているだけでは,アジャイル開発者として十分ではありません。4つのスキルを磨く習慣を身につけている開発者,それがアジャイル開発者です。

習慣を身につける

本連載では,習慣を次の3つの要素から構成されているものと考えます。

習慣の三要素
  • マインドセット(心構え)
  • プラクティス(実践)
  • 継続

習慣は,これら3つの要素が組み合わさり,内面化され,それを「当たり前」のこととして振る舞えるようになってはじめて「身につけられた」といえます。

私の経験と観察では,アジャイル開発者だと目されている人たちは,いくつかの共通する習慣を身につけています。連載を通じて,アジャイル開発者の習慣を身につけるために持つべきマインドセットと,実践可能なプラクティスを紹介します。心構えの内面化と実践を継続するのは,みなさん一人一人です。

まずは自分,それからチーム

習慣を身につけるにあたっての注意を一つ。紹介する習慣をいきなり開発チーム全体には導入しないでください。チームへの導入は,まず皆さん自身が試してみて,うまくいきそうなことを確かめてからです。実際にやってみせ,一緒にやることが重要です。私の経験では,自分でやっていないことを他人に強要してうまくいったことはありません。

著者プロフィール

角谷信太郎(かくたにしんたろう)

(株)永和システムマネジメント,サービスプロバイディング事業部所属プログラマ。「『楽しさ』がシステム開発の生産性を左右する」と信じてRubyによるアジャイル開発を現場で実践するテスト駆動開発者。目標は達人プログラマ。好きな言語はRuby。好きなメソッドはextend。著書に『アジャイルな見積りと計画づくり』(共同翻訳),『JavaからRubyへ』(翻訳),『アジャイルプラクティス』(共同監訳),『インターフェイス指向設計』(監訳)。

URLhttp://kakutani.com/

著書