前提となる条件の会社で働いたことがないので正直的外れなのかもしれない。 でもぼくはこれを読んだときの素直な感想として「これは違うんじゃないかなー?」と思った。
とはいえ完全に否定したいわけでもなくて同意ポイントと違和感ポイントがあるなという感じです。
追記
ブコメでテスターでもいいんじゃないの?というコメントをみかけて誤解させてしまう文章を書いてしまったなと思ったので訂正です。
id: hotu_ta 自分は、自然とブラックボックステストっぽいことからエンジニアの人生を歩み始めたし、テスターからエンジニア的な理解を深めていくのは悪くないアプローチに感じる。
テスターそのものから開始すること、それ自体はあってもいいのではないか?と思います。 ただ上記エントリでの問題を解決するためにテスターを選択するのは短絡的な解決方法であって根本治療ではないのでは?ということで書いた感じです。
きちんとメンターがメンティーに対してチケットを渡せる粒度に落とし込めていればそもそもテスターになる必要はないかもしれませんし、その上で一度テスターになって全体のフローを知ろうというのであれば多分ひっかかりはなかったと思います。 誤解させる文章になっていてすみません。
同意ポイント 「徐々にできる範囲を広げる」
これは「やれる」という自信を持ってもらうためにまず実績を積むという意味だと思うんだけど大賛成。 まずはやれるところから、そしてやれるところを少しずつ増やす。 振り返りや1on1などで前回はここまでしか出来なかったのにいまはこんなに出来るようになったよ!すごい!!!みたいなことをきちんと伝えると自信と実績をちゃんと評価してますよというフィードバックになってよいんじゃないかな。
同意ポイント 「テスター案件で指導の下、「プログラマーの仕事の一部」としてシステム開発の仕事に慣れる」
これはIT未経験者だから、とか関係なく自分が知らないプロジェクトに参画したときによくやる手法の1つだと思うので賛成。 例えば転職して今日からAチームに配属されました、コードはここで環境はこれで…とその日のうちに開発できる状態になったと仮定する。 その状態でまずなにをするか?明確に事前の支持がある場合はそれに従うけどもそうでなければ自分ができそうだと思うissueを拾って直してしまうかな。
これには2つ良いと思ってる面がある。
1つ、時間的制約があって後回しになっている軽微なバグを直すことでどう動いているのか確認できる 2つ、入ったばかりのチームに貢献したという自信がつく 3つ、自分という存在のプレゼンスを強調できる
2つといったな、あれは嘘だ。3つだったわ、めんご。
なので「テストから入る」自体には賛成という立場です。
違和感ポイント 「果たしてテスターから始めるのが正しいのか?」
なるべく易しい案件から始めて、潰れずにゆっくり成長してほしい
これは多分未経験者を採用するうえでメンターや上司、会社として誰もがそう考えることだと思う。 反面きちんとこのコンテクストが共有されるなら別にテスターでなくてもいいのかなと思う。
フィヨルドブートキャンプを主催されている方のブログかなにかで「プログラミングのオンライン教室に通うだけでは会社の戦力にならない。では戦力とはなにか?どんなに簡単なissueであったとしても独力で解決できることだと私達は考える。」みたいな話があっておおー!なるほど!ってぼくは思ったんだけどそうすると↑の考え方は「イシューからはじめよ」でいうところの「犬の道」のように感じる。
確かに辞めにくくはなるかもしれない、生存確率は上がるかもしれない。 でもIT未経験者がわざわざ未経験であるというハンディキャップを押してITの扉を叩いているのは「何かを創りたい」という強烈な創造的な思いからだろう。
そこにイメージと違うテスターという仕事をあてがったとする。
ぼくなら「プログラマとしてものを作る仕事につきたいと考えていたのに雑用をさせられている」と感じてしまうのではないかなと思う。 結果としてテスターのことを誰でもできる些末な雑事と認識してしまう可能性まであると考えるとそれはすごく危険な賭けに思えてくる。 もしここでテストのことを軽視してしまうとそのあとは地獄しか待っていないだろう、恐ろしい。
このブログでは特定の状態にフォーカスしていないのでこういう書き方なんだろうけども自分がメンターだったとしたらまず「どういうキャリアを目指していきたいのか」「何故そのキャリアを目指すのか」「ぼくが協力できることはなにか」あたりを聞いたり確認したりすると思う。 その上で「じゃああなたはテスターをやってみるのがいいですね」となったら進めるかもしれない。
でも多分IT未経験者がいきなりそんなことになるか?というと最初はそうではなく「ものづくりに携わりたいです!」とかもっとふわっとした内容だと思う。 そこにいきなり「じゃあテスターやろうか」っていったら最初のやる気を挫く可能性があるとぼくは思って逆にそっちのほうが怖いなと感じた。
つまり何故テスターをやるのか?のコンテクストが重要できちんとその情報が共有されていない場合非常に怖いことになると思うのが違和感としてあります。
多分やりたいこととしては「やれることの実績を積む」「プログラミングのワークフローを知る」あたりを学んでほしいんだろうけどその手段としてテスターをする、は少し的はずれなように感じた。 別にテスターでなくてもそれらは習得可能かなと思う。テストから始めるの自体を否定したいわけではないが専任するほどのことかな?そんなに人的リソース余ってるの?って気持ちになった。
「じゃあお前やったらどうすんねん!」となるんだけどぼくなら細かいバグだけど優先順位の問題で後回しにしているもの、やれば一瞬で終わるんだけど後回しにしているものを担当して直してもらうかな。 あとはテストコードを書いてもらう、ここで重要なのはテスターではなく実際にテストのコードを書いてもらうということ。
いきなり1機能を実装してもらうとかはサービスがどう動いているのかわからない人がやりきれるとは思えない。
例えバグっても影響が軽微なものを担当してもらうか、最悪バグって壊れてもサービスに影響がないことをやってもらう。 そのほうが任された側も安心してコードを書けると思うし。
あとはいきなりissue渡すんじゃなくてペアプロで一緒のタスクをこなすとかデプロイを一緒にペアオペするあたりはするかな。
違和感ポイント 「もしかしてメンターがいない?」
文中だと先輩プログラマの話題がでるけどメンターのような存在がでてこなかったのが違和感として残った。 この問題の多くの部分はメンター側が適切なアドバイスやサポートができれば大部分解決できると思うものばかりだったのでいきなり「テスターからはじめよ」に飛躍しなくてもちゃんとメンターメンティーの関係と時間を持てばほぼほぼ解決するんじゃあないかな。 なんとなくだけどこのブログからは先輩プログラマの時間を使わせないようにするような臭いを感じていてそれをメンティー側に求めるのは違うでしょ?と感じた。
課題はメンティー側ではなくメンター側にあると思う。あるいはそのメンターを取り巻く環境か。
違和感ポイント 「テストって何度も言いましたがそんなに難しくないんですよ」
テストってプログラムがどう動かないといけないのか、どういう振る舞いを期待しているのか、そのための事前の条件はなにか?みたいなのがわかってないと書けない、試せないと思うので「難しくない」は明らかに偽だと思う。 ここでいうテストがいわゆる手動テスト、動作検証なんだろうと思うんだけどそれだって「なにをどうしたらこうなった」を伝えるというのは結構しんどい。
またテスターに求められる能力の一つに違和感と期待する動きがあると思うんだけどそのためにはこのシステムやサービスがどういう期待のもと動いていないといけないか?というのがわからないといけないとぼくは思う。 なのでここは少し誤解を生む表現をしていると思った。
違和感ポイント 「事情は分かった。でもテスターはスキップしたい。開発案件に入るにはどうしたら?」
これが一番気になるテーマかなと思います。でも敢えて言います。
自分で考えてください。
ここが最大にひっかかったところなんだけど
え?なんでいきなり突き放したの???ってめちゃくちゃ疑問。 気持ち的にはちゃぶ台返しされた気持ちでもうこの時点でぼくの評価は真逆になってしまった。
攻略wikiの手順通りにゲームをクリアしていく感覚は、テスト実施の次のステップであるテスト項目作りあたりからだんだん通用しなくなります。
これはその通りなんだけど前提条件としてIT未経験者なんだよね?だったらまずは「守破離」で真似るところから始めましょうとかそういう話をすべきでない? 多分ぼくはメンターよりな立場としてこのブログを読んでいてその観点からいうとこの結論は許容し難い。
正直それなら何も書かないでいたほうが良かったんじゃないかとすら思ってしまう。 考えさせたいというのはわかるんだけど、ターゲットはIT未経験者だよ? IT未経験者だったときにこんなことをもし言われたぼくならそれだけでマインドがブレイキングチェンジですよ。
まとめ
基本的にひっかかるというか違うんじゃね?って思うポイントはメンターメンティーの関係を作る、1on1する、OKRのような目的を考えるあたりでほぼほぼ解決すると思うしどちらかというIT未経験者の課題というより出題者側(先輩プログラマ、上司、会社)の課題だと感じた。
それをIT未経験者に自力で解決させようとするのが根本的な問題ではないかなと思う。