入社早々テストコードを駆使する男|人物定点観測 vol.2

入社早々テストコードを駆使する男|人物定点観測 vol.2
■ 店頭より得で、予約しやすいオンラインショップ。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE

俯瞰視点で社内サービスを検証し続けるからこそ行える“人物定点観測”。
品質管理グループが送る集中連載企画の第2弾は「テストコードを駆使して社内サービスの裏側を検証する男性」のインタビューだ。

今回の主役の名は「大友」。
なんと、まだ入社三ヶ月も経っていないところで、すでに第一線で検証業務を行っているのだ。
これまでの経験と入社後の努力を怠らなかったからこそ、現在のポジションを勝ち得ているわけだが、気になるのは彼のバックボーンとモチベーションの維持方法について。

普段は社内サービスの裏側を暴く立場にあるが、今回はそんな彼の裏側を暴いてみたい。
※「2回目も内輪かよっ」という話ですが、今後はグループ外メンバーも紹介予定です。。。

<バックナンバー>
vol.1 Selenium構築で活躍する女性

入社ほどなくしてサービスの裏側を見る

Q.現在の活躍は目を見張るほどですが、これまでの職歴を教えて下さい

プログラマーや開発と運用保守を交互にやっていた感じですね。
直近ではLotusNotesでの申請システムの管理で、年度毎のデータ更新とかをしていました。それは自社内で使うシステムですね。たまに親会社が適当なデータを送ってきたりすることもあって、そんな時は徹夜作業が当たり前の過酷な現場でした。

それ以前は変更管理を一元的に統括するシステムを管理していましたね。商品名がすでに商標を取られていて、そのままでは世に出せないということで、改名案のアイデア出しまで対応(笑)。もはやプログラマーというよりは“何でも屋”さんですね。

より“何でも屋”さんという意味では、バイトで八百屋もやっていました。
朝5時に始まって、8時に終わるような仕事だったのですが、その頃からPC関連の趣味は持っていて、帰宅後に自宅でゲームをしたり、ゲームを作ったりしていました。

Q.そもそもPC関連に興味を持ち始めたキッカケは?

一番最初は友達が作ったゲームを見て、こりゃすげぇと思ったのがキッカケです。それからはゲームをやるよりゲームを作るほうが楽しくなったし、徐々にゲームそのものの作り方や仕組みに関心が向いてしまいました。
ただ、情報系の先輩からは基本的なことから学んだ方が良いとアドバイスをいただき、専門学校に通って、あらためて基本のコーディングを学びました。

image05

作成したゲームのエフェクトの一部。調整に調整を重ね、ゲームに組み込むのだそう
©Effekseer Copyright 2011 S.Sawada

Q.品質管理グループに所属して、いきなりサービスのテストコードを書くことになりましたが、最初どのような印象を受けました?

最初は検証シートを作成してサービスの特性を把握して、そこから検証作業を行うようなイメージで参加しました。それだけに、いきなりテストコードを書いてくれと言われて驚きこそしたものの、テストコードを書く作業の方が検証シート作成よりも、サービスの特性を深層から知ることができる方法だと思ったので、結果的には願ったり叶ったりといった感じでした。

Q.テストコードを使う上でSeleniumの使用は避けれは通れないものですが、そもそも知っていましたか?

Seleniumの名前だけ知っていましたが、実際に自分で触ったことはなかったです。なので、ショーケース・ティービーに入ってから初めて触ったことになります。
でも、インターフェースとしては分かりやすい仕様だったので、そこまで苦労はしなかったです。

Q.実際、サービスの仕様に触れてみてどのように思いましたか?

ソースコードを見ただけでは、どのような挙動が“正”なのか分からず、どうしても追いかけるのに時間がかかってしまいましたね。それでも過去に勤めていた職場ではそもそも仕様書がなく、ソースコードを読みとくしか仕様を把握する術がながったのですが、ショーケース・ティービーではそれぞれのサービスにそれぞれの仕様書があったので、以前よりは把握がラクだったのは事実です。

仮に仕様書を読んでも理解できなかった箇所は、担当開発者の座席が近く、すぐに直接仕様を聞ける環境だったので、非常に助かりました。
通常、検証作業は開発者の粗を突く業務になりがちですが、直接コミニュケーションを取る機会が多かったので、お互い険悪なムードになったり、誤解を招いたりすることはなかったですね。

テストコードを書くことで、サービスの産みの苦しみが分かる

Q.テストコードを書いてみて、サービスにどのような印象を受けた?

やはり全体を見る限りでは、書いてる人が違うんだろうなというのが随所にありましたね。サービスという大きな観点で言えば、共同作業は必須でしょうから仕方がありませんよね。

そういったパッチワーク的なソースに対して、どこまでテストコードで吸収してよいものかは悩ましいところでした。

面白いところは、私はサービスリリース時にこの会社に在籍していたわけではないのですが、このサービスがたくさんの人によって作られ、なんとか一つにまとめていったという過程が見受けられました。今では一つのパッケージとして成立してはいますが、開発自体は手探りで難航したんだろうなぁと。

ウォーターフォール型の開発は最初に決めた仕様に沿って順次作成していくので、ソースこそパッチワーク的になったとしても、肝心の成果物は統一感を出しやすい手法だと思っています。

これをまとめ上げたプログラマーの、『このソースをなんとかしてキレイにまとめていきたい』という意志が滲み出ていましたね(笑)。

Q.そんなパッチワーク的なソースに対して、テストコードを書く際に気をつけたことは?

初めてソースを見た人がテストコードをまとめた結果でよくあるのは、方針を間違ったまま進めてしまうとテストコードとして使えなくなってしまうことです。
私が書いたテストコードが、いつか他の誰かが使うかもしれないということを念頭に置き、後々影響しないように作るのに気を使いました。

Java自体は遺恨を残さないという仕様なので、その辺を意識しながら作業するのに苦労しました。それでもコード単体に読みづらい箇所はなかった。とてもキレイに書かれていたと思う。

Q.こう書いて欲しかったなぁ、なんて思ったことはありましたか?

修正した箇所にはちゃんとメモがあり、どれをどう修正してどうしたかったのかが分かるようになっていましたので、とても心を打ちました。

だってそのメモを書いた時は、当然ながら私の存在を知らないで書いていたわけで。出来上がったサービスには無関係かもしれませんが、裏側を覗いた立場としては、誰に読まれるか分からない“ボトルレター”的な感動もあったりします(笑)。

Q.初めに検証したサービスで、もしコードを書いてくれと言われたらやりたいですか?

それはもう、喜んでやりたい。

今ではある程度の仕様を把握できたので、少しは戦力になるんじゃないかと思っています。元々、リファクタリングは大好きでしたし、裏側を見たことでサービスに愛着も感じてきたところですので、抵抗感なく書けるのではないかと。

かつての仕事でやった内容でも、後になってから「もっとこうすればよかった」みたいなことはあります。商品こそ異なりますが、そういった後悔の念を払拭できるかもしれませんね。

Q.将来的にやってみたいことはありますか?

使う人にとって「これはいいよね」と思ったものをディレクションしてみたいですね。

image04人物定点観測:ファイル002
大友
2016年4月、ショーケース・ティービーに加入。
インタビュー内にもある通りゲーム好き。テニス一家の長男として生まれ、本人も時々テニスをするのが好きなアクティブな一面も。ただし、母親がシニアクラスのテニス大会で活躍し、6つ下の弟もテニス部顧問と“現役バリバリ”の家庭環境の中で、テニスの腕には差が開く一方とのこと。

大友くんの過去のブログ一覧はコチラ

■最新のiPhoneの購入・機種変更なら店頭より得で、予約しやすいオンラインショップ。
機種の頭金や使わないオプションパックをつけて年間何万円も損していませんか?
オンラインショップなら故障のサポートもしっかりしていて最低限の費用。待たされることもありません。
 → ドコモオンラインショップ
 → auオンラインショップ
 → ソフトバンクオンラインショップ

最新のiPhoneを得して乗り換えるなら、最大6万円のキャッシュバックがある
→ SMARTPHONE STORE
がお得です。