« プロセス論の時代からコンテンツの時代へ | トップページ | 売掛金と消費税の仕訳 »

2006.01.07

プログラマではなくテスターとして現場デビューする

 筆者はプログラミングは好きだったが、テストについてはずっと苦手意識があった。プログラムがそれなりに完成してしまうとそれで満足してしまって、さっそく次のプログラムにとりかかりたくなる。結局、システムテストの段階でハデにバグが見つかってどれだけ周りに迷惑をかけたかわからない(今思い出しても冷や汗が出る)。「自分に代わってテストだけをやってくれる要員」がいてくれたらと本気で願っていた。

 だから、1年前にある小さなソフト開発企業で、「新人をまずテスターとしてみっちり仕込むようにしている」と聴いたときは感心した。その発想は考えれば考えるほど合理的かつ発展的だ。筆者なりに肉付けした形で紹介したい。

◆新人は現場のお荷物である

 多くのソフト開発企業での新人教育が何から始まるかというと、大学の一般教養課程のような「コンピュータ概論」だったりする。その後に「ソフトウエア分析・設計」とか「プログラミング」の学びが続く。テストなんて「プログラミング」の最後あたりでちょろっと学ぶくらいだ。

 そのような学びを終えた新人を迎えて、要員が増えてうれしいと喜ぶ現場なんてほとんどないだろう。何しろ新人はカンが鈍いし仕事の品質もアテにならない。つまり、噛んで含めるように仕様を説明しなければならないし、システムテストの過程では新人が作ったモジュールをけっきょく一から作り変えるハメになったりもする。とくに佳境に入って多忙を極める現場では、新人なんてほんとジャマなんである。

◆「プロのテスター」として現場デビューする

 そもそも「コンピュータ概論」や「分析・設計」なんかを新人が学んでも、本人も退屈するばかりか、その知識は配属された現場ではまるで役に立たない。「プログラミング」を学んだといっても、それは多くの学習課題のひとつでしかなくて、現場では足手まといになるばかりだ。だから、新人にはテスティングだけをみっちり教えてそれなりの「プロのテスター」になってもらえばいい。それなら教育期間を従来より短縮してもじゅうぶん可能だ。テストの難しさを思い知る筆者がプロジェクトリーダーなら、そんな新人は大歓迎である。

 もちろん、テストにもクリティカルな部分があって、そういう箇所は年季のいったテスターに担当してもらう。いっぽうテスト作業の半分くらいは新人にも担当できる程度に形式化できるものなので、そういう部分を新人にやってもらえばいい。簡単な部分であっても「ここでヘタを打てば、バグ付きのモジュールが納品されてしまう」ことの重大さを意識させることで、仕事への真剣さを実務を通して教えることもできる。

◆「報奨的な教育体制」を敷く

 テスターの仕事を半年から1年ほど重ねた後で「プログラミング」をあらためて学んでもらう。何しろ彼らはそれなりに現場で鍛えられたテスト技術を持っているので、バグの少ないプログラムを作ってくれるようになるだろう。そうして、こんどは現場でプログラマとして1~2年過ごした後で「詳細設計」を学べるようにする。その後でいよいよ「基本設計」や「プロジェクトマネージメント」の学びが始まる。つまり、学んで現場経験を重ねることで、「より上流の仕事」の学びと実務経験の機会が与えられるという「報奨的」な教育体制である。

 このやり方にはさまざまな効果がある。まず、新人が配属されることにともなう現場の混乱を最小限に抑えることができる点。次に、学んだことがすべて直後の実務経験で生かせるゆえに教育のコストパフォーマンスが高い点。また、いくら経験を積んでも「学ぶべきことがまだ先にある。自分はまだ未熟だ」と意識できるゆえに、新人が自己満足するスキを与えない点も挙げられる。

 面白いことに、最初に仕込まれるテスト工程に魅了されて、そのままテストの専門家になってしまう新人もいるそうだ。「あのコがテスターなのか。今回のプロジェクトはつらいのぉ」と恐れられる屈強なテスターにたちまち成長したりするらしい。自分の適性や性格に合わせてカフェテリア方式で自分の専門を主体的に選んでいけるのはいいことだ。しかもこのカフェテリアは料理を気軽に味わいつつ選べるようになっているため「食わず嫌い」の心配もない。

◆教育時間を捻出するための工夫

 いいことづくめのようだが、問題もないわけではない。教育コースが長期間に渡って間歇的に実施されるゆえの弊害がある。いったん現場に配属されたら、新人だろうが古株だろうが教育コースに参加しづらくなるものだ。これを手当てしなければ、周到に計画した育成カリキュラムも絵に描いた餅になってしまう。

 けれどもこれは工夫しだいでなんとかなる。規定のコースを終了しなければ現場でその工程を担当できないルールを敷けばよい。また、有給休暇のように、学習に専任すべき日数を年季に応じて定めてもいい。「あまり教育に投資すると、学ぶだけ学んで他へ移られてしまうので損だ」と心配する向きもあろうが、上記のように「学んでも学んでもまだ他に学ぶべき課題があることを意識させられる体制」であれば安心して教育投資ができる。また、教育しないと人手が足りなくて現場が困るので、皆が同僚の「教育を受ける権利」に配慮せざるを得なくなる。

 それにしても、最初にテスティングをみっちり仕込まれていれば、筆者がプログラマとして周りにかけた迷惑の量もずっと少なくて済んだだろうと悔やまれる。ちょっと意味は違うけど、新人教育も「テストファースト」でいきたい。

|

« プロセス論の時代からコンテンツの時代へ | トップページ | 売掛金と消費税の仕訳 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/87674/8041830

この記事へのトラックバック一覧です: プログラマではなくテスターとして現場デビューする:

» 新人教育はテスターから [Yoshi のB型スタイル]
いきなりプログラマーとして教育するのではなく、まずは テスターとして教育するというのは、確かに名案。 プログラミングを教えるのには時間がかかるが、機能仕様 を理解させるのはそう難しいことではない。 機能仕様さえわかれば、あとはほっといてもテストができる。 そ..... [続きを読む]

受信: 2006.01.08 13:24

» 「プログラマではなくテスターとして現場デビューする」を読んで [トーキョー・クラウド・コレクター]
ブックマーク [ 2006/01/08 09:19:18 ] 設計者の発言: プ... [続きを読む]

受信: 2006.01.08 14:05

» [開発]プログラマではなくテスターとして現場デビューする [カレーなる辛口Javaな転職日記]
http://watanabek.cocolog-nifty.com/blog/2006/01/post_ffa9.html うーむ,なんでこんなのが人気エントリなんだろう?((単にたまたま話題になっただけなのかな?)) プログラムがそれなりに完成してしまうとそれで満足してしまって、さっそく次のプログラムにとりかかりたくなる。結局、システムテストの段階でハデにバグが見つかってどれだけ周りに迷惑をかけたかわからない それは「完成した」とは言わない.((まるで「鉄筋を減らしてコストダウン」の世界... [続きを読む]

受信: 2006.01.09 11:24

» [SWE][XP]プログラマではなくテスターとして現場デビューする [今日の役に立たない一言 − Today’s Trifle! −]
わざわざテスターとして育てなくても、 テストファーストとペアプロで開発させればいいだけなのでは?と思うんだが。。。 そもそも、テスターに求められる資質とプログラマに求められる資質ってかなり違うような気がする。例えば、プログラマはめんどくさがりやが適していると思う。同じことを何度も繰り返す手間を嫌って、プログラムを書いて自動化するくらいの人がいい。でも、自動化のためのプログラムを書くことは手間と感じないような人。同じことを手間とも感じないで繰り返せる人は、プログラマには向いていない。それとは逆に、テス... [続きを読む]

受信: 2006.01.10 11:28

» プログラマを育てる? [どぼログ]
ちょこっとおもしろい記事を見かけた。 設計者の発言 さんの プログラマではなくテスターとして現場デビューする なかおもしろい記事である。使い物にならない新人にいきなりプログラマをやらせるよりも、テスターとしての経験を踏ませることで、より良いプログラマ�... [続きを読む]

受信: 2006.01.10 12:11

» プログラマではなくテスターとして現場デビューする [hogehogeなSEの日々]
プログラマではなくテスターとして現場デビューさせるのは、私のまわりではよくやる新 [続きを読む]

受信: 2006.01.10 23:54

» 新人教育について [混沌エンジニア雑記]
新しいプログラマが今日から入社しまして、教えることになったのですが、 なにから教... [続きを読む]

受信: 2006.11.01 12:55

« プロセス論の時代からコンテンツの時代へ | トップページ | 売掛金と消費税の仕訳 »