この記事は a-suenami Advent Calendar 2018 - Qiita の 3 日目の記事です。
昨日はベトナムでの開発チーム構築についての経験談を述べましたが、本日はそれに続いて、実際にどのようなことをやろうとしているのかについて書きます。
副業の活性化
昨今、副業が流行っています。これはエンジニアに限らず、あらゆる職種でやっている人が見られます。
企業側としては
- 他の企業のノウハウを社員の副業によって取り入れる
- 優秀で高単価な人を顧問やコンサルタントとして受け入れることによって既存チームやプロジェクトのパフォーマンス底上げを図る
- 正社員として雇用する前のお試し
等が目的だと思われますし、副業する個人側としても
- 収入源の分散
- 本業以外の会社での業務を遂行することによる技術習得、視野拡大
- 転職前のお試し
等のメリットがあると思われます。
これまでコミュニティを介して行われていた知見の共有がより強固に、実際のプロジェクトを通して行われることになり、この流れは僕自身はかなり強く肯定的に捉えています*1。
副業と海外開発チーム
エンジニアの副業は企業側・エンジニア側双方にメリットがある反面、プロジェクトマネジメントの観点からは当然難しいところもある。
一番大きいのは断片的な時間を効率的に使えるようにプロジェクト全体のタスクをうまく細分化して、小さく進めていけるようなプロジェクト管理が求められる部分で、これは時間も場所も毎日共有していてハイコンテキストなコミュニケーションをしている正社員を前提にしているとなかなか難しい。
したがって、週 1 〜 数日といった稼働を、より課題が本質的で、経験が必要とされる領域にあて、それ以外の領域をベトナムのチームに任せることで全体的な効率を上げることを僕は今目指している。
事前設計
言語やフレームワークの選定、大きな設計方針の決定(エリック・エヴァンスの DDD、CQRS 等)、その他個々の機能ごとのデザインパータンの採用など、アーキテクチャの設計は本質的に難易度が高く、経験も必要とされる。
また、プロセス設計という意味では Lint やテストカバレッジに対する方針の策定、それをもとにした CI の設定、Working Agreement の明文化など、メンバー数が増えても開発速度が落ちないようにするためのこれらの仕組みも経験豊富な知恵を借りるべきだと思っている。
コードレビュー
コードレビューはプロダクトの問題を発見するポイント、品質を見極めたり向上させたりするポイントとして不可欠なステップである。これらを経験のあるエンジニアに任せることによって品質の向上を図るとともに、必要であれば Lint や自動テストの設計指針にフィードバックすることで、マネジメントコストを極端に上げずにスケールするチームを作ることが可能になる。
テスト設計 / テスト観点洗い出し
コードレビューを正しく行うことによって内部品質は向上するが、リリースに必要な品質は通常テストによって測定されなければならない。このテストケースの設計や観点の洗い出しにはソフトウェア開発やテストの経験が不可欠であり、システムの対象ドメインによってはそのドメイン知識も必要になる。ここをきちんと抑えることで開発チームのパフォーマンスを向上させることができる。
まとめ
昨日の記事ではベトナム人による開発チームの特徴を挙げたが、言葉も文化も違う人たちと同じチームで開発を進めるということの難易度は依然高く、正直日本国内での信頼もまだまだ高くない。
この是正手段として、経験豊富な国内のエンジニアの経験を借りることは有効だと思っており、そのためには今の副業市場の活性化は追い風なのではないかと感じる。
本日の焼肉屋
3 日目の本日は 1, 2 日目と同様渋谷から「いのうえ」をご紹介。
リーズナブルな金額で店内も広く、会食等にも利用できます。焼きすき、焼きしゃぶというすき焼き、しゃぶしゃぶに使うような薄切り肉を鉄板で焼いてご飯に巻いて食べるというのがおすすめメニューです*2。