Thursday, February 26, 2015

Considerations for Global Mobile Games (1) - Zone Segmentation

What is a Zone?

A zone is a logically isolated environment in which specific groups of users can interact with the application without interference from other groups. The core idea is to ensure that each customer group has a seamless and uninterrupted user experience.

  • Think of a zone as a sandboxed environment tailored for a specific audience.
  • Each group (developers, testers, business units, end-users, etc.) requires its own isolated zone to interact with the app for different purposes.

Why is Zone Segmentation Necessary?

  1. Different User Groups:
    • Developers, testers, business units, and end-users often require unique environments for their specific needs.
  2. Conflict-Free Testing:
    • Zones prevent one group’s actions from interfering with another’s, ensuring isolation and data integrity.
  3. Localized and Global Testing:
    • Especially crucial for global mobile games, where localized environments are necessary for language, culture, and compliance testing.
  4. Scalability:
    • Designing zones early simplifies managing environments for diverse user needs.

Elements Requiring Zone Segmentation

  1. App (Client):
    • Custom client builds for different zones (e.g., development, QA, production).
  2. Server:
    • Dedicated application and storage instances for each zone.
  3. Platform Services:
    • Authentication, billing, community features, profiles, push notifications.
  4. Game Services:
    • Gameplay, leaderboards, achievements.
  5. CDN (Content Delivery Network):
    • Separate configurations for static resources.

Commonly Defined Zones

  1. Development:
    • For active feature development and debugging.
  2. QA:
    • Divided into functional QA, performance QA, and other subcategories.
  3. Internal Testing:
    • For internal stakeholders, such as CEO demonstrations or company-wide testing.
  4. External Testing:
    • Includes app store submissions, regional tests, and external partner testing.
  5. Production (Service):
    • The live environment for end-users.

Challenges in Zone Management

  1. Overlapping Terminology:
    • Different teams often have varied interpretations of zones. For example, a "stage" for a service developer might mean something entirely different to a game developer.
  2. Resource Allocation:
    • Maintaining separate infrastructure for every zone can be resource-intensive.
  3. Complexity in Scaling:
    • As the number of zones increases, managing them can become a logistical challenge.

Portable Sandbox

  • Vision: Instead of maintaining separate environments for each zone, imagine a self-contained executable sandbox that bundles all necessary services, platforms, and configurations.
  • Advantages:
    • Reduced infrastructure overhead.
    • Simplifies setup and onboarding for new stakeholders.
    • Facilitates scalability and portability across teams and regions.

Best Practices for Zone Management

  1. Zone Naming:

    • Use customer-centric terminology to unify the understanding of zones across teams.
    • Align the naming conventions with the end-user’s perspective (e.g., development, testing, production).
  2. Remote Zone Configuration:

    • Instead of hardcoding zone settings during build time, enable remote configuration based on build numbers or unique identifiers. This allows flexibility in defining zones post-deployment.
  3. Early Planning:

    • Incorporate zone segmentation into the initial architecture. Retrofitting zone logic into a fully scaled system can be complex and error-prone.

Key Takeaways

  • Zones are critical for ensuring smooth collaboration across diverse user groups and stages of the app lifecycle.
  • Early investment in zone segmentation planning pays off in scalability and maintenance.
  • The concept of a portable sandbox offers a forward-thinking approach to managing complex environments efficiently.