見出し画像

なぜIT未経験者はテスターからなの?会社のホンネとプログラマーになるヒント

こんにちは、炭山水です。写真はジョギングついでに寄った等々力渓谷です。涼しいし綺麗だし都内だしちょっと緑を味わうのにおススメ。

今回は主にTwitterで定期的に賑わう、そしておそらく多くの事実を含むであろうIT業界の「未経験者はまずテスターをやることになる」というお話に触れたいと思います。

会社の裏事情、ホンネといったところにも踏み込んで書きます。多くの人に知ってもらいたい内容なので無料noteにしていますが、参考になったら文末のボタンから投げ銭頂けると嬉しいです。頑張って書いたごほうびに缶チューハイ代ください。

話の前提

基本的にいわゆるSES会社と呼ばれる、お客様先常駐型のお仕事をする会社を想定して話したいと思います。テスター、という位置づけが話題になるのもだいたいこのあたりで仕事をする方々になるかと思います。

そもそもテストってなんじゃい?システム開発の中での位置づけは?

テスター、テスター、とは言うものの、テストとは何ぞやってこと整理しないままに話しても、話が空中分解しますね。結論まで遠いとは思いますが、我慢してお付き合いください。

システム開発の中でも、「プログラマー(PG)」と呼ばれる人たちが担当する仕事は、多少のローカルルールによる違いはあれどだいたいこういう流れになります。

・仕様書をもとにして、設計を行う(設計はドキュメントだったり頭の中だったり)
・設計を基にして、プログラムを書く
・仕様&設計を基にして、テスト項目を挙げる
・テストを実施する

スーパーざっくりです。ちなみに上が1番高難易度で、順番に難易度下がります。「ふわっとしたものを形あるものに変える」という要素が上に行くほど強くなるからです。これは後述します。

まず最初にできるようになってほしいのが、この中での「テストを実施する」という作業です。

会社や既存社員が恐れていること

商売をしている以上、リスクや嫌なことは避けては通れませんが、こと未経験者採用において、特に中小企業が恐れること、それは、

せっかく入社してくれた人が潰れてしまうことです。

心情的&感情的な側面で言えば、特に未経験の方にどうにか一人前になってほしいと思って面倒見てきた先輩社員からしたら、後輩が潰れてしまうの、中々にキツいです。厳しいこと言いすぎただろうか、仕事はちゃんと振れていただろうか、などなど、しっかり凹みます。人間ですもの。

商売というかドライな側面で言えば、投資がパーです。採用にも未経験育成にも会社は投資をしています。お金の他にも、面倒を見る先輩社員がもしかしたら稼げたかもしれない時間も、育成に充てていたりします。それらをドブに捨てることになります。大企業ならいざ知らず、中小企業にとってこの投資額がパーになるのはなかなかの痛手です。

商売のもう一つの側面で言えば、お客様からの信用も下がります。信用が下がるとどうなるか。「あそこの会社の未経験と関わるとすぐ潰れる。ベテランだけを担当にしろ。先輩がフォローとかあてにならん。」とどのお客様も態度を硬化なさいます。この状態に陥ると、次の未経験者にも育成枠を用意しづらくなっていきます。

未経験者が潰れていくおおきな要因の一つ

さて、未経験者が潰れるのが痛手なわけですが、なぜそんなことになるのか。

プログラマーの仕事をいきなり全部やらせるからです。

勉強や趣味のレベルでちょっとしたWebアプリとか作っているとなんだか製品が作れたような気になります。

でも、そうやって作ったWebアプリを人に見せて「あれ?あ、ちょっとここ動かないね」とかやってるくらいだと、職業プログラマが作る製品に比べて進捗としては10%がいいところです。

先に述べた通り、職業プログラマのお仕事は仕様を受け取るところからスタートです。仕様には「何をしてほしいか」は書いてあっても「どうやって作るか」は書いてありません。仕様書だけでは「どうやって作るか」を確定できないこともしょっちゅうです。

職業プログラマは、そんな状況から「ありとあらゆる状況を想定した完璧な製品」を作らないといけません。(僕含めできていないことも多々ありますが、建前だけでも逃げてはいけないポイントです)。

そんなところに簡単なポートフォリオつくったくらいの未経験者が入るとどうなるか。

仕様と現行システムのコードを渡される。
⇒ これ直しといてといわれる。
⇒ どこをいじればいいかわからない。
⇒ どうやって調べたらいいかもわからない。
⇒ RailsやLaravelの使い方はネットにあっても、Railsで作られた現行システムの改修箇所なんてググっても出てこない。
⇒ 時間だけはどんどん過ぎる。
⇒ でも、先輩に聞きながら、どうにかこうにか直す。動作も確認する。できましたと見せる。
⇒ 上司に予想外の使い方をされる。全然できてないと怒られる。
⇒ そんな使い方するとは思わないよと凹む…。

だいぶ極端に悪く書きましたが、いわゆるWeb系とか受託と呼ばれている会社からの退職者のお話やTwitterなど見る限り、当たらずとも遠からずではないでしょうか?
※ たまにこういう環境でなぜか生き残って強靭なエンジニアへ成長する方もいますが、特別にタフなだけです。参考にはなりません。

テスターとして仕事をしてもらうということ

ここで、プログラマーのお仕事のおさらいです。

・仕様書をもとにして、設計を行う(設計はドキュメントだったり頭の中だったり)
・設計を基にして、プログラムを書く
・仕様&設計を基にして、テスト項目を挙げる
・テストを実施する

先に述べた通り、最初にやってほしい「テスター」のお仕事は、この最後の「テストを実施する」を学んでほしいのです。

雑な計算ですが、覚えないといけないことはプログラマーの仕事の四分の一です。ずいぶんスキル習得の見通しが良くなりませんか?

実際のところ作業としても難しくないです。テストを実施するころにはやらないといけないことの「曖昧さ」はほぼ排除されています。

そして何より重要なポイントですが、少なくとも僕が関わってきた限り、「テスター案件からスタート」「開発をいきなりやる案件でスタート」を比べるとこんな傾向にあります。

開発をいきなりやる案件でスタート
⇒ 潰れて業界そのものを去っていく

テスター案件からスタート
⇒前者は元気にプログラマーをやっていく。プログラマーにならなかったとしても心は健康なままなんだかんだITと関わっていたりします。

なぜIT未経験はテスターからなの?

ここまででお分かりになりましたでしょうか?会社としては

なるべく易しい案件から始めて、潰れずにゆっくり成長してほしい

と思っているんです。

かといって無駄なことやらせるわけにもいきません。そこで

・仕様書をもとにして、設計を行う(設計はドキュメントだったり頭の中だったり)
・設計を基にして、プログラムを書く
・仕様&設計を基にして、テスト項目を挙げる
・テストを実施する

何度も出すこの箇条書きの一番下からやってもらうのです。どっちにしてもプログラマーの仕事の一部です。無駄にはなりません。

テストを実施したことがあれば、

・テストってどんなことするのかな?どんな観点で動作したと保証してるのかな?を少なくとも見たことはある。

・テストをするためのデータを作ることができる。

・再現手順のまとめを通じて、不具合の原因を切り分けることができる

といったスキルや知見が見につきます。そうするとテストの項目を作れるようになります。

仕様や設計からテスト項目が作れるとはどういうことか。仕様や設計を見たら、どう動くと完成かを自分で定義できるようになる、という事です。

ここまでこれば職業プログラマーとしての準備は万端です。自分で自信もって定めた完成の定義に沿って作ればいいだけですから。

しかもこれを、社員は給料をもらいながら、会社は売り上げを得ながらできるわけです。

潰れるような人はふるい落として、優秀な人だけを残し、超高単価な仕事だけをする、そういうビジネスモデルなら話は違うでしょうけれど、「誰でもできることを愚直にやってメシを食う」こういうことをやっていこうと思ったら、

・ テスター案件で指導の下、「プログラマーの仕事の一部」としてシステム開発の仕事に慣れる

・徐々にできる範囲を広げる

がやはり安全な育成方針だという判断になってしまいます。

いろいろ補足というか例外

とはいえ。例外はあります。

まずは良い方の例外。

詳しいアピールは各々の会社さんに譲るとして、言ってしまえば本当に「開発案件」から参画できてしまう会社さんも中にはあるかと思います。たぶんものすごい努力を積み重ねて、未経験タグを開発案件やりながら外せる体制を作ったのだというのは想像に難くないです。

あとは、その体制の恩恵はやりきれる人の為のものなので、採用ハードルは相当高い…はず。

そして悪い方の例外。

ここで語っているような「プログラマーの仕事の一部」としてのテストって何度も言いましたがそんなに難しくないんですよ。

長期のテスト案件の下働きとして、給料の安いエンジニアをアサインし続ければ単価も安ければ給料も安いです。多少利益は少なくても、無限にあちこちの界隈から入ってくる「プログラマー志望の未経験者」をアサインし続けては、テスト案件が嫌になって退職するまでテストをさせる、という体制づくりができてしまったりもします。

多分ですが、こういう会社さんはテスト案件の他にも、ヘルプデスクの下っ端案件とか、保守運用部門でルーチンワークをこなしてほしい案件とか、そういうのたくさん抱えてるんじゃないかと思います。

半年から1年くらいのテスター経験は僕はこれまで話した理由で、「ありえるな」と考えますが、2年も3年もテスターなのであれば、こういう会社であることか、当人のスキル&行動力不足のどちらかを疑うべきです。

悪い方の例外その2

僕はされたこともしたことも無いので、Twitterなどで時々聞こえてくる怨嗟の声しかわからないのですが…

経歴詐称

はい。いちばんやったらいけないやつです。経験者風味な経歴書を書いて開発案件に「ぶち込み」ます。未経験者に投資も教育もしないし、なんなら待機中の給与減額までありえます。エンジニアが飛ぼうが潰れようが痛くも痒くもありません。お客様も信頼重視よりはよくわからない深さの商流の案件を焼畑農業しますから、元より信頼を失うリスクとか考えていません。

開発はできるでしょうね。経験者って聞いてたのに使えねーな!というお客様の幻滅した声に耐え続けながらですが。誰が幸せになるんでしょうね?このスタイル。

事情は分かった。でもテスターはスキップしたい。開発案件に入るにはどうしたら?

これが一番気になるテーマかなと思います。でも敢えて言います。

自分で考えてください。

ヒントや作戦を立てる材料はここまで散りばめたつもりです。

開発案件をやるというのはどういうことかというと、曖昧な情報や分散した情報を形あるものに変えていく仕事です。

攻略wikiの手順通りにゲームをクリアしていく感覚は、テスト実施の次のステップであるテスト項目作りあたりからだんだん通用しなくなります

だから考えてください。自分の頭をフル回転させて考えてください

その上で、「今こういう境遇なんです。〇〇って行動に出ようと思いますけど、気をつけることとかありますか?」みたいに身近な人に相談してみてください。きっと、「どうしたらいいですか?」と聞くより、精度の高い回答が得られると思いますよ。

まとめ

・とにかく未経験者は想像以上の業務難易度に潰れていきます
・テスト実施だけなら業界未経験でも何とかなる。職業としてのプログラムは難しい
・会社としてはせっかく採用した人に潰れてほしくない。ゆっくりでいいから安全に成長してほしい。
・最短でプログラマーになるための「ヒント」だけはちりばめたつもり

おわりに

最後になりましたが、本記事はあくまで僕の観測と考察によるものです。違った角度からのご意見は大歓迎です。

コメント欄でも、Twitterでも、絡んでいただけますと幸いです。

Twitterアカウントはこちら


この記事が気に入ったらサポートをしてみませんか?