BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ アーティクル より良いベストプラクティス

より良いベストプラクティス

組織ではよくベストプラクティスがプログラムや品質の改善対策の一環として導入されます。それらは”クックブック”やチートシートから本格的で監査や認定に対しても万全なコンサルタント主導の方法論まで様々です。

この記事ではベストプラクティスを単純に適用するやり方に疑問を投げかけるためドレフュス学習モデルを紹介します。そして単純なベストプラクティス適用が役立たないだけでなく、一番力のある人たちにとって重い悪影響を与えることをお見せします。

ベストプラクティスを導入する理由

ビジネスに大きな影響のあるプログラムを作る人たちは常に、ベストプラクティスを組織に広げるよう大々的に取り上げるもっともな理由を持っています。

  • ベストプラクティスは一貫性を保証する。 私たちは○○を導入しようとしている。みんなには同じ方法で仕事をしてもらいたい。こちらから何らかの方向性を提示しないで誰かを見捨てる気はないし、他の方法では無秩序になるだろう。
  • ベストプラクティスは学びをサポートする。 この新しい方法によってみんなが細かいことを気にしないで調子を上げられるようにしたい。この方法はよく構成された物理的な標準セットだ。これでみんなが何をすべきかを実際に目で見えるようになり、どれだけその通りになっているかを示せる。
  • ベストプラクティスは(潜在的な)影響や被害を抑える。 (彼らは本性を表し始めました) どんな組織でも人々の能力はベル曲線を描き、間違った考え方をする人も少ないとはいえ無視できないくらいいるものだ。もしこのプログラム実装が悪ければ重大な財務的・法的な事業リスクに晒されることになる。だから明確に定義されたベストプラクティスが自分たちを守るために必要とされているのだ。ベストプラクティスは幾度も試されてきたからこそそう呼ばれるのだから、それを適用すればうまくいくと思っていいだろう。
  • ベストプラクティスはより流動的で柔軟な労働力を得るのに役立つ。 この目まぐるしい時代では、プロジェクトが一夜のうちに決まったり中止されたりする。人々はプロジェクトチームの間を動き、プロジェクトは異なるオフィスや国、タイムゾーンを移動する。同じベストプラクティスでみんなをトレーニングすれば、私たちもみんなもキャリア流動性の点でさまざまな選択肢を持てるようになる。これを”コモディティ化したリソース”と呼ぼう。
  • ベストプラクティスはコントロールを強化する。 大規模で階層的な組織では、これが実際に最も重要なポイントだ。そのような組織の部門長や副社長は数千人の人々について責任を持っているだろう。それくらいのレベルでアカウンタビリティを全うする唯一の方法が、明確に定義され厳しい強制力を持つベストプラクティスのシステムなのだ。

つまり、ベストプラクティスはリスク管理装置として使われるのです。

リスクの本性

リスクというのは興味深い現象です。ビジネス用語で”リスク”は大抵ものごとが悪くなる見込みのことを意味します。私たちは思考対象のさまざまな事象について尤度(高・中・低、パーセンテージ、統計分位)を割り当てます。

しかし形式化できた恐れ以外のリスクはどうでしょうか。私たちは恐れることをリスキーと考え、同様に恐れない事はあまり考えません(つまりリスクが低いとみなすのです)。ジョージ・ルーカス氏に詫びつつ、言い換えれば次のようになります。:

  • 恐れはリスクを生む
  • リスクはプロセスを生む
  • プロセスは嫌悪を生む (そしてミーティングやガントチャートも)

(訳注:スターウォーズ エピソード1のヨーダの台詞にちなんでいる)

ところで恐れには2つのタイプがあります。すなわち合理的なものと不合理なものです。合理的な恐れとは健全で有用なものをいいます。ライオンは悪い。火は熱い。トラックは危ない。この恐れは良い情報に基づいており、進化の過程に関係しているか文化や個人の発達の中で学ばれたことです。

不合理な恐れというのは偏見、恐怖症、反射的行動の源です。地球は平らでその縁を越えると死んでしまう。死んだネズミをしっぽから吊るせばペストを防げる。椰子の実の殻を耳に付けると航空輸送機が表れる。

問題はこのどちらともが内面的に両立して現れるということです。蜘蛛の恐怖感は蜘蛛恐怖症の人にとってライオンの恐怖感に劣らず激しくリアルなものです。

常識的なレベルでは、ほとんどの恐れは不合理です。ビジネスという状況では特にそうで、もしあるシステムを出すのが遅れたとしもほとんど場合誰も死のうとはしません。怪我をしたりお腹をすかせる危険に晒されることもないでしょう。最悪ちょっと酷な批判を受けるだけでしょう。

大体においてあなたが日々の生活に使っているソフトウェアの全て ー 仕事で使うオフィススイート、家のゲーム機、この記事を読むのに使っているブラウザ-それら全てがおそらくは遅れて出されたものです。にもかかわらず正常に動作しません。そして機能的欠陥やセキュリティホールの目立ったものを修正するためにホットフィックスやサービスパック、自動更新といったものが数日・数週間後に登場するのです。もしかするとあなたが幸いにも知らない裏で、ベンダーはあなたの電話番号・コンピュータ・画面が今まさに暴露されていることを隠しているかもしれません。

合理的な恐れはまともです。殺されるのを防いでくれるのですから、抱き締めて安らかな生活の守護者として大事にするべきです。不合理な恐れはただのドラッグですが、運良くこれに対処する方法があります。:

なぜなら不合理な恐れは無知から生じるからで、私たちはこの無知から抜け出る方法を学ぶことができるのです!

ドレフュスモデルについて

1970年代後半に二人の兄弟が学習の性質についてしばらく調査を行いました。彼らは初期の人工知能研究に興味を持ち、チェスをするといった難しいスキルをコンピュータが学ぶようにプログラムしたいと考えました。しかし学習に関してそれまでに確立されていた方法では、実現できることが非常に少なく、コンピュータプログラムでの基礎に使えそうなものとなると全くありませんでした。そこで彼らは自分たちで学習プロセスの研究に取り掛かったのです。

その結果がスキル獲得のドレフュスモデルです。これは人々が何かについて全く初めての状態から、それを意識しないでおこなえるようになるまでを説明するものです。

世の中には数多くの学習モデルやスキル獲得モデルがあります。その中でドレフュスモデルを際立たせているのは2つのことです。第一に、それが実際の証拠や経験に基づいたもので、かつ有効であることが実証されているということです。(1980年代初めのアメリカの医療サービスが看護危機に直面した時に大きな成果をあげました:http://tinyurl.com/32afwt )第二に、進展を単に受動的に観察するだけではないことです。進展の各段階で人々がどのような反応を示すかを説明し、それによりどうすれば成長を助けられるかを説明します。

新しいスキルを学ぶ時、関係する状況についてまだ何も知らないので、まず特定の指示を求めることになります。つまり、自然にできることがなく何かするべきことを教えられる必要があります。関係する状況の認識が進むにつれ、指示を必要とすることが少なくなります。実際この認識の育成をスキル獲得の基本と考えることができます。

ドレフュスモデルでは学習プロセスを5つの異なる段階(あるいはレベル)に分けます。:

入門者は細かな指示、段階的な手引きを必要とします。入門者は指示を判断するのに必要なことを知らないため、その指示が有効なのかそうでないのか、あるいはどれが重要なのかを判断することができません。このため入門者は頻繁にすぐ起きる成功と定期的なフィードバックを必要とします。良い手引書には多くの図と安心感を与える多くのメッセージがあるものです。

初級者は基本的なステップである個別のタスクについてよく理解し、タスクを連続させることができます。初級者は目的指向というよりはずっとタスク指向ですが、ある程度バランスの取れた見方ができるようになります。この段階が学習者にとって一番危険です。自分がもっと知っていると考えるほどには理解していますが、問題に巻き込まれないよう振舞えるほどには知らないのです。歩き始めの幼児は多くの事において初級者といえます。経験とともに初級者は中級者となります。中級者のレベルでは目的指向で、目的達成のために連続するタスクを見つけ出すことができます。それらのタスクは最善のものではないかもしれませんが、大抵の場合は有効なものであるはずです。中級者は目的を与えられるのを好み、それを達成するよう信頼されることを好みます。逆にいうと、詳細な指示を与えようとすれば中級者の調子を狂わせることになりかねません。後部座席に座ってもらいドライブするようなものなのです。

ほとんどの人はほとんどのスキルにおいて中級者の域を出ません。たとえ日々の仕事で用いることだったとしてもです。これは本質的な人間の特徴です。ある結果を一度出すとエネルギーを使おうとはしなくなり、そして大抵の活動においては単に仕事を終わらせることがその結果を出すということにあたります。

熟練者のレベルで、解決策が頭の中で大抵完全な形で”とりあえず分かり”始めます。熟練者は十分に素質を育くんでおり、状況の突出した細部を見つけ出し、それまでの経験の宝庫で突き合せをします。熟練者は自分の行動のより広範な状況関係を知りたいと望み、メタファや格言(そしてある格言の反対の意味の格言)に楽しみを感じます。行動を検証するために、まだ自分のルールベースの経験・知識を振り返りますが、この段階になるまでには自分の判断を信じることを学び始めています。

入門者から中級者までの成長はほぼ一直線ですが、熟練者への移行は変化のステップを表します。まず第一に意欲的な選択がなされないといけません。中級者は十分な時間をかけて実行していればなれますが、熟練者にはなろうと思わないとなれません。

中級者から熟練者への移行と同様、専門家への移行も一直線ではありません。特定の分野において専門家になるには何年もひたむきな努力を続ける必要があるでしょう。このような人たちはほぼ天分の才によって働き、間違ったことをするのは稀です。

ある曖昧な分野のある専門家は、自分の能力にプライドを持ち、他の専門家とともに時間を過ごす中でスキルを測定し磨き上げることを気に入っていました。おもしろいことに、低いレベルの人ほど自分の能力を誇張する傾向があり、高いレベルの人ほど謙虚だったりします。

地球最後の日

(訳注:SF小説/映画のタイトル。映画についてWikipedia を参照するとこの章との共通点が分かる。)

専門家は不幸なことに自分の意思決定プロセスを説明することができません。そのプロセスは専門家がオートパイロットで動いているように見える時に意味をなすのです。解決策は専門家の無意識のうちに完全な形で与えられているのです。あるプロテニスプレイヤはただどのようにボールにトップスピンをかけて返すかを”知っている”だけです。プロミュージシャンにとって楽器は操る器械というより自分を拡張したものと感じます。

大抵の人たちは自分たちが行うことのほとんどにおいて初級者あるいは中級者であることを思い出してもらいたいのですが、実はこのことはプロの場合であっても変わらないのです。専門家プログラマ(またはテスタ、アナリスト)は良くて中級者の、大抵は初級者の上司を持ちます。(ごく最近まで才能あるプログラマだったというプロジェクトマネージャがどれほどいるでしょうか?ドレフュスモデルはマネージャにも適用できるのです。)

そんな上司・マネージャのような人たちはタスクレベルで考え、良くても分かる程度のタスクの連続から成る目的について考えているものです。その判断プロセスは満足いくプロセスではないでしょう。例えば「俺はアプリケーションを15年作ってきた。とりあえずESBを使ってはならないことくらい知っている」(ここでまた”とりあえず”が出てきました)というように。もちろん熟練者あるいは専門家のマネージャであればこのような説明より適切な判断をするでしょうし、実際に専門家たちを見つけ出してきて最初の段階から直感レベルの解決策を示し、そして力強く自分たちの決定を擁護してくれるでしょう。

ベストプラクティスとドレフュスモデル

ドレフュスモデルの入門者となったところで、ベストプラクティスに戻ってみましょう。このフレーズはどのような意味を持つようになったでしょうか。”プラクティス”とはあなたが行うことで、ある振る舞いであったり活動だったりであり、また規定されたものです。”ベスト”とは絶対的な修飾詞です(暫定的な”ベター”やより穏健な”とても良い”とは相容れません)。事情に左右されず一義的なもので、ここにあるもの以上に良いものはないという宣言です。

そこでこの定義によると、ベストプラクティスは事情に左右されず一義的で規定された活動のことになります。それらはタスクベースの学習の基礎となるタスクです。それではこのようなモデルは異なるスキルレベルの人にどのような効果があるでしょうか。

ベストプラクティスは初心者を助ける

入門者はベストプラクティスを必要とします。それなしでは働くことができません。プラクティスがその道を示してくれます。それは詳しければ詳しいほど入門者にとって良いものとなります。

初級者はベストプラクティスを利用します。それにより初級者が誤りやすい中級者への道の境界や範囲は明確になり、初級者は疑うことなくその道を進むでしょう。

中級者はベストプラクティスを定義します。中級者は目的指向ですが、まだ目的を達成するための連続したステップに頼っていることを思い出してください。初級者であった時を思い出したり、過去のミスを全て思い出したり、後輩入門者から自分たちを守ろうとするのが中級者なのです。これより先のことはこの後の段階です。

ベストプラクティスは上級者を縛り付ける

熟練者はベストプラクティスを振り返ります。熟練者は自身の直感を信じて学習をおこないますが、直感が必ずしもいつも正確なわけではありません。この段階ではベストプラクティスは良くも悪くもなります。もしなにか禁止されていることをしようと直感するなら、文書化されたルールに対する根拠のない忠誠さを外れてみようとするでしょう。

最後に、専門家はベストプラクティスを使うことはありません。なぜなら専門家はどんなプラクティスも使わないからです!実際に専門家は仕事を全うするためにベストプラクティスを覆すのです(あるいはベストプラクティスによって必然的に生じる取り締まりプロセスを覆すと言ったほうがいいかもしれません)。ベストプラクティスは必要悪であり並存はするものの、専門家たちを妨げるようであってはいけません。

この最後の2つのレベル、特に専門家のレベルでは、プラクティスベースの指導はすぐにでも不快さをもたらす可能性があります。ちょうど中級者の人がタスクレベルの細かい指示を与えられる(”赤の8をそこ、黒の9の下に置いて、そうすればエースが自由になるよ”)のと同じようにです。専門家をルールに縛り付けている時は後部座席でのドライブだけでなく、専門家が苦労して得た才能と直感を無駄にしているのです。

ベストプラクティスはセンターから?

ほとんどのプラクティスベースのプロセスによる指導は中級者レベルの人たちによるものです。このことを証明する統計的な証拠はないのですが、私は確かだと思っています。中級者レベルでは、それ以前のレベルでおかしたミスの原因は教えられたタスクの説明が厳密でなかったり完全でなかったりしたせいだと考えます。もしプラクティスが正しく行われれば、みなが初級者の無駄の多い過ちを避けて入門者から中級者へとなれます。中級者の人はまだそのスキルにおいて熟練者を経験してない(そして思い出してもらいたいのですが、スキルでは入門者でなくても、学習法を学ぶこと、指導法を学ぶことを含めた”全てのこと”は入門者として始めるのです)ので、自分の素質や直感を信じる理由あるいは証拠は持っていません。専門家がしていることなら、リピート可能なプラクティスの集まりに分解する(=スキルを下げる)ことができ、それによりスキルがそれより低い人、正直にいえば費用の安い人でも同じタスクを行うことができるのです。

優秀者センターやベストプラクティスチームのようなとこにいる専門家の小さな集団によってベストプラクティスを定義し、それを企業全体に展開することも可能かもしれないと考えられます。

しかし、このような状況の"専門家"はドレフュスの考える専門家ではなく、まさに中級者なのです。両者には重要な違いがあります。IBMのDeep Blueのようにチェスのグランドマスタを負かすことのできるコンピュータは専門家ではありません。それはただ莫大な可能性空間を高速に検索できるだけです(チェスはドレフュス兄弟がAIを使って最初に研究しようとした問題だったためDeep Blueのケースはドレフュス研究を正統に受け継いだものと見なされていて、Deep Blueが1997年にガルリ・カスパロフを負かしたのはチェスのコンピュータ化の金字塔的出来事でした)。この考えは、まったくもって中級者なのです!最近の神経学の調査により、ある分野の専門家は専門家でない人より早く物事を処理するわけではないことが分かりました。それどころかより少ない物事しか処理しないのです。同じ問題に対して専門家でない人よりも専門家の脳は少なく活動します。言い換えれば、専門家は本能的に解決領域を小さくし、どの部分が一番結果を出しやすいかについて発達したセンスを持っているのです。.

より良いベストプラクティス

ドレフュスモデルに従えば、専門家の力を削ぐことなしに、増殖する知識に対するより適切なモデルを定めることができます。専門家たちは組織の次の世代の知識労働者にインスピレーションを与えてくれます。

第一に、プラクティスとそれを行う人たちの両方に対して、関係する状況を与える必要があります。そのためには、対象としている人たちのドレフュスレベルに応じて、同じ原理を幾つかの角度から、そして異なった抽象レベルで表現してみるのもいいでしょう。一つ確かなのは、あるプラクティスの一つの定義だけで全てを表現はできないということです。

第二に、プラクティスは規定的であるより説明的でないといけません。言い換えれば望まれる結果を説明することで、またその結果を出すためのいくつかの代替可能な方法を示すこととも言えるかもしれません。好ましい方法を特定してあげることは入門者にとって助けになります。近くでハンドリングしてあげればとても安全なドライブになるのです。後ろ向き駐車と同時に向きを変えることは、中級者ドライバにとって一番効率のいい方法ではないかもしれませんが、それでも説明してみましょう。中級者ならいずれできるようになります。専門家に望むのは、その直感力を悪い影響に晒さずに、それが一番必要とされる困難な状況で生かすことです。

プラクティスの説明にはその長所と短所も入れるべきです。どんなプラクティスでも利点だけであることはないはずです。ほとんどの事に対してトレードオフがあります。これを説明することは入門者にとってはあまり利益とはなりませんが、熟練者や専門家レベルの人たちが”ルール”の中でも余裕を持って動けるような場を作ることになります。

ベストプラクティスとしてのパターン

実際には、ベストプラクティスを入門者から専門家までに適用させようとするほど、それはパターンのような形になっていきます。

建築家のChristopher Alexanderにちなんだアレクサンドリアパターンの一つでは、関係する状況と、いろいろな”力”(外部要因、還元したり取り込んだりするもの)、そして幾つかの典型的な例を示します。アレクサンドリアパターンでは、パターンは他の何かと結合する時にのみ働くもので、それにより”力”の相互作用のシステムを作り、調和を生み出すようにバランスを取ろうとします。

この考え方をベストプラクティスにも適用すると、多様な持ちつ持たれつの協働プラクティスを築くことになるでしょう。それは入門者が手引書にある方法に対しても使え、中間レベルの人も試すことができ、専門家も議論できるものです。実際、最初の時点で関係する状況を与えるプロセスは、あるプラクティス(または幾つかのプラクティスの集まり)の価値を見極める点で有効な練習になるのです。

まとめ

人はリスクを嫌います。それは恐れるということです。(合理的に)恐れるべき事に対しては、それに遭遇する可能性を判断し、それを回避する労力を使うことは全く適切なことです。

ベストプラクティスは入門者にとってガイドラインを与えます。人は学習の過程でミスをおかします。なぜなら過ちが学習なのですから!)初級者の段階を着実に歩み、入門者から中級者になるまでそのガイドラインの外側へはみ出ないですむというのはベストプラクティスの魅力に感じます。しかし人間の学習プロセスというのはそう単純にはいきません。ソフトウェア開発はある種のスキルで、プログラマ、テスタ、アナリスト、プロジェクトマネージャなど、どのような役割であっても、最も優れた人はほとんど直感から優れたパフォーマンスを出します。もしそういった人たちがなぜそうしたのかを説明できない時は、それこそその人たちの専門的技術を良く表しているのです(もちろんコミュニケーションスキルがないせいで理解できないというのでは駄目です!)。

いくつものスキルを持つ組織で一貫性を保つには、明快で不変なベストプラクティスよりもアレクサンドリアパターンがより効果のある方針を与えてくれます。

実際、最良のベストプラクティスというのはベストでもプラクティスでもないのです。

謝辞

以前ThoughtWorksで同僚だったRobin Gibsonが私にドレフュスモデルを最初に教えてくれた人物でした。QCon 2007でドレフュスモデルについて素晴らしいスピーチをしたPragDave Thomas氏は私にPatricia Benner著”From Novice to Expert”を教えてくれました。これは看護のプロからのエピソードに満ちた有益で刺激的な本でした。Øredevの主催者であるMichael Tiberg氏は、彼のカンファレンスでベストプラクティスについて話す機会を与えてくれました。この記事はその時の話を元にしています。そのカンファレンスにはAndy Huntと一緒でしたが、彼の妻がドレフュスモデルをソフトウェアコミュニティに紹介する上で一番責任がある人かもしれません!Andyはドレフュスモデルを大きく扱い、またそれ以外にも人々が良いと考えている多くのことも含めることになる本に取り組んでいるところです。そしてこの記事を書き上げないといけないと勧めてくれ、発表の場を与えてくれたNiclas Nilsson氏にも感謝します。

原文はこちらです:http://www.infoq.com/articles/better-best-practices

この記事に星をつける

おすすめ度
スタイル

BT