人材育成、講師の視点から(6)
これまでの記事はコチラ↓
こんにちは、天野勝です。
私は、コンサルタントという職業柄、人にものを教える「講師」という仕事をすることが多いです。現場カイゼンの導入教育や、C言語でのテスト駆動開発と、かなり多岐にわたっています。
この連載では「講師」をしていて気付いたことを私の視点で発信していきます。
■何ができればアジャイル開発か?
アジャイル開発を始める時には、まずはできるところから始めてくださいと研修でお伝えしています。
このようにお伝えすると、「どこまでやればアジャイル開発をやっていると言えるのですか」という質問をされる方がいます。アジャイル開発をすることは、あくまでも手段ですので、アジャイル開発をしているかどうかという判定をすること自体は、あまり意味のないことなのですが、あえてこの質問に答えてみます。広い定義では、アジャイルマニフェスト[*1]に従っていればアジャイル開発をしていると宣言してしまってもよいでしょう。しかし、これではぼやっとしすぎていますので、筆者なりに少しだけ掘り下げた考え方をご紹介します。
この質問へ回答するには、3つのポイントがあります。体制と、技術、心構えです。
◇体制
仕様の決定権を持つ顧客と、開発チームが協働して製品を作れること。
◇技術
アジャイル開発は、漸進的に開発をしていきますので、既存コードへの修正が多発します。このような状況に耐えられるような技術を使っていること。抽象度の高い設計や、記述量の少ないプログラミング、自動テストなどが相当します。
◇心構え
世の中は常に変化することを前提として受入れ、このような状況下で成功体験に縛られて思考停止にならず、最善の手法を模索し続けること。
これら3つのポイントがアジャイル開発ができていると判断する必要条件と考えます。
■顧客がいなくてもどこまでアジャイルにやれるか?
開発側の立場であれば、技術や、心構えは自前でなんとかできるかもしれませんが、体制を整えてアジャイル開発に参加できる顧客を用意するのはなかなか難しいことでしょう。
アジャイル開発では、仕様の決定権を持つ顧客(スクラムではプロダクトオーナーと呼ぶ)の参加は必須なので、顧客抜きで開発チームだけがアジャイルなプラクティスを導入しているだけの状態を、アジャイル開発と呼ぶのは違和感があります。とはいえ、技術や心構えが準備できていないと、顧客が用意できて、アジャイル開発が始められる準備が整っても、すぐには立ち上がらないのが現実です。
そこで、顧客がいなくても開発チームがアジャイル開発ができるための、技術や心構えを養っておくことが必要です。当然のごとく、このような開発者特性[*2]はすぐには身につきませんので、長い期間をかけ、仕事をしながら少しずつ身につけていくことになります。だらだら仕事をしていても、効果的に身につきませんので、Plan-Do-Study-Adapt(PDSA)という学習のサイクルを仕事の中に組み込み、効果的に学べるような工夫が必要です。
私たちがお勧めしているチームファシリテーション[*3]には、このPDSAサイクルを日々の仕事の中に組み込むための、最小の実践項目と、その背景となる原則を提供しています。
[*1]アジャイルマニフェスト
http://agilemanifesto.org/iso/ja/
[*2]アジャイル開発ができるための技術な心構えを備えた開発者を、「アジャイル耐性のある開発者」と呼ぶことがあります。
[*3]チームファシリテーション
http://sec.tky.esm.co.jp/categories/tf/
皆さまがお仕事を進める際のヒントになれば幸いです。
この他にも、システム開発にかかわる人をイキイキさせるヒントをご紹介しております。ぜひご覧ください。
ブログはこちら
Twitterはこちら