見出し画像

インド人エンジニアに仕事を頼んで困ったこと(その1)


こんにちは、P2Pクラウド というインド人エンジニアにリモート発注ができるプラットフォームを運営している中島です。今回は、インド人エンジニアとの協業でありがちな話です。

プロダクトの実装を成功させるためには、良い開発チームを作るのが必須だろう。何十億も調達しているスタートアップや大企業などでは、札束で叩いて超優秀なエンジニアを高コストで獲得することは可能だと思う。しかし、われわれスタートアップはお金がないので、いかに合理的なコストで持続可能性のある開発組織を構築するのかがキモになる。そこで、インド在住のエンジニアにリモートで仕事をお願いするという合理的なオプションを自分は選んでいるし、自分がソフトウェア業界に関わる限りこの手法を止めることは100%ないと断言する。ただ、リモートで仕事をする、なおかつ文化の違うインド人と仕事をするのは大変である。今までに色々な問題が起こりまくったので、これからインドリモートオフショア開発を検討している人、もしくは既にやっている人に向けて記事を書く。TOP画像はクジャラート州ラージコートの知り合いの開発会社。この会社にはreact-nativeの達人がいるので、たまに手伝ってもらっている。ラージコートは物価が安い。。

長期的な運用に興味がなく、指示されたものを作るだけ

インド人全般に言えることがだが、とりあえず実装はかなり早いが雑。結果として、不要なファイルを勝手にgitコミットに含めたりや明らかに冗長なコードを書いてくることが多々にある。確かに、要件を満たした実装であるが、その過程は無視という話である。SaaS製品の開発はMVP段階では、とりあえず動けば大丈夫だが、ある程度売れ始めるとコード品質を意識しだすので、品質の低いコードは長期的に開発チームを困らせて生産性を低下させるので大問題である。典型的な日本人一般の感覚からすると、この事象に失望することは多い気がする。これを防ぐには事前に期待値調整をして、求められるアウトプットが何かをいちいち定義する必要がある。そのためには、事前にcoding制約ガイドラインを設けて、毎度pull requestごとに自己チェックさせるという手法は古典的だが結構効く。インド人がよくやるパターンはだいたい決まっている。例えば、

・不要なファイルやコードをコミットしてくる
・使いたくないnpmライブラリを勝手にインストールして使う(lodashやbootstrap等)

・git commit メッセージにissue番号やコミットの内容を入れない
・全体の実装を見ないで進めるので、既に作った同じようなライブラリを新たに開発する
・デグレの確認を気にせずコードを書くので、依頼した実装はうまく動くが、過去の実装は動かなくなる
・featureブランチを切らずに、直master pushしてくる

等がある。正直、これらのことはインド人エンジニアに限らず日本人エンジニアでも完璧にミスなくできていないケースもあるが、インド人の場合は特に目立つ気がする。成熟した日本人チーム開発で、突如このようなインド人が入ってくるとイラッとして、追い出したくなることがあるかもしれない。

ネガティブなことを結構書いたが、自分は既に何が起こるのが予測できているので、開発オンボーディングと開発運用の中で上記の問題が発生するのを防ぐ努力をして、問題なく開発組織として機能させることができていると思う。

上記の話は、coding(実装)に近いレイヤーでの話であるので、次回は、コミュニケーションに関する問題も見ていくことにする。


P2Pクラウドでは会員登録してくれたユーザーに希望があれば無料で、インドオフショア開発用のオンボーディング資料を配布しています!
こちらから会員登録ができます

この記事が気に入ったらサポートをしてみませんか?