Over the last eight years, mobile app development has transformed significantly for us at Ateam Soft Solutions. This post details the journey of scaling mobile, the challenges faced, and the innovative solutions implemented along the way. From app delivery and architecture to organizational strategies, we’ve built a model to ensure seamless execution and superior user experience.
The Growing Importance of Mobile: Why We Scaled
Our mobile app has over 8 million downloads—a massive achievement in the Australian market. With a growing user base and increasing engagement, mobile became a pivotal part of our business. Initially a small-scale project, it evolved into a key product that many users exclusively interact with.
Usage Trends
- Over the past six years, mobile app usage has steadily grown, surpassing web usage in importance.
- Market saturation and mobile-first audiences necessitated a focused investment in mobile development services.
Challenges in Scaling Mobile Development
Organizational Constraints
Scaling our organization meant exponential growth in engineering staff and systems. However, mobile development couldn’t follow the same trajectory due to its unique technical constraints. Unlike web systems that can scale with multiple independent apps, mobile requires a unified codebase and centralized architecture.
Team Bottlenecks
Our single mobile development team became the bottleneck:
- High demand for mobile features from various business units.
- Limited capacity to focus on improving user experience while accommodating requests.
- Inability to simply expand team size without rethinking architecture and organizational structure.
Federated Delivery and Mobile Architecture: Our Solution
We adopted a federated delivery model, inspired by the principles of collaboration and autonomy, to overcome bottlenecks and scale effectively.
Key Elements of the Model
-
Central Architecture with Independent Contributions
- Teams independently contribute to specific components within the mobile app while adhering to a centralized architecture.
-
Mobile Companion API
- A backend-for-frontend pattern aggregates data for apps, enabling faster updates and reducing dependency on app store releases.
-
Protocol Buffers for Data Modeling
- These allow smaller payloads and dynamic data transformations across iOS and Android platforms.
-
Common UI Library
- A shared library of reusable UI elements ensures consistency in user experience while allowing teams to contribute new elements.
-
Universal List Component
- A core UI component for federated teams to create new screens while maintaining uniformity.
Delivery and Component Ownership
From Bottleneck to Distributed Ownership
Initially, the core mobile team managed all components, leading to delays. By introducing a separated component model, we:
- Decentralized ownership.
- Enabled different teams to contribute independently to the mobile codebase.
- Improved delivery speed while maintaining architectural integrity.
Technical and Organizational Evolution
Federated Teams in Action
Our current structure includes multiple federated teams contributing to three core apps. These teams:
- Focus on delivering consumer value.
- Maintain autonomy while adhering to shared architectural guidelines.
- Utilize app developers and mobile development agency resources for seamless execution.
Balancing Platforms and Products
Building a platform to support multiple teams and delivering customer-centric features simultaneously is challenging. We’ve adopted a dual mindset, ensuring platform stability while enabling rapid feature development.
Building Trust Among Teams
Collaboration as the Foundation
One of the most critical elements in scaling mobile development has been fostering trust among teams. Early-stage collaboration through secondments allowed federated teams to build familiarity with the core architecture. This trust ensured smoother contributions and fewer conflicts in the codebase.
Documentation and Training
To further scale without overwhelming the core team:
- We created accessible documentation for onboarding new contributors.
- Provided training for teams to understand architectural nuances.
- Ensured alignment on product and UX goals to maintain a unified vision.
Expanding the Mobile Surface Area
The Impact of Federated Delivery
With the new federated delivery model in place, the surface area of our mobile apps has significantly expanded:
- Multiple federated teams now contribute independently.
- The architecture supports both modular and centralized components.
- Improved autonomy has allowed faster iterations and delivery of app development services.
Example Use Cases
Key federated components, such as the universal list and common UI elements, have enabled teams to:
- Build new app screens with consistent design principles.
- Reuse core elements like carousels, property listings, and agent images across teams.
- Reduce duplication and ensure scalability.
The Role of Mobile Companion API
Backend-for-Frontend Pattern
The Mobile Companion API serves as a bridge between the apps and backend systems:
- It aggregates data into a presentation model optimized for mobile.
- Reduces the need for frequent app store updates by centralizing transformation logic in the backend.
Enhanced Dynamic Capabilities
With the API in place, we’ve achieved:
- Greater flexibility in managing UI changes.
- The ability to launch new features dynamically without modifying app code.
- A seamless user experience supported by lightweight, efficient data models.
Key Architectural Highlights
Protocol Buffers
To overcome the limitations of JSON-based payloads, we adopted protocol buffers:
- Smaller payloads improved app performance.
- Consistent data modeling simplified integration across iOS and Android platforms.
Reusable UI Elements
The common UI library plays a vital role in maintaining uniformity:
- Teams contribute reusable elements back to the library.
- These elements degrade gracefully, ensuring compatibility across various app modules.
Scaling Beyond a Single Core Team
The Shift to Distributed Ownership
Previously, a single core team managed all aspects of mobile development, limiting scalability. Today:
- Federated teams own distinct components, contributing as independent units.
- The core team focuses on maintaining the architecture and enabling collaboration.
Platform and Product Integration
The platform-first approach aligns mobile development with broader organizational goals. This strategy:
- Facilitates shared platform components across teams.
- Balances feature delivery with long-term architectural stability.
Conclusion: Lessons Learned and the Road Ahead
Our journey highlights key lessons for scaling mobile development:
- Timing Matters: Introduce scaling structures only when organizational complexity demands it.
- Trust and Collaboration: Build trust among federated teams through early-stage collaboration, documentation, and training.
- Dynamic Architecture: Use modular architectures to support growth without creating bottlenecks.
Final Takeaways
- Recognize the right time to scale based on organizational needs.
- Build trust and collaboration among teams to enable autonomous contributions.
- Invest in dynamic architectures to future-proof mobile apps for evolving demands.
Our journey is ongoing, and we continue to learn and adapt. By leveraging these insights, Ateam Soft Solutions is committed to delivering innovative solutions that empower businesses to succeed in the mobile-first world.
As a leader in app development Australia, Ateam Soft Solutions applies these principles to help clients achieve their mobile goals. Whether building mobile app developers teams or delivering full-scale mobile development services, our federated delivery model ensures agility, scalability, and excellence.