QAエンジニア

優秀なインターン生でも経験不足等で踏み抜く【落とし穴】をきっちり拾えるQAエンジニア

株式会社ユニエイム
Python, AWS, Flask, Redmine, sqlalchemy, TypeScript, Python3, Vue.js, React, 画像解析, jooto, nuxt
東京都 / 白金高輪駅400~600万円

業務内容

責任、任される仕事内容

落とし穴って拾えるものなの?
そう思ったあなたは正しいと思います。変な日本語ですね。
でも、あまりニュアンスをうまく伝えることができなかったので、このような表現になってしまいました。
もちろん「【落とし穴】を拾う」というのは比喩表現であって、以下のような役割を考えています。

- 単純な誤りを確実に検知し、何が原因で生じたのかをコーディングした本人やチームと共に考察し、根本対策を実施する。
- コーナーケースではあるが、しかし実現してトラブルになるようなコードを確実に検知し、単純な誤り同様原因の考察・根本対策を実施する。

※ここでいう根本対策というのは、必ずしもコードそのものを正しい形に修正する作業をQAエンジニア自身が行うという意味ではなくて、問題の根本的な原因を把握した上で「それを修正すべき人が」直接的に問題の修正を行うと同時に、今後個人・チームがともに繰り返さないようにする、という事を意味します。

もちろん、単に上記のような対策を行うことだけがQA業務であるとは思ってはおらず、攻めのQA、つまり純粋にUXを向上するというような業務も、ぜひお願いしたいと考えています。
総じて、プロダクト全体の広義の品質を高める、そのような業務を主業務として責任を持って取り組んで頂ける方を探しています。

なぜそれをやって欲しいのか

海外大学に通う大学生が、夏休みに2〜3ヶ月ほど帰省してくるって、ご存知でしたか?
Pythonでインターンの求人を出したところ、そのような境遇の大学生からの多数の応募を受け、以前の我々はそうしたインターン生を中心に業務を回していました。
これは非常に効率がよく、というのも彼らは多くの場合地頭がよく、単位時間に処理できるステップ量が多いため、「ある程度の思考や設計が必要であるものの、研究開発ほど複雑ではない」という業務をテキパキと大量にこなしてくれました。
しかし、一人前のエンジニアとして見た時には抜けてはならないこと、例えば類似処理に対する漏れのない横展開や、他の書き方と平仄をとること、できる限り複雑度を下げること、安全なリファクタリング、といったような部分については、業務としての経験も浅いので、引っかかる場合があります。
厄介なのは、彼・彼女らは優秀なので、並大抵の落とし穴にははまらず、やや深めの落とし穴に初めてはまる場合がある、ということです。
本当はしっかりとテストを行うことの意味や効果をきちんと伝えたい、と思いながらも、その他の膨大な新機能開発などに押されてしまい、テストの部分に関してはどうしてもインターン生をうまく育てきれていない部分がありました。
わたし( @sasanquaneuf )自身が就職してプロとしてのコードを書くようになってから、最も感銘を受けた部分がテストの難しさであり緻密な作業の難しさなので、それをきちんと維持して伝えられるような人を、とても求めています。

エンジニアリング以外の仕事・姿勢への期待

プロダクトやユーザー視点での提案・コミット
強く期待する
期待する
どちらでもない
期待しない
全く期待しない
ビジネス視点での提案・コミット
強く期待する
期待する
どちらでもない
期待しない
全く期待しない
ピープルマネジメント
強く期待する
期待する
どちらでもない
期待しない
全く期待しない

求める人

必須のスキル・経験

- QAに関する見識があり、ユーザー目線できちんと徹底的に考えられる。
- 仕事の品質に対してこだわりがあり、ムラがなくなるようにする努力を定常的に行っている。

あると望ましいスキル・経験

- あまり詰問せずに、しかし的確に問題点を捉え、伝えることができる。

こんな人は向いていないかも

- 雑な人(うわっ、わたし...?)

労働条件

雇用区分正社員・契約社員
新卒 / 中途中途採用
勤務制度裁量労働制
勤務地東京都港区南麻布3-19-23 オーク南麻布ビル 13F
待遇・福利厚生

【保険】
各種社会保険完備

【諸手当】
交通費一律支給
自転車通勤手当・徒歩通勤手当あり

【福利厚生】
MVP賞(半期)
服装自由
社員旅行(実績:グアム、シンガポール等)
無料ウォーターサーバー
転勤無し
BGMあり(自由に選曲できます!)

【その他】
PC貸与
マッサージ機
勉強会実施
スーツケースの格安レンタル制度

求人の特徴

PC選択自由

副業可

休日・休暇

完全週休二日制
年末年始休暇
夏季休暇
特別休暇

試用期間

6ヶ月

企業情報

会社名株式会社ユニエイム
資本金

3000万円

設立年月日

2007年6月21日

代表者氏名

原口 宇志

従業員数

30人

本社所在地

東京都港区南麻布三丁目19-23 オーク南麻布ビル13階

何をやっている企業か

株式会社ユニエイムは2007年に設立。「心と歴史を動かす」を理念として、POSシステムや電子チケットシステムの企画、開発、販売、レンタル、運用業務を主格事業として展開しています。店舗機器や店舗システムをお客様のニーズやシーンに合わせてご提案しながら、様々な業務システムで、店舗運営・イベント運営をサポート行っています。

企業からのメッセージ

◆人と人の繋がりを作るサービス
世の中はすべての場面で人が機会を作り、人と人が繋がって成り立っています。システム開発というと、パソコンに向かって技術を振るうだけと思われがちですが、私たちの中で揺るがないものは、人と人との繋がりを大切にしながら事業を行うことです。どれだけ効率的なシステムや製品の開発を目指していても、変わらないことです。

開発チーム情報

開発チーム名

チケットビジネス開発チーム

開発チームメンバー

@sasanquaneuf座敷わらしになりたいと思いながら仕事をする係

なんでも屋みたいな事をやっています。 2017年にインフルという会社をCTOとして創業し、インフルで作ったWebアプリをそのままユニエイムで引き継いで、サービス統合などを経てイベントマネージャー等の開発を行っています。基本的にはチケットビジネス開発チームのリーダー・マネージャーという位置付けです。 イベントマネージャーにおいて自分自身で書いたコードはおおよそ1/3、すべてのコードのレビューを行い、AWSのインフラ管理も担当しています。 チケットビジネス開発チームの採用も担当していて、一次面接は原則として私の担当です。 2018年には、多少の難産を経て子供が生まれました。この時は一週間ほど会社からお休みを頂いたりもしました。大学の同期と旅行や飲み会に行ったりもしていて、実は意外と遊んでいます。 2019年はいくつかの飛躍がありましたが、それに伴い少し無理をしたので、社内の体制を整えながら良いチームを目指そうとしているところです。

@yu-ichiroコミットログに名前を残し、落とし穴にはまらないようにする係

2017年からインターンとして開発に携わっている大学生です!タスク表に載っている問題をぷちぷち潰したり、相談しながら新しい機能を実装したりしています。プライベートでもプログラミングをしたりサーバーの運用をするのが趣味です。音楽もやったりします(ギターとかピアノとか)。求められる品質や、スピード感、コンプライアンスなど、意識しないといけない部分は色々ありますが、趣味でやっていることの延長で楽しみながら開発ができています。便利だ!と言ってもらえるようなサービスをぜひ一緒に開発しませんか?

担当プロダクト

イベントマネージャーhttps://uniaim.co.jp/eventmanager

プロダクトのリリース日

2019年2月

プロダクトの説明・成し遂げたいこと

「チケット作成」「販売」「来場者管理」「データ解析」「電子決済機能」までイベントの運営を一括サポートする、ワンストップデジタルチケットソリューションです。

もともと、ユニエイムは
・レジのレンタル
・イベント運営
という2つの業務の軸を持つ事業会社で、ITサービスの提供というよりは実際に現場で人が動いたり機材の提供・設営などといった事を主業務としていました。
このイベント運営の事業において、特に受付に特化したサービス「イベントマネージャー」を開発運用していく中で、受付だけに限らず、【イベントにおけるあらゆるユーザーの体験を著しく向上させると同時に管理運用を簡潔にする】というwin-winのトータルソリューションに対して需要を見出し、その開発改善を行っています。

理想を端的に述べると、入場チケットさえあれば、会場でやることすべてができる。
そのようなあり方を模索しています。
それは例えば、会場に行く前にチケットを購入できる事であり、それもダフ屋や悪質転売のようなものの影響を受けずに正しい価格でチケットを購入できる事であり、逆に参加ができなくなったときには興行主も購入者も損をしない方法で適切な"転売"ができることであり、そうして購入したチケットを失くさずに受付できることであり、チケットを用いて付属サービスの購買ができることであり、チケットによって自分の席を迷わずに選べることであり…
その他煩わしい一切のことから開放されながらも、特に運営側も負荷を抱えることがない。
より「イベントそのもの」に興じることができ、世界観を損なうことのない、例えば無意味には並んだりすることもない。
究極的にはそのようなあり方を目指しています。

もちろん、すべてを一足飛びに解決できることではないですし、例えば受付の速度などというのは華々しいAI等と比べてとても地味な世界で、必ずしも華やかな事ばかりではありません。
現場の通信環境が...利用者の通信環境が...といった、ある側面から見ると"本質的"ではない、あるいは"セクシー"ではない課題がたくさんあります。
でも、縁の下の力持ちとして、関わる皆様の全てに確かな価値をお届けできるような、そのような仕事をしています。

自動化していること

デプロイ

継続的に実践していること

テストについて

高いテストカバレッジを目指している
テストコードを当たり前に書いている
サービス運営上またはビジネス上重要な部分についてのみテストを書いている
基本的に手動でテストしている
テストを書く必要がない・または少ないプロダクトだ

技術的負債について

技術的負債の返済を重視し、迅速に返済している
定期的に技術的負債の返済をしている
既存実装に手をつけるタイミングで必要に応じて技術的負債の返済をしている
現在は優先度が低いため技術的負債の返済をあまりしていない
技術的負債の返済をする必要がない

コードレビューについて

設計に踏み込んだコードレビューをしている
可読性を意識したコードレビューをしている
バグが出ないようにコードレビューをしている
優先度が低くあまりできていない
体制、環境上できていない

チーム全体での開発の進め方

営業スケジュールなどをベースとして必要なタスクを洗い出し、切り分けたものを順次担当者が消化するという形を取っています。
具体的には、Jootoにタスクを列挙して、優先度で少し色付けをしたものを、担当者が順番に消化しています。
ただ、QAに関してはこの枠に必ずしも適合する必要はないと思っているので、必要であれば新しいフロー等も検討します。現状の業務のそれぞれで細かくQA的な評価ができるようにするのか、新しくQAに関するフローを作るのか、というような事から相談ができればと考えています。

技術面でのアピール・課題・考え方

言語としては、Python(3.7)、JavaScript/TypeScriptが中心です。
有志が十分集まれば、Nim等でも良いかなという思いはあります。
コードを書くことが好きな人だけが書いているので、最低限(?)の部分は担保されています。
逆に言うと、「コードを書くことがすごく好き」ではない人としては、開発そのものに関しては参画がしにくいと思います。
ただ、メンテのしやすさという意味においては、単純に書くことが好きな人だけだと落ちる部分があるかなと思っているので、その辺りをサポートしてもらえるQAエンジニアは歓迎します。

ある程度複雑度の低いコードの集合体として運用をしようとしていますが、決済など部分的に複雑になってしまっているものもあるので、最適化をしたいという思いがあります。
また、Jinja2を用いて書かれている旧来からのJSを用いたVueに関しては、テストを書きたいというような思いがあります。

開発で最も優先しているのは、「お客様が実現してほしいと思っている機能を、確実に充足すること」です。もちろん、論理的に矛盾したお客様の要望や、既存処理から著しく外れるような内容については即座に実装をするという事はしませんが、極力お客様の思いを汲み取って、相談をしながら良いサービスが提供できるようにしています。
そのポリシーもあって、運用の属人化などが生まれている部分もあり、それを解消して今よりももっと誰でも保守ができるようにしていくことが、重要な課題かなと思っています。

開発チームからのメッセージ

◆マネージャー的な仕事をしている人より
いま取り扱っているイベントマネージャーというサービスは、実はチケポンという旧サービスのソースをそのまま使っていて、リポジトリ名も"tickepon"です。(変更すると本番環境に多少の影響があるため、変更していない…こういうのも"技術的負債"なのですかね?)
事業をはじめてほぼ2年半、色々な案件があり、色々な機能を増やして来ましたが、多くの方に「機能が豊富でかゆいところに手が届く」と言って頂きました。
しかし、個人的には、ようやく"スタート地点"まで来れたかな、というような気持ちになっています。
まだまだ、やりたいことが山程あるので、一緒に進められる人を切実に探しています。

◆インターン生の感想より抜粋
自分だけで開発していては気づかなかった開発をする上で、意識すべきことを学びました。開発では今あるコードに変更を加えることが多いです。そのため、その処理と変更の影響範囲を理解することが重要で、理解しやすいコード、変更に強いコードが大切だと意識するようになりました。そして、変更が既存の機能に影響を与えていないか、変更が思い通りのものになっているか確認するために、テストがとても重要であることも認識できました。開発でミスをしないことは大切ですが、そのミスを防ぐための環境作りが重要であることを経験を持って学びました。

QAエンジニア

優秀なインターン生でも経験不足等で踏み抜く【落とし穴】をきっちり拾えるQAエンジニア

株式会社ユニエイム