チームでコードを書くようになるまでにやったこと

http://www.irasutoya.com/2017/11/blog-post_731.html

こんにちは。本投稿は「コネヒトアドベントカレンダー」の13日目の記事です。

僕はMediumがとても好きなのですが、周りにあまりユーザーがいないので今回は布教もかねてMediumからお送りします。

今回はほぼ1人で回していたwebフロントの実装を少しずつ周りのエンジニアと協力しながらお願いしていけるようになるまでの話をしていきます。


これまでのフロントエンド開発体制

僕がコネヒトに入社した頃は開発メンバーも少なく、メンバー全員がサービスの全部を見てやっていたので、誰が何をやっているというようなイメージはあまりありませんでした。みんなが何やってもできる、に近い状態でした。

その後、会社もサービスも大きくなって人数が増え、アプリ/インフラ/デザイン/バックエンド/フロントエンド、のようにやることを絞ることで専門性を上げていく方向にシフトしていくようになりました。今までのやり方では個人のキャパにも限界があるでしょうし、これはとてもいいことなのですがフロントエンドの実装をとにかくいっぱいやりたいな!というのはたぶん僕だけだったのでそこからは主に僕が設計と実装をして、それを誰かにレビューしてもらうという日々が続きました。

今では更に規模が大きくなってメンバーが増えてきたため、遂に要求されるすべてのissueを1人でこなすことも難しくなってきました。このままだとバックエンドやモバイルアプリの開発と足並みを揃えられなくなる!まずい!と思い、僕の持っている仕事を分散するべく今いるメンバーの中で複数人で開発していくことに励むことにしました。

何をやったか

1. 社内ドキュメントにTipsを残し続ける

JavaScript周りのTipsをとにかく思いつく限り書きまくりました。ES2015以降のコードの書き方、Reactなどの導入しているライブラリの使い方、Fluxなどのアーキテクチャの概要からサービスの仕様書に近いようなものまで、プロダクトにコミットしていくための知識や躓きそうなことをひたすら書き出しました。書くことを忘れてしまわないように思いついた瞬間にSlack上のBotからタイトルだけつけたメモを作れるようにして、後から時間を作って書くことを習慣にしました。

いつもこんな感じでタイトルだけで中身は空のメモを思いつき次第作っています

こうして沢山のメモを作ったことで「フロントエンドやるぞ!」と思ってくれたメンバーがこういうことやりたいんだけど、と言ってくれた時にここにこういうメモがあるから役に立つと思うよ!と教えられるのでお互いにハッピーかなと思います。

2. カンタンなissueから始めて、レビューは詳細に返す

ES2015やReactにまだ慣れていないメンバーもいるため、まずは影響範囲の少ない簡単なissueの着手からお願いしていく、もしくは自分で出来そうだなと思ったものを拾ってもらっています。

詳細に返す、というのは例えばJavaScriptやCSSで書かれたコードに対して「こういう書き方にしたほうがいいよ!」というコメントをしたい時にMDNのリンクを貼って更になんでそうすべきなのか?の解説を付け加えるような感じです。

近年のフロントエンド開発は技術の移り変わりのスピードが激しくてとっつきにくいなぁ、というイメージを持っている人も多いと思うので最低でも僕が理解できている範囲に関しては厚めにケアしていきたいなと思っています。

仕組みを理解してもらった上で次に活かせるようにしてほしいですし、フロントエンド開発は楽しいなと感じてもらえるように特に学び始めたばかりのメンバーにはレビューを丁寧に、コメントも厚めに返すようにしています。

3. 気になることを気軽に聞ける環境作り

これは僕が始めたわけではないのですが、対面で質問してもらう機会ができたり、学んだことをアウトプットしたりしてもらったりすることで僕がそれに対して回答やフィードバックをすることができるようになりました。

気軽にQAできる状態ができたことで周りのメンバーの成長速度の向上にも繋がります。自然とこういう状態が生まれてくるのはとてもありがたく、環境って本当大事ですね…といつも感じています。

やってみた結果

変わったこと

まず、僕がフロント実装に対して首を突っ込む回数が減って、実装もレビューもお任せできる状況が確実に増えました。他にも自発的にフロントエンド実装のissueを拾ってもらえることが増えて、個人的にとても助かっています。思いやりと成長するぞ!という気持ちがなければこうはならなかったので開発部の皆さんには感謝しかありません。

変わっていないこと、今後やりたいこと

新しいサービスやアプリケーションの立ち上げ時に行うフロントエンドの構築などは僕がやっています。そもそもそんなに回数があるものではないので今は良いのですが、今後はこの少ない機会の中でアウトプットをしっかりとして引き継いでいけるようにしていきます。

それと、レビュアーを徐々に増やしたいと思っています。僕のような専任でないメンバーが行うレビューの質を上げていくことでスキルの底上げを狙っています。それによって詳しい誰かにレビューが集中してしまうことを避け、お互いにレビューを通してスキルアップできるようになるのが目的です。

今の目標

僕だけができることを0にするように心がけて、僕がいなくても回るようなところまで持っていきたいです。自分しかできない仕事ばかりを作り出さず、みんなができる仕事にしていくことには価値があると思っています。なので今後も社内のスキルアップのための活動を継続してコネヒトはフロントエンドもイケてるね!と社外の方から言われるくらいまで頑張っていきます。

さいごに

僕と一緒にフロントエンドチームを作りあげていってくれるメンバーを絶賛募集中ですので良ければ話を聞きに来てください!メンバーになりたくなくても僕とお話してくれる方もウェルカムです!お待ちしております🙌

明日のコネヒトアドベントカレンダー@itoshoさんで「もしSandi MetzさんがPHPerだったら」です。ユーモア溢れる素敵な記事をお楽しみに!

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.