iPhone/iPod touchに学ぶAgile開発

先日参加したScrum Product Owner Trainingであがった話題。講師のMike CohnとKen SchwaberはiPhone/iPod touchがScrumを使って開発されているとは一言も言わなかったが、彼らがApple/Microsoft/Yahoo!/GoogleにおいてScrum教育をしているのは有名な話。そして、「優先度の高いフィーチャから作り上げていくとはこういうことだ」という例としてiPhone/iPod touchの話をちょっとだけしてくれた。

  • まずは6月末のiPhone発売。
    • この時点では「AT&Tの携帯として通話できる」「オンラインでアクティベーションできる」「iPodのように音楽を聞ける」といった、製品としての「核」に焦点を置いている。
    • 話題となったJailBreakが比較的簡単だったのは、「それらの対策に時間をかけていたら、その分製品投入が遅れて顧客獲得機会を逃す」から。
  • 次は10月のiPod touch発売およびiTunes Storeのバージョンアップ
    • iPod touch単体でも音楽を買えるようにiTunes Storeをバージョンアップする必要があった。
    • そのタイミングに合わせて、JailBreak対策(要は追いかけ開発分)をリリース。JailBreakしていた機器が動作しなくなったりする問題が発生したが、あくまでもパワーユーザに限った話。
  • そしてSDK配布(来年春)
    • これはiPhone/iPodに限らず言える事で「SDKを配布するのなら、対象製品が充分安定してから」ということはSPOTでも繰り返し教えられた。
    • 不安定な製品に不十分な説明文書をつけて不安定なSDKを配布すると、サポートにかかる費用が急増する。

確かに1.1.1へのバージョンアップ時には一部のJailBreakユーザが混乱に巻き込まれたが、仮にあの段階でサードパーティのアプリケーションが流通しまくっていたら問題はさらに大きくなっていたわけだ。かといって、最初からSDKを配布できるまでに品質を向上させるには、(おそらく)来年の春まで製品投入を待つ必要があった。6月以降、iPhoneだけで100万台以上販売した事実を考えれば、必要最小限の機能と品質で製品投入し、追い掛けで機能追加と品質安定を実現するというScrum思想は非常に大きな効果があったといえよう。

追記

ここから先は門外漢な頓珍漢。

  • 組み込み系の場合、ハードウェアチームとハードウェアシミュレータチーム、そしてソフトウェアチームを用意するらしい。
  • ハードができてくる前は、当たり前だけどシミュレータ相手にソフトを開発する
  • ハードとシミュレータはできるだけ頻繁に突き合わせをして、異なる道を走ってないか確認