みなさん、アジャイル開発をご存知でしょうか?
ソフトウェア開発においてよく採用されるプロジェクトマネジメント方法のことで、多くのオフショア開発においても採用されています。
特にリモート開発になるオフショア開発では、プロジェクトマネジメントはかなり重要になってきます。
今ベトナムにオフショア開発を頼もうと思っている人の中には、プロジェクトマネジメントをどうやってやればいいのかがわからないという人も多いかもしれません。
今回は、オフショア開発にてアジャイルを採用することのメリット・デメリットと、アジャイル開発をどのような方法でやるのが効果的なのかについて説明します。
目次
1. アジャイル開発とは?
アジャイル開発とは、開発管理手法の一種で、常に改善していく、という意識を元に行われるものです。
よく開発現場で取り入れられているアジャイル開発を厳密にもっと細かくいうと「スクラム」と呼ぶことが多いですが、この記事では一旦「アジャイル」という言葉を使用します。
アジャイル=素早いという意味で、その名の通り開発を短い期間で区切り、小さい単位で開発とテストを繰り返していくのがアジャイル開発のメインの考え方となります。
従来よく取り入れられてきた「ウォーターフォール型」と呼ばれる手法では、最初にきっちりと仕様を決めて、開発のスコープを決めて、納期を決めて、そこまでしっかりと計画を立ててから開発していくものになります。
それに対し、アジャイルは「イテレーション(反復)」と呼ばれるサイクルを用いて開発をします。
このイテレーションには、計画、開発、テスト、リリースが全て含まれており、アジャイル開発ではこのイテレーションを何度も持つ、つまり、小さい単位の機能リリースを何度も行なっていくことでプロダクトを完成させる、という手法になります。
仕様がきちんと決まっていなくても柔軟に対応できる体制なため、変更の多いプロダクトに向いています。逆に、銀行システムなどきちんと設計を練るべきプロダクトに関してはウォーターフォールが向いていると言われています。
2. アジャイル開発で大切なスプリントとは?
アジャイル開発においてよく出てくる単語の一つに「スプリント」があります。
スプリントは、アジャイル開発においてのイテレーションの期間(タイムボックス)、工程を示すもので、通常は1週間〜1ヶ月の短い期間に区切られます。
アジャイル開発では決まった期間のスプリントを区切って、バックログの項目を開発していき、テスト、レビューを行なっていくことになります。
基本的にスプリントの期間中には、チームで毎日15分程度の会議を行います。
アジャイル開発ではコミュニケーションを重視しているため、このようにチームが顔を合わせて行うミーティングが多いのです。
スプリント中に行われる毎日のミーティングでは、何をしたのか、次は何をするか、問題や詰まっているところがあるかなどを全員で話します。
こうすることで、チームメンバーが困っていることに迅速にヘルプを出すことができ、結果として開発の遅れも発生しにくくなります。
3. アジャイル開発を行うなら知っておきたいレトロスペクティブとは?
レトロスペクティブとは、振り返りMTGのことを指します。
スプリントの終わりに行うことで、自分たちが今スプリントでどのくらいやり切れたか、どんな問題が起こり、そこから何を得たか、解決策は何か、を話し合います。
このレトロスペクティブミーティングを毎スプリント行うことで、チームの組織知がたまっていき、全員が学びを得ることができ、チームがどんどん改善していく、というのが狙いです。
4. オフショア開発にてアジャイル開発を採用することのメリット
世界で広く採用されているアジャイル開発ですが、ベトナムでのオフショア開発にてアジャイル開発を採用することのメリットも見てみましょう。
ベトナムでのオフショア開発はリモートで行われやすく、コミュニケーションを多くとれるアジャイルが向いていると言われています。
具体的なメリットとしては下記の点です。
1. 仕様がまだ決まっていなくても柔軟に対応できる
2. 開発の進捗をこまめに見て方向修正できる
3. チーム内のコミュニケーションが多くなり議論が活発になる。
一つずつ見てみましょう。
4-1. 仕様がまだ決まっていなくても柔軟に対応できる
プロダクトを作って、ユーザーと話し合いながら改善していきたい、など開発において柔軟性が必要になるプロダクトの場合、アジャイル開発が向いています。
ウォーターフォール開発では、追加変更毎に後々のスケジュールも全部引きなおしたり、追加工数として見積もりをし直したりと様々な手間が発生しやすいのに対し、アジャイルでは基本的に、優先度が高ければ次のスプリントで対応するなど柔軟な開発ができるためです。
特にスタートアップや、新製品の場合、早めにマーケットに製品をリリースして反応を見るなどの動きが必要になります。
その時にアジャイルであれば、一番肝となる機能だけ先にリリースしてユーザーの反応を見て、さらに改善を続けていくことができます。
4-2. 開発の進捗をこまめに見て方向修正できる
ベトナムのオフショア開発では、言語障壁や文化の違いもあるため、ベトナムのエンジニアたちに自分たちが言ったことがきちんと伝わっているのか不安になることもあります。
そのような状況下でもアジャイル開発が向いています。
アジャイルでは、小さな単位に区切ってテスト、デモ、リリースを行なっていくため、自分の意図と違うものが出てきた時に早めに気づくことができます。
ウォーターフォールでは、仕様を伝える際にミスがあったが、最後に結合テストをするまでわからなかった、ほとんど最初からやり直しになった、ということが起こっています。
それに対してアジャイルでは、1週間単位などで実際に動くものが見えるようになるので、手戻りが少なくて済みます。
ベトナムのオフショア開発のような、認識の齟齬が発生しやすい開発環境では、ミスは起こるものとして早めに気づいてリカバリーすることが大切です。
4-3. チーム内のコミュニケーションが多くなり議論が活発になる。
ベトナムのオフショア開発では、リモートチームになるので、何もしなければチーム内のコミュニケーションがどんどん減っていきます。
コミュニケーションが減ると質問などもしづらくなり、ミスや認識齟齬が起こりやすい環境になってしまいます。
アジャイル開発においては、なるべく毎日顔を合わせてミーティングをすることが推奨されているため、強制的にコミュニケーションの機会が増えます。特に朝会、夕会などをしっかりすることで、チーム内のメンバーの進捗や調子を把握しやすくなり、納期に変更が出そうな時も早めにキャッチアップすることが可能になります。
また、コミュニケーションの機会が増えることで、メンバー間の距離も近くなり、議論が活発になります。
ベトナム人メンバーからもプロダクトについての改善提案が出ることも多くなるので、ベトナムオフショア開発にはアジャイルがおすすめです。
5. オフショア開発にてアジャイル開発を採用することのデメリット
では、逆にデメリットは何でしょうか?
オフショア開発にてアジャイル開発を採用することのデメリットには、次のようなものがあります。
1. 変更が効きやすいので、納期が延びがち
2. ドキュメントが残りにくく後から困る
一つずつ解説していきます。
5-1. 変更が効きやすいので、納期が延びがち
アジャイル開発は変更が効きやすいので、あれもこれもと追加しているうちに納期が延びてしまうということが多く起こります。
もしも予算や期間が限られている場合、本当に作りたいものの範囲を明確にしておく必要があります。
ベトナムでのアジャイル開発は費用が安い分、納期が延びてもあまり気にしないという人もたまにいますが、だらだらと開発を続けることはチームにも顧客にとっても良いこととは言えません。
メリハリをつけて本当に必要なものを早く作るという心がけが大事です。
5-2. ドキュメントが残りにくく後から困る
ベトナムオフショア開発にてアジャイル開発を取り入れた場合、開発スピードが上がる分、しっかりとした仕様書が残りにくく、後々引き継ぐ時に困るということが予想されます。
アジャイル開発では仕様が変わりやすいためドキュメントは必要ないとも言われますが、オフショア開発では途中でチームメンバーが変わる、開発会社が変わる、ということは十分に起こり得ます。
その際にドキュメントが残っていないために調査に時間がかかるなどの問題が発生することが予想されますので、最低限のドキュメントは残しておくと安心でしょう。
6. オフショア開発にてアジャイル開発を効果的に行うには?
では、オフショア開発で効果的にアジャイル開発を行うにはどうしたら良いのでしょうか?
オフショア開発のアジャイル開発においては、チームがリモートチームになること、対面でのミーティングが難しくなることがメインの課題となります。
情報のキャッチアップ速度や、コミュニケーション頻度を上げるためにできる施策を下記にあげてみました。
6-1. まずはタスク管理ツールを選ぼう
まずは、オンライン上でチーム全員が参照できるタスク管理ツールを選ぶことが必要です。
今は色々なタスク管理、プロジェクト管理ツールが無料で使えるようになってきたので、いくつか試してみて合うものを探してみてください。
オススメは、Trello、Asana、Jiraです。
6-2. リモート朝会・夕会
アジャイル開発のスクラムメソッドでは、朝会、夕会と呼ばれる短い毎日のミーティングを行うことが推奨されています。
リモートで仕事をしている分、どうしても開発の進捗はブラックボックス化しやすくなりますが、朝会や夕会で毎日進捗を報告することで、開発のプロセスが見えやすくなるとともに、開発にリズムができます。
毎日時間を決めてスカイプなどでオンラインリモート朝会、夕会はおすすめです。
6-3. 週1のデモセッション
開発進捗を見えやすくするために、週に1回、少なくとも2週間に1回はプロダクトオーナーを交えたデモセッションを行うことをおすすめします。
デモセッションでは、実際に開発した画面や機能を見せながらレビューします。
ベトナムのチームは物理的に離れていることもあり、なかなかプロダクトオーナーやユーザーのフィードバックをもらう機会がありません。
週に1度、自分たちのプロダクトを使う人を前にデモを行い、フィードバックを得ることはエンジニアのモチベーションにもなります。
こちらもスカイプなどでつなげば画面共有をしながら行うことができるので、ぜひやってみてください。
6-4. レトロスペクティブでもツールを活用
レトロスペクティブミーティングも、オンラインで開催するのがおすすめです。
ただ、レトロスペクティブではホワイトボードを使ったり付箋を使ったりということが多いので、オンラインでやるときはうまくツールを使う必要があります。
マインドマップツールや、オンライン付箋ツール、もしくはGoogleスプレッドシートなどを活用しながらベトナムチームとの開発改善について話してみてください。
7. アジャイル開発まとめ
ベトナムとのオフショア開発が初めての人は特に、プロジェクトマネジメントに不安を感じることがあるかもしれません。
そんな人にも、改善策を探しながら柔軟に対応できるアジャイル開発がおすすめです。
もしベトナムのオフショア開発をする場合は、ぜひ試してみてくださいね。
8. アジャイル開発の手法でオフショア開発をするならバイタリフィへ
バイタリフィ並びにベトナム子会社のバイタリフィアジアでは、ベトナムでのオフショア開発に加えて、将来ベトナムのマーケットを狙っていきたい企業のお手伝いができるよう現地情報の提供を行っております、
また、ハイリスクかつ費用の高額な現地法人設立の前に低コスト&リスクでベトナム進出を試せる拠点開設プランなど、11年以上に及ぶベトナムでのオフショア開発経験を活かした+αのサービスとメリットを提供しております。無料でご相談頂けますので、ぜひ一度お気軽にお問合せいただけましたら幸いです。