プログラマではなくテスターとして現場デビューする
筆者はプログラミングは好きだったが、テストについてはずっと苦手意識があった。プログラムがそれなりに完成してしまうとそれで満足してしまって、さっそく次のプログラムにとりかかりたくなる。結局、システムテストの段階でハデにバグが見つかってどれだけ周りに迷惑をかけたかわからない(今思い出しても冷や汗が出る)。「自分に代わってテストだけをやってくれる要員」がいてくれたらと本気で願っていた。
だから、1年前にある小さなソフト開発企業で、「新人をまずテスターとしてみっちり仕込むようにしている」と聴いたときは感心した。その発想は考えれば考えるほど合理的かつ発展的だ。筆者なりに肉付けした形で紹介したい。
◆新人は現場のお荷物である
多くのソフト開発企業での新人教育が何から始まるかというと、大学の一般教養課程のような「コンピュータ概論」だったりする。その後に「ソフトウエア分析・設計」とか「プログラミング」の学びが続く。テストなんて「プログラミング」の最後あたりでちょろっと学ぶくらいだ。
そのような学びを終えた新人を迎えて、要員が増えてうれしいと喜ぶ現場なんてほとんどないだろう。何しろ新人はカンが鈍いし仕事の品質もアテにならない。つまり、噛んで含めるように仕様を説明しなければならないし、システムテストの過程では新人が作ったモジュールをけっきょく一から作り変えるハメになったりもする。とくに佳境に入って多忙を極める現場では、新人なんてほんとジャマなんである。
◆「プロのテスター」として現場デビューする
そもそも「コンピュータ概論」や「分析・設計」なんかを新人が学んでも、本人も退屈するばかりか、その知識は配属された現場ではまるで役に立たない。「プログラミング」を学んだといっても、それは多くの学習課題のひとつでしかなくて、現場では足手まといになるばかりだ。だから、新人にはテスティングだけをみっちり教えてそれなりの「プロのテスター」になってもらえばいい。それなら教育期間を従来より短縮してもじゅうぶん可能だ。テストの難しさを思い知る筆者がプロジェクトリーダーなら、そんな新人は大歓迎である。
もちろん、テストにもクリティカルな部分があって、そういう箇所は年季のいったテスターに担当してもらう。いっぽうテスト作業の半分くらいは新人にも担当できる程度に形式化できるものなので、そういう部分を新人にやってもらえばいい。簡単な部分であっても「ここでヘタを打てば、バグ付きのモジュールが納品されてしまう」ことの重大さを意識させることで、仕事への真剣さを実務を通して教えることもできる。
◆「報奨的な教育体制」を敷く
テスターの仕事を半年から1年ほど重ねた後で「プログラミング」をあらためて学んでもらう。何しろ彼らはそれなりに現場で鍛えられたテスト技術を持っているので、バグの少ないプログラムを作ってくれるようになるだろう。そうして、こんどは現場でプログラマとして1~2年過ごした後で「詳細設計」を学べるようにする。その後でいよいよ「基本設計」や「プロジェクトマネージメント」の学びが始まる。つまり、学んで現場経験を重ねることで、「より上流の仕事」の学びと実務経験の機会が与えられるという「報奨的」な教育体制である。
このやり方にはさまざまな効果がある。まず、新人が配属されることにともなう現場の混乱を最小限に抑えることができる点。次に、学んだことがすべて直後の実務経験で生かせるゆえに教育のコストパフォーマンスが高い点。また、いくら経験を積んでも「学ぶべきことがまだ先にある。自分はまだ未熟だ」と意識できるゆえに、新人が自己満足するスキを与えない点も挙げられる。
面白いことに、最初に仕込まれるテスト工程に魅了されて、そのままテストの専門家になってしまう新人もいるそうだ。「あのコがテスターなのか。今回のプロジェクトはつらいのぉ」と恐れられる屈強なテスターにたちまち成長したりするらしい。自分の適性や性格に合わせてカフェテリア方式で自分の専門を主体的に選んでいけるのはいいことだ。しかもこのカフェテリアは料理を気軽に味わいつつ選べるようになっているため「食わず嫌い」の心配もない。
◆教育時間を捻出するための工夫
いいことづくめのようだが、問題もないわけではない。教育コースが長期間に渡って間歇的に実施されるゆえの弊害がある。いったん現場に配属されたら、新人だろうが古株だろうが教育コースに参加しづらくなるものだ。これを手当てしなければ、周到に計画した育成カリキュラムも絵に描いた餅になってしまう。
けれどもこれは工夫しだいでなんとかなる。規定のコースを終了しなければ現場でその工程を担当できないルールを敷けばよい。また、有給休暇のように、学習に専任すべき日数を年季に応じて定めてもいい。「あまり教育に投資すると、学ぶだけ学んで他へ移られてしまうので損だ」と心配する向きもあろうが、上記のように「学んでも学んでもまだ他に学ぶべき課題があることを意識させられる体制」であれば安心して教育投資ができる。また、教育しないと人手が足りなくて現場が困るので、皆が同僚の「教育を受ける権利」に配慮せざるを得なくなる。
それにしても、最初にテスティングをみっちり仕込まれていれば、筆者がプログラマとして周りにかけた迷惑の量もずっと少なくて済んだだろうと悔やまれる。ちょっと意味は違うけど、新人教育も「テストファースト」でいきたい。
| 固定リンク
この記事へのコメントは終了しました。
コメント