###はじめに
2018年が終わりました。昨年の私のキャリアの中でもっとも大きな出来事は「転職をしたこと」、特に「テストエンジニア」から、過去に就業していた「開発エンジニア」に戻ることにしたことでした。
年末年始で時間があるので、振り返りもかねて記載しておきます。ポエムですがご容赦ください。
###私のバックグラウンド
新卒以来十数年、Javaでのシステム開発をしていました。要件定義、設計、実装、テストもろもろほぼ工程全体の経験を積み、プロジェクトで開発リーダーをするようになっていました。
スキルもそれなりに身につけたつもりでしたが、他の工程に比べてテストに関してはトラブルが多くなかなか上手く遂行できませんでした。それをきっかけにJaSSTに行ったり、参考文献にされている技術書を読むようになり、2015年に
「ソフトウェアテストにもっと本格的に携わりたい」
と思い立ち、ソフトウェアテスト(第三者検証)専門の会社に中途入社し、2018年夏まで、テストエンジニアとして勤務しておりました。
###結論を先に書くと
テストエンジニアからキャリアチェンジをすることになった最大の原因は
「私にはテストエンジニアが合わなかった」
「テストエンジニアになったらテストに関わる機会が減った」
と言うことに尽きました。相性の問題なので解決に感情面での負荷が想定され、そんなことをしてまでテストエンジニアを続ける意味を感じなかったので、もともとやっていた開発のエンジニアに戻ることにしました。
なお、客観的に見てどちらに優劣があるわけではなく、また私の経験や就業内容がすべてのテストエンジニアに当てはまるわけでもありません。もっと違う形でテストに携わっているエンジニアもいらっしゃると思います。飽くまで、私個人の話です。
###テストエンジニアを経験してよかった点
####知識やスキルを得られたこと
ソフトウェアテストに関しては「さすが専門会社」と言うようなスキルや知識を得ることも出来ました。オールペア法や観点表に基づくテスト設計などは書籍で読んだことはあっても業務で実践する機会はなかったので、実際に使ってみた際の効果の高さ、コツ、逆に扱いづらい点などを身を以て体験できました。テストエンジニアではなくてもソフトウェア開発、保守に関わるのにこうしたスキルや知識はとても有益でした。
####スキルの高いテストエンジニアのいるプロジェクトで仕事が出来たこと
それまでの職務では存在しなかった「テストマネージャ」と言う人と仕事をする機会も得られました。また、専門会社と言うことでエンジニアのテスト遂行、設計、実行のスキルもそれまで携わった会社の中では抜群に高く、「社内標準」とされているテスト設計技法もとても高度なものでした。勉強会やノウハウ、スキルの共有を目的にした発表会のようなものも頻繁に開催されていました。
###テストエンジニアをやめることにした理由
####主体的にソフトウェア開発に携わることが出来なくなったこと
第三者検証では他者(顧客)のソフトウェアの検証を行うことになります。特に私はSES(準委任契約下の客先常駐作業)でテストに携わっていたので、基本的に勤務先は客先で、客先のプロジェクトに単独1もしくは数名の同僚と共に携わることになります。そう言った環境では弊社2の流儀や技法より、顧客側で整えた様式、工程、事情が優先されるので、弊社に優れた技法があっても適用できる機会は限られていました。
また先述の通り私は小さなプロジェクトながらも上流も実装も経験があり、渡された設計書や要件定義書の疑問点や不明瞭点、その時点で明らかな不具合について指摘することもありました。ですが、(私の参加したプロジェクトの特性かも知れませんが)SESのテストエンジニアの立場では他工程の欠陥に起因する指摘を歓迎されない傾向がありました。端的に言うと
「元請けの正社員で判断します」
「テストに専念してください」
「分かりました確認します(解決するとはいっていない)」
と言うことです。大規模プロジェクトで分業を徹底するとそうなるのは理解できますが、特にマネジメントやリーダーのスキルが高くない状況でそうなると、**「前工程で無視された指摘をテスト工程で改めて大量に指摘し、テストのスケジュールが逼迫する」**と言う、何とも無駄な感のある状況になります。もともと開発リーダーで工程全体に目を配るのが職務だったのもあり、この状況が私にはかなりのストレスになりました。(優秀なテストマネージャーがいるとこういう状況にもならないのかもしれませんが)
####会社から求められるスキルが自分の身につけたいスキルと異なっていたこと
先述のような点から最初の転職のきっかけになった「テスト工程の遂行能力不足」を解決出来ず、テストスキルが向上している実感がない状態だったのですが、弊社から私に求められるスキルは大きく分類して
- 弊社のメンバーとして勤務している協力会社社員のとりまとめ、リーダーをすること
- 担当範囲や派閥の縦割り構造になった顧客の間を取り持ち、顧客の業務やソフトウェアの流儀を身につけながらプロジェクトの潤滑油となること
の2つでした。
前者に関しては1社目の時代から多重請負(SESなので厳密には違いますが)にあまりいい印象がなかったので、それを会社から求められることには少なからぬ反発がありました。さらに、こういうスキルを求めてくる割にはテストスキル以外のスキルの習得には不熱心で
「リーダー任務を目標にするからにはリーダーシップ研修とか行かせてもらえるのか」
と尋ねると、答えはノーでした。
また後者に関しては、確かにテストエンジニアはテスト設計のために開発エンジニアに仕様や要件を聞いて回る事が多いので、コネを作って情報を集めるのは確かに便利なスキルではあるのですが・・・それをメインスキルにされるのはどうも釈然としません。**開発エンジニアが仕様書その他のドキュメントを十分に書けるような体制を築けばいいだけでは?**と言う疑念がどうにも払拭できず、かといってSESの立場ではそんな提案も受け容れられず、
「それなら開発に戻ってそういう開発チームが作れるようになろう」
と言う結論に至りました。
###最後に
上記のような点は既に私以外からも指摘されている点もあり、弊社内でも「テストエンジニアの視点を上流工程に組み込むような体制作り」などに取り組んでいたそうです。また繰り返しになりますが、私のような働き方や状況がテストエンジニアすべてに適用されるわけではなく、退職する際に社内でのキャリアプランの変更や担当顧客の変更なども提案されましたが、SESで自社を離れているのが長かったため他の業務と言われても「よく知らない」「今更」な感覚が払拭できませんでした。
現在では以前と同じように開発工程全体が担当となりましたが、以前よりもテスト体制やテスト設計書のフォーマットの検討、テスト計画をする機会が多くなりました。そういったところで前職での経験と知識はとても役立っていますし、いい経験が出来たと思っています。
-
厚生労働省ガイドラインによると単独SESは偽装請負に当たるそうです。https://www.mhlw.go.jp/file/06-Seisakujouhou-11600000-Shokugyouanteikyoku/0000078287.pdf ↩
-
既に退職している会社のことですが、わかりやすいかと思って「弊社」と記載しています。 ↩