どうも、大里です。
今回は副業のはなしです。
(TOP画像だと1週間休み無く毎日働いてる感がありますが、そんなことはないです)
話題のツイート
友人が副業禁止されてる会社に副業がバレて二度と副業をしないよう上司に言われた。
— 茶とらーずの隠れ家* (@chatora_hideout) 2019年7月9日
言われた通り翌日から会社に行くのを辞めたら鬼電が止まらなかったとか。
友人いわく、何が副業かは俺が決めること。そして二度と副業をしないように言われたのでそうしたのだと。
それを聞いてメッチャ笑ったよww
少し前に副業禁止の会社に関するtweetがバズってましたが、ハウテレビジョンでは副業を全面的に推奨しています。 もちろん事業的に競合する会社はダメとか、体を壊すような無茶な働き方はダメとか一定の基準はありますが、あらかじめ申請した上で副業しているメンバーは結構います。
僕もその1人で、2018年11月から hey という会社で副業エンジニアとして働いており、主にGoで書かれたWebアプリ開発のお手伝いをしています。(厳密にはheyの100%子会社のコイニー社と業務委託契約しています)
開発をお手伝いしていたのは新たな決済サービスで、簡単にいうと「スマホがあれば、リアル店舗でツケ払いで買い物できる」というサービスです。
https://www.bynw.jp/www.bynw.jp
このプロジェクトは内密に進めていたheyの新規事業だったので、あまりおおっぴらにどんな事をやっているか話せなかったのですが、 去る5月にようやくプレスリリースも出て世間にお披露目されたので、副業エンジニアをやってみて分かったことなどをお話していきたいと思います。
副業をはじめたのはEMとしての経験値不足を補うため
ハウテレビジョンに入社してから丸3年たった2018年9月頃、僕は開発部長に正式に任命されました。世にいうエンジニアリングマネージャー(EM)というやつです。
それまでも開発チームの代表として、自分自身コードも書きつつ、開発案件の整理や計画・進捗の管理、エンジニア採用などやっていましたが、 EMになって一番大きな変化は他のエンジニアメンバーの評価、あけすけにいうと給料を決める立場になったことでした。
その時点で僕はエンジニアになって(=プログラミングを始めて)4年半。前職は受託やSESをやっている会社におり、いわゆるWeb系ベンチャーでの経験はハウテレビジョン1社しかない状態。
開発チームの中には自分より年上でエンジニアとしての業務経験も豊富なメンバーもいる中で、そんなエンジニアの評価についてメンバーや経営陣が納得する判断をできるかが不安が募ります。
副業を考え始めた最大の理由は、「EMとして自信を持てるためにより多くの経験値を獲得したいから」でした。
EMの役割とは何か?
少し話は逸れますが、EMの役割について私見を述べます。
EMに求められるものはチームごとに異なるかもしれませんが、僕が考えるEMの役割は
エンジニアメンバーの給料を上げること
に集約されます。
エンジニアメンバーの給料を上げるためには
- 開発チームが事業インパクトの高い開発をして成果を出す
- 成果の出る開発をスピーディーに進められる開発チームを作る
- 個々人の技術スタックが増え、技術レベルが上がる
などが必要で、これらを実現することで最終的に事業成長に貢献できると考えています。
つまり、EMとは開発チームに働きかけることで事業成長に貢献する人、という定義です。
より具体的には、開発ロードマップの策定、メンバーとの1on1、トラブル解決の旗振り役、メンバーの採用、開発以外の部署との調整ごと、予算管理などを担当していて、 『エンジニアのためのマネジメントキャリアパス』 という本の第6章中で紹介されている「技術部長」のジョブディスクリプションが近しいイメージです。
heyとの出会い
副業の話に戻ります。
heyとの出会いは、2018年夏にWantedlyでスカウトを貰ったことからでした。
僕は転職するつもりが無くても面白そうな会社からメッセージを貰ったらカジュアル面談しに行くことがあります。 冷やかしのようで気が引けますが、他社の開発チームの内情を聞くこと自体が自分の糧になったりすんですよね。
そんなこんなでheyに話を聞きに行った所、
- Goで開発してる
- 新規事業をやろうとしてる
- チームメンバーが優秀な人ばかりで、雰囲気もめちゃくちゃ良い
- オフィス内にタダで飲めるお酒が大量に置いてある(!?)
と、自分にとって魅力的な条件が揃っていました。
とはいえ当時は転職という状況にはならなかったため、ダメ元で「副業という形でチームに入れてくれないか」とコイニー代表の佐俣さんにお願いしたところお許しを頂けることになりました。
どんな感じで副業してるか?
まず、ハウテレビジョンでの仕事は引き続き週5フルコミットでやっています。
今年の4月 晴れて東証マザーズに上場したハウテレビジョンですが僕が副業を始めた2018年11月時点はまさに上場が決まるか決まらないかという大事なタイミングでした。
UXの改善、新商品の開発、セキュリティ課題への対応、上場に備えてのコーポレートサイトのリニューアル、エンジニアメンバーの採用…などの仕事が山ほどある上に、EMとしてメンバーを評価するという重責も担うようになったので副業をするからといって本業を疎かにしてよい状況では全くありませんでしたし僕もそうするつもりはありませんでした。
なのでheyの業務は月32時間を目安に基本 土日に行っており たまに平日の早朝や帰宅後にもやるようにしました。
開発マシンは私物のMacで自宅作業。完全にフルリモートの副業という感じです。
hey開発チームとのコミュニケーションはSlackやGithubで行っており、週に1回 appear.in を使って10分程度のオンラインミーティングをして開発進捗やプロジェクトの状況シェアをしています。(これは平日の昼休憩の時間でやってます)
あと、ハウテレビジョンのオフィスからheyのオフィスまで歩いて12分くらいなので新しいメンバーが増えたときなどには一緒にランチに行ったり、リリース後の打ち上げに参加させてもらったりしてます。
業務委託費用について。始めは稼働開始と終了をSlackで報告する方式にして実働時間分を請求するスタイルにしていたのですが、スキマ時間で開発することも多く報告が煩雑になってきたので、最近は担当するIssueごとに事前に見積もり工数を出してその月にPRを出したIssueの工数分を請求するスタイルに変更しました。
どんな開発をしてるか?
「ツケ払い」はWebアプリケーションで、お店で買物をする購入者向けのスマホ画面や、お店のスタッフが決済を登録する画面、運営側が使う管理画面などがあります。
技術スタックは、
- Go
- Vue.js
- Docker
- MySQL
- TravisCI
などを使っています。
話せる範囲で具体的に担当したIssueを挙げると、
- 管理画面の登録・更新機能に入力値バリデーションを追加する
- 店舗担当者がログインを一定回数失敗した場合にアカウントをロックする
- 返済が滞っているユーザーを利用停止にするための管理機能
- 運営向けの管理画面でページングのコンポーネントを実装する
- GoのErrorハンドリングでerrorsパッケージでWrapするようにする
などがあり、やや大きなものから細かいものまでやっています。
↑は自分が担当したIssueがリリースされた時のSlackの様子です。
副業をやってよかったこと
Goと言えば並列化ですが、2つの開発チームに所属することで得られる経験値も倍増しました。
技術面での経験値が増えた
Goは外資就活ドットコムの開発でも使っていますが、使っているフレームワークやライブラリ、アーキテクチャなどは異なるため、自分の中の引き出しが増えました。 知らなかったGoの挙動を発見したこともありました。
また、決済という事業ドメインも外資就活ドットコムというメディア事業・人材事業とはまったく異なり、その裏側に登場する技術も普段触れることがないものが多くあります。
たとえばツケ払いではSMS送信の機能があるのですが、外資就活の開発では今の所SMSを使う場面はなかったので、もし今後SMSを使って何かしたくなった時に役立ちそうです。
マネジメント的な経験値も増えた
- GithubのIssueにテンプレート機能があること
- commitの分け方についてのポリシー
- コードレビューについてのポリシー
といった開発寄りのノウハウや、
- 副業エンジニアとの付き合い方
- どんなIssueをお願いできるか
- どのくらいの頻度でコミュニケーションが必要か
などを学ぶことができました。
実際、7月に就業体験目的で副業エンジニアの方を1ヶ月だけ受け入れる機会が発生したのですが、その時にも自分が副業をしていて得た知見を活かすことができました。
まとめ
実際、エンジニアとしてもEMとしてもまだまだ修行が足りませんが、副業をすることで経験値を増やせることは間違いないように思います。
最近では転職する前に副業してミスマッチを防ぐようなやり方をしている人も増えてきました。
ハウテレビジョンでも副業エンジニアの受け入れは積極的に進めたいと考えているので、GoやReact、ReactNativeなど書きたい!!という人がいましたらいつでもオフィスに遊びに来て下さい 😀
募集しているポジション一覧は以下をご覧ください。