はじめに
こんにちは!TC3のマーケティング中村です。
「“Gig”abyte」は、TC3をより深く知っていただくためのブログシリーズです。TC3の代表取締役の須藤にTC3立ち上げの経緯(こちら)や、Topcoderの魅力(こちら)についてインタビュー形式でお伝えしました。また、プリンシパルエンジニアへのインタビューなどもご紹介しました(こちら)。
今回の”Gig”abyteでは、TC3が実践している、ギグ・エコノミーを活用したアジャイル開発の実践である、GigAgileについて、アジャイルにおけるポイントに沿って、Topcoderを中心としたギグ・エンジニアがどのように活用できるのかを探索していきます。プリンシパル・コンサルタントである岸さんと以前もインタビューさせていただいた木幡さんとのディスカッション形式で探索していきたいと思います。
―――インタビューここから―――
自己紹介
マーケティング 中村(以下、中村):岸さん、木幡さん、今回もお忙しいところお時間いただきありがとうございます。今日はFinolabオフィスではなく、イケてる皆さんのリモート環境でインタビューしたいと思います笑
木幡さんのご紹介は以前のインタビューで行っていますので、早速ですが、岸さんの自己紹介からお願いできますでしょうか。
プリンシパル・コンサルタント 岸(以下、岸):はい。80年代に新卒で航空宇宙関連のシステム開発をしている会社に入社しました。第2次AIブームの時に、IPAのソフトウェア開発へAIを適用できないかというプロジェクトに3年間出向し、そこで、エキスパートシステム構築ツールやSmalltalkを通じて、オブジェクト指向に出会い、その後自社に戻り、オブジェクト指向の社内普及活動に従事しました。
空港のスポット(駐機場)管理システムの開発に、社内で初めてC++を使った開発を実施したのですが、当時はウォーターフォール型開発で、要件定義後の開発フェーズでスキルレベルがバラバラの多数の開発者が参画し、その結果として品質が安定せず、障害調査や再現防止策資料の作成などの後ろ向きの作業で多くの時間を費やしてしまいました。
この時、「ソフトウェアエンジニアはもっと自分の能力できる環境で価値の高い仕事をすべきなのに」と思ったことをきっかけに、開発プロセスやアーキテクチャ設計に足を踏み入れていくことになります。結果、次期スポット管理システムではオブジェクト指向や反復開発の考え方を取り入れ、品質を安定させることに成功しました。
その後、オブジェクト指向ベースの反復型開発プロセス(Rational Unified Process、RUP)とその支援ツールを提供していたラショナルソフトウェアに転職し、トレーニングや導入コンサルティングに従事し、更にこの反復型開発プロセスを自分たちのプロジェクトで実践したいという思いから、豆蔵に転職しました。豆蔵では、反復型開発プロセスの社内標準化やプロジェクト適用の支援のコンサルティングを数多く実施させていただきました。
豆蔵から独立後、個人事業主としてコンサルティングをしている頃に、代表の須藤さんと出会い、ギグエコノミーの世界においてその強みをいかした新たなプロセスを作りましょうというお誘いを受けて、意気投合し、TC3にジョインしました。
今は、実プロジェクトの支援を行いながら、ギグ・エコノミー、特にTC3がプレミアパートナーであるTopcoderの力を最大限に発揮しながら、アジャイルのプロセスでお客様の求める成果物を作っていく新しいプロセスである、GigAgileを日々アップデートしています。
木幡:さすが岸さん、バックグラウンドが分厚いですね。TC3に参加して頂いて心強いです。
岸:いえいえ。日々新しい学びがあり、引き続き日々改善を行っていければと思います。
さてさて、今日は私と木幡さんのディスカッションということですね。アジャイル開発がデジタルトランスフォーメーション(DX)の波とともに改めて注目されているように感じています。今日は、このアジャイル開発におけるポイントを軸に、創業以来多くのプロジェクトでギグのエンジニアの方々と協業して進めて来られた経験談なども含めてディスカッションできればと思います。
まずは1点目のアジリティを持った製品開発プロセスという点からいってみましょうか。
アジャイル開発とギグ・エコノミー
木幡:私なんかも岸さんと近くて、若手のときにオブジェクト指向に取り組んでいて、その際にRUPのような反復型のプロセスについて知りました。
私の場合、エクストリーム・プログラミング(XP)に出会ったことが、いわゆるアジャイル型のソフトウェア開発を知るきっかけでした。XPを学ぶにつれて、RUPのような反復型の開発プロセスと異なる点として、「ビジネスへのフィード・バック」という観点があることだと感じました。言い換えると、開発のフィード・バックがビジネスにダイレクトに響く、という点をついたのがXPやアジャイル開発ではないかと。
岸:なるほど確かにそうですね。RUPは開発プロセスを詳細に定義していますが、アジャイルの場合は、アジャイル宣言にもあるように、プロセスの詳細というよりも、ビジネス的に価値のあるものを提供していくための考え方に重きをおいていると感じます。そういう意味で、「アジャイルは文化だ」などと言う人もいたりと、組織全体が取り入れるための考え方、のように捉え直すこともできますね。
木幡:そうですね。アジャイル型の開発プロジェクトでは、ビジネスを巻き込む、という点が肝になると思っています。この点に関しては、Topcoderなどのギグ・エコノミーのメンバーが直接かかわることはあまりなくて、ここはわれわれTC3がお客様の課題をしっかり理解して目線を合わせてプロジェクト運営する必要があると思っています。ただ、この部分でのギグ・エコノミーの活用というのも、今後チャレンジしていきたいテーマのひとつですね。
岸:1点目に関しては、製品開発全体のプロジェクト運営を推進するTC3の役割ということですよね。アジャイル開発やプロダクト開発におけるプロセスやギグ・エコノミーのメリットをしっかり理解した上でお客様と伴走型でご支援している、というのはそういう意味があるんですよね。
具体化するスピードが速い、Topcoder
木幡:そうですね。
ギグ・エコノミーがアジャイル型の開発にまったく寄与しないかというと、そうではないと思っています。例えば、われわれと関連の深い Topcoder ですが、非常に高い開発能力をオンデマンドに利用できます。彼らを利用することで、お客様の課題に対する解決策 − 技術の検証だったり、アプリ機能の実装だったり− を「スピーディーに具体化できる」んですよ。アイデアに対してクイックにアウトプットを出してお客様からフィードバックを頂く、そしてより確かな方向性を選択してプロジェクトを進める、これを素早く繰り返すということですね。アジャイル・プロジェクトを動かすにおいて、非常に強力なツールだなと思っています。
岸:なるほど。成果物がスピーディにビジネスサイドに伝えられる力がTopcoderにはある、という感じですね。技術的な難易度が高かったり、メンバーの知見ではどうにもわからなくて調査だけで時間が経ってしまう状況だった場合には、Topcoderの威力を活用するとスピーディにできそうかどうか、できるならどのような形式になるか、というところが明らかになってビジネスアジリティに大きく貢献しそうです。
ちょっと観点が変わりますが、私が豆蔵時代に金融系の大規模開発をしていた際にパートナー人材を受け入れるための面談を100回以上も実施していたことを思い出しました。Topcoderは150万人のエンジニアが所属していると言いますから、そのエンジニアのプールの優秀なエンジニアにすぐにアクセスできるのは非常にメリットを感じます。
木幡:流石にTopcoderで何百人規模の開発を行った実績はあまり聞いたことがないですし、TC3でもそこまで大規模なものはまだ経験したことがないのですが、アジャイルやスクラムの考え方では小さなチームで一機能を開発していくスタイルになってきているので、その中の数名がTopocoderやその他のギグ・エンジニアになる、というのは目指していきたい方向ですね。
岸:既に多少触れられている気がしますが、2点目の、「無駄のない開発による早期リリース」についてですが、Topcoderでは分野毎にコンテストを行い、それぞれで参加してくるエンジニアが異なると思います。これらの成果物の塊をインテグレーションするのは大変なのでしょうか?
木幡:最近は、APIなどの仕様の定義の方法がグローバルに標準化されているので、あまり苦ではないですね。例えば、SwaggerでAPIを定義して、それをTopcoderのコンテストに出すわけですが、Swaggerそのものについていちいち説明をしなくても、パッと開発してくれます。バックエンドとフロントエンドの開発者の両方が Swagger を参照して開発するので、誤解が生じにくく、結果としてつなぎ込みはラクになります。Swaggerを例に出しましたが、標準的な開発方法をマスターしている開発者を前提として考えることができるのが良いですね。
岸:なるほど。一般的なシステムインテグレーションを行っている組織だと、エクセルに仕様書を落として、外に開発してもらったりして、プロジェクトの管理をするだけの人などもいますが、そのようなこともかなり少なくて済みそうな雰囲気を感じました。
包括的なドキュメントよりも動くソフトウェアを
木幡:ウォーターフォール型の開発ですかね。設計そのものは重要かつ必要不可欠だと思いますが、それが正しく問題を解決するかどうかは作ってみないと分からない、というケースも多々ありますよね。その辺が(ウォーターフォール型の)難しいところですかね。Topcoderでは、Swaggerのような標準かつ形式化されたものと、本当に必要な最小限のドキュメントで開発してくれますので、身軽さがありますね。
岸:仕様書には作った人たちだけの暗黙の了解のようなものも含まれているのでコミュニケーションコストが嵩みますね。このようにスピーディに成果を出してくると、コミュニケーションすることもなく成果物がでてきて、それに対するフィード・バックを小さいサイクルで進めることでスピーディにプロジェクトが進められそうですね。
木幡:はい、そのとおりだと思います。また、ここでも「スピーディ」というのは、単に速いというだけではなく、高い品質を伴ったスピーディだということを言っておきたいと思います。Topcoderのコンテスト形式の開発では、仕組み上、低品質の成果物はスクリーニングされます。いわゆるスパゲッティなコードをつかまされることは実質的になくなるので、そこは大きなメリットじゃないかと感じます。
岸:高いスキルのエンジニアが開発すると、スピードだけでなく、メンテナンス性や品質にも響くのですよね。
続いて、3つ目のポイント「チームパフォーマンスの改善」という点はどうでしょうか。なかなかギグエンジニアのメンバーをチームに巻き込むというのは難しい気がしています。
木幡:そうですね、たしかにここは結構難しいところかも知れません。地域やタイムゾーン、母国語、習慣などがそれぞれ違うメンバーが協働する、ということになりますので、アジャイルで重要視されているようなフェイス・トゥ・フェイスでの「対話」は、正直難しいです。ただ、私がXPを最初に実践した約20年前と比べれば、最近は Slack や Github などの優れたコミュニケーション / コラボレーションをサポートするツールがあるので最大限活用しています。実際のところ、実務上の問題はそれほどないですね。
「ギグ」というもの自体が、単発の契約形態で働く方を意味していますので、中長期に渡ってチームの一員として招き入れるということは、それと相反します。トラディショナルな文脈におけるチームのパフォーマンス改善をギグのエンジニアと一緒にしていくのは、現時点では少し難しいかなと感じます。ただ、開発をお願いする方の中には長くやり取りをしているメンバーも何人かいまして、そういうメンバーとの関係性は大切にしたいですし、そのメンバーから新たなメンバーを紹介してもらい、開発をお願いする、ということもあります。
岸:そういう意味では、ここに関してはTC3がしっかりナレッジをためて、どのようにギグのエンジニアを巻き込むことで、お客様にスピーディに品質の高い成果物を提供できるのか、というナレッジであったり、開発をお願いするギグのエンジニアのリストなどもあるとうまくまわりそうですね。
木幡:はい。チームとしてのパフォーマンスをあげる1つのピースとして、ひとりの開発者のパフォーマンスがあるはずで、自社内のリソースだと1週間くらいかかりそうな開発を、Topcoderの開発者に頼むと2日程度で出来上がったりすることもあります。
岸:それはすごいですね。さてさて、一応3つのポイントについて語ってきました。実際には私もプロジェクトでご一緒させていただきながらも色々と学んでいる状況ですが、まだまだプロセスの改善やTopcoderとの協業をスムーズにするプラットフォームなど検討の余地がありそうだと感じています。
木幡:そうですね。毎回模索しながら、なんとなくプロセスの軸を作っているという状況なので岸さんのサポートでより多くのお客様がギグ・エコノミーのパワーを感じていただけるようになったらいいなと思っています。個人的には日々の仕事の7−8割はギグ・エコノミーのパワーが活用できるようにならないかなと思っています。また、グローバルには多くのギグ・エコノミーを提供するサービスがあるので、Topcoder以外のものも活用できたらいいなと考えていたりします。
岸:木幡さん、本日は色々と教えていただきありがとうございました!
木幡:こちらこそ、オブジェクト指向などの懐かしい話から、Topcoderの魅力や現在の課題も含めて改めて考えさせていただけました。ありがとうございます。
―――インタビューここまで―――
おわりに
いかがでしたでしょうか?
TC3では、GigAgileと名付けたプロセスを日々改善しながらギグ・エコノミーのパワーを最大限引き出し、お客様のゴールにスピーディに近づけるように技術コンサルティングサービスを提供しています。領域はクラウドネイティブなソフトウェア開発から、データサイエンスの領域まで多岐に渡ります。デジタルトランスフォーメーションを推進する上で、技術的な成果物をクイックに確認していきたいというお客様がいらっしゃいましたらぜひお声がけください。
また、TC3では積極的にエンジニアを募集しています!アジャイル開発にギグ・エコノミーをプラスすることで、よりダイナミックでよりよい成果を実現できるとTC3は信じています。技術コンサルティングサービスのみならず、このような未来の開発モデルを実現するためのプラットフォームサービスも開発開始しています。一緒に未来を作っていっていただける方を募集中です。詳細は採用ページをご参照いただくか、info@tc3.co.jp までお問い合わせください。