devsami kansai 2012 #c2

1,472 views

Published on

Published in: Technology
  • Be the first to comment

devsami kansai 2012 #c2

  1. 1. Globalな複数拠点間での 共同開発プロジェクト -GREE Platform SDK- 高木 佑史 #kansumi C2 Copyright © 2004-2007 Inc. All Rights Rights Reserved. Copyright © GREE, GREE,Inc. All Reserved.
  2. 2. GREE Platform Copyright © GREE, Inc. All Rights Reserved.
  3. 3. GREE Platform GREE Platform グローバル展開はじめました!! Copyright © GREE, Inc. All Rights Reserved.
  4. 4. GREE Platform Web App • Social API •Web Service • JavaScript Native App • SDK • App Portal Web App • Web Platform ・Middleware Native App GREE Platform • StreamWeb App • Social Graph • Community Native App • etc… Native AppWeb App GREE Platformはこんな構成の、 モバイル向けプラットフォームです Copyright © GREE, Inc. All Rights Reserved.
  5. 5. GREE Platform Web App • Social API •Web Service GREE Platform SDK • JavaScript Native App • SDK • App Portal Web App • Web Platform ・Middleware Native App GREE Platform • StreamWeb App • Social Graph • Community Native App • etc… Native AppWeb App 本日は、このSDKの開発についてお話しします Copyright © GREE, Inc. All Rights Reserved.
  6. 6. 昔の話 Copyright © GREE, Inc. All Rights Reserved.
  7. 7. 昔の話レガシーなSDK• 開発に関わるエンジニアは少人数 (1モバイルプラットフォームにつき2~3人)• コード管理はgit• タスク管理はJIRA• 成果物管理は手動• 開発モデルは、数ヶ月周期の反復型開発 Copyright © GREE, Inc. All Rights Reserved.
  8. 8. 昔の話レガシーなSDK• リリース作業は手作業• QAや確認用アプリケーションの作成も手作業• 作業が属人化しがちだった Copyright © GREE, Inc. All Rights Reserved.
  9. 9. 昔の話レガシーなSDK• リリース作業は手作業• QAや確認用アプリケーションの作成も手作業• 作業が属人化しがちだった けれども少人数での開発だったので、運用可能だった Copyright © GREE, Inc. All Rights Reserved.
  10. 10. 統合によってところが、Platformの統合・グローバル化によって、Platform SDKにも完全刷新が求められました Copyright © GREE, Inc. All Rights Reserved.
  11. 11. 統合によってところが、Platformの統合・グローバル化によって、Platform SDKにも完全刷新が求められましたこれに伴い、• エンジニアの人数大幅アップ• 作業量、作業期間が大幅アップ Copyright © GREE, Inc. All Rights Reserved.
  12. 12. 統合によってところが、Platformの統合・グローバル化によって、Platform SDKにも完全刷新が求められました。これに伴い、• エンジニアの人数大幅アップ• 作業量、作業期間が大幅アップ今までと同じ開発スタイルでは厳しい… Copyright © GREE, Inc. All Rights Reserved.
  13. 13. 今回変わったこと Copyright © GREE, Inc. All Rights Reserved.
  14. 14. 今回変わったこと• 開発スタイルの変更 -スクラム開発へ 1スプリントは2週 間 Copyright © GREE, Inc. All Rights Reserved.
  15. 15. 今回変わったことJIRAの運用ルールを向上 • JIRAのチケット管理をより定型化 -Epic、Story、Task、SubTaskと粒度に応じたタスク定義 -チケットのオープンからクローズまでのフロー化 • チケットをスプリント毎に管理 • 記述言語は全て英語で統一 Copyright © GREE, Inc. All Rights Reserved.
  16. 16. 今回変わったことコード管理のためにGitHubを導入 • Pull Requestを活用したコードレビューのフロー化 • Tech Leadを設定し、コミットされたコードの 品質を保つ -実際にコミットが反映されるタイミングがコントロール可 -国毎にTech Leadを設定することで、負荷分散も可 Copyright © GREE, Inc. All Rights Reserved.
  17. 17. 今回変わったこと成果物管理にJenkinsを導入 • ビルドの自動化 -GitHubと連携し、コミットがあると自動的にビルド チェック • 自動Unitテストによる品質の保持 -SDKのコード毎にUnitテストコードを用意し、変更が あるとチェック Copyright © GREE, Inc. All Rights Reserved.
  18. 18. GREEの開発GREEのエンジニアちなみにGREEでは、エンジニアが• 開発計画• 要件分析• 実装• テスト行程• 効果分析に一貫して関わっていきます Copyright © GREE, Inc. All Rights Reserved.
  19. 19. GREEの開発QA体制• GREEでは、国内外の複数拠点にQAチームを持っていて、 様々な端末・通信環境で24時間体制のQAを実施して いますQAエンジニア• また、米国と中国の拠点には、QAエンジニアと呼ばれるエ ンジニアが存在します• QAエンジニアは、タスク単位でQAを実施するとともに、必 要であればコードレベルでの確認も行います Copyright © GREE, Inc. All Rights Reserved.
  20. 20. GREEの開発• スプリントの流れ – 開発計画 - マネージャ、ディレクター、エンジニアで相談し、 リリースするの機能の概要を決定する開発計 要求 詳細設 テスト 実装 画 分析 計 行程 Copyright © GREE, Inc. All Rights Reserved.
  21. 21. GREEの開発• スプリントの流れ – 要求分析 - 機能の概要から、求められる機能を分析 し、 詳細な仕様へと落とし込む開発計 要求 詳細設 テスト 実装 画 分析 計 行程 Copyright © GREE, Inc. All Rights Reserved.
  22. 22. GREEの開発• スプリントの流れ – 詳細設計 - 仕様から、実際の実装に必要なタスクを 洗い出す開発計 要求 詳細設 テスト 実装 画 分析 計 行程 Copyright © GREE, Inc. All Rights Reserved.
  23. 23. GREEの開発• スプリントの流れ – 実装 - タスク単位で機能をコーディングする開発計 要求 詳細設 テスト 実装 画 分析 計 行程 Copyright © GREE, Inc. All Rights Reserved.
  24. 24. GREEの開発• スプリントの流れ – テスト行程 - 実装が完了したタスクに対して、テスト コードとテストケースを用意し、QAテ ストを実施 QAで問題なければ、タスクを完了する開発計 要求 詳細設 テスト 実装 画 分析 計 行程 Copyright © GREE, Inc. All Rights Reserved.
  25. 25. 技術的な試み Copyright © GREE, Inc. All Rights Reserved.
  26. 26. JavaScriptの有効活用運用面だけでなく、SDK自体の機能も大きく変わりました中でも特に今回重視されたのは、 JavaScriptを介してネイティブコードを呼び出す ネイティブブリッジ機能の強化 Copyright © GREE, Inc. All Rights Reserved.
  27. 27. JavaScriptの有効活用• GREEでは「GAWADAKE」と呼ばれる、 HTML5ベースのWebViewアプリケーションを 作るためのExtention SDKも提供しています• Webアプリケーションでありながら、 SDKのネイティブブリッジを呼び出す ことで、ネイティブの機能を使うこと が可能 Copyright © GREE, Inc. All Rights Reserved.
  28. 28. JavaScriptの有効活用Webベースのアプリケーションにおいても、よりネイティブアプリに近いユーザ体験を提供可能に! 昔のWebアプリ 新しいWebアプリ Copyright © GREE, Inc. All Rights Reserved.
  29. 29. JavaScriptの有効活用もちろんネイティブの機能をそのまま利用することも可能• 日本ではHTML5ベースのアプリケーションの需要が多い傾向• 米国ではネイティブベースのアプリケーションの需要が多い傾向各国のDeveloperが、それぞれの希望に応じたアプリケーションを開発しやすいように、様々な選択肢を用意している Copyright © GREE, Inc. All Rights Reserved.
  30. 30. 苦労したこと Copyright © GREE, Inc. All Rights Reserved.
  31. 31. 苦労したこと言語面で苦労する、というのは良く聞く話ですが、グローバルでの開発では他にも色々と苦労がありました• 時差、暦 • 9:00(JST)が16:00(PST) • 日本が月曜のとき、米国ではまだ日曜 • 日本の祝日と米国の祝日 Copyright © GREE, Inc. All Rights Reserved.
  32. 32. 苦労したこと言語面で苦労する、というのは良く聞く話ですが、グローバルでの開発では他にも色々と苦労がありました• 時差、暦 • 9:00(JST)が16:00(PST) • 日本が月曜のとき、米国ではまだ日曜 • 日本の祝日と米国の祝日リアルタイムなコミュニケーションが取りづらい 電話・テレビ会議が、 早朝や深夜に行われることも Copyright © GREE, Inc. All Rights Reserved.
  33. 33. 苦労したことSDKの開発に今回関わったエンジニア達の傾向• 米国のエンジニア • ネイティブベースのアーキテクチャが得意な人が多 かった • 最適化や高速化といったことが得意な人が多かった• 日本のエンジニア • Webベースのアーキテクチャが得意な人が多かった • 共通化や互換性を得意とする人が多かった Copyright © GREE, Inc. All Rights Reserved.
  34. 34. 苦労したことSDKの開発に今回関わったエンジニア達の傾向• 米国のエンジニア • ネイティブベースのアーキテクチャが得意な人が多 かった • 最適化や高速化といったことが得意な人が多かった• 日本のエンジニア • Webベースのアーキテクチャが得意な人が多かった • 共通化や互換性を得意とする人が多かった 時折、最適化と互換性のトレードオフで、 実装に関して議論になることも Copyright © GREE, Inc. All Rights Reserved.
  35. 35. 役割の分担実際の開発では、以下のように各国のエンジニアで役割を分担し、力を発揮した米国のエンジニア• ネイティブのAPIに近い部分や高いパフォーマンスが 必要なベース箇所などを担当、SDKの基本性能の向上 に貢献した日本のエンジニア• HTML5やJavaScript、WebKitに関連した箇所などを 担当するなどして、日本のサーバエンジニアと密接に 関わる部分をカバーし、距離やコミュニケーションの 問題を埋めた Copyright © GREE, Inc. All Rights Reserved.
  36. 36. 今後求められるエンジニア像 Copyright © GREE, Inc. All Rights Reserved.
  37. 37. 今後求められるエンジニア像 Webとネイティブ、 両方の技術を持ったエンジニア Copyright © GREE, Inc. All Rights Reserved.
  38. 38. 今後求められるエンジニア像• 実装箇所で求められている技術要件と開発スピードから 最適な実装を選択できる判断力が必要• WebKit上で描画するより、ネイティブコードを選択 したほうが、高速・スムーズな表示が可能• UXが重視され、ユーザ体験に直接影響する箇所などは、ネ イティブコードが効果的と思われる - 最近だと、iOS版Facebookアプリが ニュースフィードをネイティブビュー に変更している Copyright © GREE, Inc. All Rights Reserved.
  39. 39. 今後求められるエンジニア像 更には Webとネイティブ、 両方の技術を持ったエンジニア + インフラを意識できるエンジニア Copyright © GREE, Inc. All Rights Reserved.
  40. 40. 今後求められるエンジニア像このようなことに気をつけたい・HTML5ベースのアプリケーションをリリースしたところ、 ネットワークのパフォーマンスが悪い地域があり、表示する ことが出来ない画面が相次いでしまった・リアルタイムなデータ取得のために、頻繁にリクエストを行う アプリケーションをリリースしたところ、サーバへの負荷が急増した Copyright © GREE, Inc. All Rights Reserved.
  41. 41. 今後求められるエンジニア像このようなことに気をつけたい・HTML5ベースのアプリケーションをリリースしたところ、 ネットワークのパフォーマンスが悪い地域があり、表示する ことが出来ない画面が相次いでしまった・リアルタイムなデータ取得のために、頻繁にリクエストを行う アプリケーションをリリースしたところ、サーバへの負荷が急増した・各国の通信回線、端末の普及状況は大きく異なる・アプリケーションの実装1つ変えるだけでも、 世界中で使われると、バックエンドの影響は大きくなる インフラを意識して開発できることが大切 Copyright © GREE, Inc. All Rights Reserved.
  42. 42. 今後求められるエンジニア像 最後に Webとネイティブ、 両方の技術を持ったエンジニア + インフラを意識できるエンジニア + ビジネス面を意識できるエンジニア Copyright © GREE, Inc. All Rights Reserved.
  43. 43. 今後求められるエンジニア像例えば新機能が企画され、出来る限り早急にリリースすることとなった Best• ネイティブで実装した場合、想定していたパフォーマンスが出せる• 予想外の不具合が発生した場合、アプリを作り直さなければならないFastest• WebView上で実装、パフォーマンスは悪いが素早いリリースが可能• Webベースの機能なので、予想外の不具合に即座に対応できる ビジネス面におけるメリットとリスクを 考慮しつつ、技術を選択することができる Copyright © GREE, Inc. All Rights Reserved.
  44. 44. 今後求められるエンジニア像• Web・ネイティブ両方の技術を適切に生かせる• 世界中でアプリケーションが使われることを意識し、 どんな環境のユーザにもサービスを提供できる• ビジネス面でのメリットとリスクも考慮して、 使うべき技術を考えられる Copyright © GREE, Inc. All Rights Reserved.
  45. 45. 今後求められるエンジニア像• Web・ネイティブ両方の技術を適切に生かせる• 世界中でアプリケーションが使われることを意識し、 どんな環境のユーザにもサービスを提供できる• ビジネス面でのメリットとリスクも考慮して、 使うべき技術を考えられる これらの要件を満たすエンジニアになる Copyright © GREE, Inc. All Rights Reserved.
  46. 46. 最後に 大阪オフィスはじめました! GREEでは、大阪をはじめとして、 グローバルでエンジニアを 募集しています!! Copyright © GREE, Inc. All Rights Reserved.
  47. 47. ご清聴、ありがとうございました Copyright © GREE, Inc. All Rights Reserved.

×