SaaSビジネスにおけるアジャイルの事例
SaaSビジネスにおけるソフトウエア開発のポイント
SaaSビジネスで扱うソフトウエアを開発する際にポイントとなるのは、保守性とスピードです。
SaaSでは一度リリースしたら終わりではなく、リリース後もずっとサービス提供は続くため、ソフトウエアも改善し続けていきます。その改善内容は、既存機能の改修や機能拡張である場合もあれば、不具合の修正の場合もありますが、一度書かれたソースコードを読んだ上で改修/拡張していくことになるのは、どの場合でも同じです。その場合に重要となるのが保守性です。
また、完成というものがないとはいえ、リリース前にはテストをしますし、出荷のチェックも行います。ただし、それが何度も繰り返されるのです。そうした際に、テストを人海戦術でやるなどは考えられません。何度もテストとリリースを繰り返せるような仕組み作りも必要になります。
SKIPaaSの開発現場では、保守性を高めるために日ごろからリファクタリングをしたり、RSpecやCucumberを使ったテストの自動化などを行っています。
また、SaaSにおいてサービス提供を行っていない状態は、いくら途中まで完ぺきなソフトウエアが作られていたとしても価値がまったくありません。そのため、より早く市場にサービスを出していくことが重要になります。これが、SaaSでスピードを重視する理由です。
さらに、ビジネスチャンスを逃さないためにも、完成度よりもリリース時期を重視する傾向があります。最も良いのは、いつでもリリースできるという状態、常に動かすことのできる状態にしておくことです。SKIPaaSの開発現場では、前回紹介したGitHubを使って常に動く状態のソースコードを管理して共有するようにしていたり、最新のソースコードで動くアプリケーション実行環境を用意したりすることで、いつでも試せる場所を用意しています。
SaaSビジネスにおけるソフトウエア開発の課題
SaaSではソフトウエア開発に終わりがなく、サービスを提供する限りいつまでも継続していきます。そこで発生するSaaSならではの課題は、開発者のモチベーションをいかに維持していくかということです。区切りとしてのリリースのタイミングはありますが、そこで燃え尽きてしまうのではなく、継続的に開発にへのやる気を維持するには工夫が必要です。
SKIPaaSの開発現場では、マンネリ化を防ぐ工夫の1つとして、「開発合宿」を実施しています。開発合宿では、普段の仕事場から離れ、旅館などに行って集中的にプログラミングをします。開発合宿で作るものは、開発者の自主性に任せて、普段開発しているものと関わりなく、作りたいものを集中的に作ってもらいます。
皆さんもご存じのGoogleには「20%ルール」という形で、普段の仕事と違うものを、週の20%の時間を使って作っていいというルールがあるそうですが、それを集中的に普段とは別の環境でやるという感じです。そこから新しいサービスのアイデアが生まれることもあります。
また「TechTalk(テックトーク)」という形でチーム内での勉強会を定期的に実施しています。この勉強会では、普段の開発で使っていない新しい技術やサービスについて、持ち回りで担当者が発表していきます。やはり、普段の開発だけではどうしても扱う技術が固定化されていきますので、勉強会を開催することで、新しい技術を取り入れていく姿勢を持ち続けています。
開発者は、このTechTalkを通じて、マネジャーやチームに新しい技術を提案して、サービスの開発に取り入れるチャンスをもらえます。SKIPaaSの開発チームで行っているTechTalkの様子は、その都度ブログの形で動画と資料をセットにして公開しています(http://blog.sonicgarden.jp)。