Rethinking Process: Squad-Based Agile Development
In agile mobile app development, building a product should be a collaborative and transparent process. Our process is inspired by common agile philosophies such as Lean and Kanban, which help us deliver compelling mobile experiences for our users. Our custom squad-based development process at Clearbridge Mobile consists of 5 key components: product definition, project management, design, development, and QA that work together to promote flexibility, risk reduction, and predictable project velocity.
Our squad-based development process allows our team to plan together, exchange feedback, transfer knowledge, and review each other’s work. Each squad consists of a mobile application architect, product owner, quality assurance, developers, and a designer. This team works together to achieve better team efficiency, eliminating risks and biases and allowing for more transparency.
Advantages of Squads
A squad-based approach offers a lot of advantages that help us deliver quality products:
- Transferable Knowledge: One of the most important aspects of squad-based development is that it allows for the transfer of knowledge across all team members. Every member of the squad is aware of every aspect of the project which eliminates silos, allowing the team to retain knowledge for future product maintenance.
- Predictable Velocity: One of the most common risks in product development is time. As product needs evolve and new challenges arise, teams that aren’t flexible or adaptable struggle to meet important deadlines. Since our squads plan together, share knowledge, and communicate frequently, they are able to adapt in order to meet project deadlines. During development, DOWNTIME is minimized and our squads are able to quickly overcome challenges.
- Co-location: Co-location speeds up development time as squad members are able to communicate face-to-face rather than online or over the phone.
- Risk Reduction: Knowledge transfer provides every team member with a more holistic view of the project, allowing them to be aware of all other facets of the project, aside from their own. This reduces knowledge risk, personnel risk, as well as many other common project risks.
These advantages allow us to deliver better products more quickly with predictable velocity and fewer risks.
Our first step with every project is establishing product definition, which sets the framework for efficient product development. Next, we move right into sprint planning:
Prior to the sprint beginning, each squad conducts a sprint planning session which lays out the goals for each sprint, the division of the work, as well as the features needed to complete the sprint. The squad reviews the product backlog and organizes story points which have already been prioritized during product discovery. The Product Owner reviews the roadmap, determines the hours required for each task, and capacity for features to include in the next sprint. We use a strategy commonly known as rolling wave planning, which lets us plan the sprint using the knowledge and insight we’ve gained from previous sprints.
Splitting up the specifications into incremented epics and stories helps our developers manage their project with more control and a focused goal. Each story point represents a particular product feature(s) which we map on a project roadmap to guide our developers. Each story is estimated by the team, allowing for transparency with the timeframe for implementation and easily enabling us to track our progress. Depending on the complexity of the feature, it can be labeled as one story point or several.
After sprint planning, the squad moves into the execution of the project. Our development team consists of two parts: mobile (Android and iOS) who develop native apps and cross-platform frameworks such as Xamarin and Appcelerator. The second are full-stack developers who handle the application logic: back-end development such as database integration, web services, and API, as well as front-end UI.
At Clearbridge, our squads conduct daily scrums where each team member provides updates of their progress, what needs to be done next, and solutions to challenges that arise. The Product Owner organizes these stand-ups for the squad and answers any questions that the team may have. We welcome clients to join in on our scrums if they wish, but many choose to view progress through our project management boards, which they have full access to throughout the development of their product.
During development, we conduct code reviews to ensure that we avoid bugs being pushed into production. Another developer will review a section of code before it’s merged into the main development branch. In doing so, each developer reviews other developers work and their commits to ensure that it’s correct. Not only does this process allow the team to verify each other’s code but it also allows the reviewer to learn more about other features and provides a sense of overlap and knowledge transfer. This creates a better understanding of how they structure their code and creates more awareness of other product features that are being developed.
At the end of each sprint, our teams present their completed work to the Product Owner and the rest of the team. The Product Owner decides to either move forward with the next sprint or send it back to sprint planning. Clients are encouraged to participate in the end-of-sprint demos as well to provide us with their feedback. With this transparent approach, the client is involved throughout the entire project lifecycle.
At the end of every two-week sprint, we perform a retrospective of the challenges and how to improve our process for future sprints. This retrospective is shared with the entire team for a greater sense of transparency and knowledge transfer for future sprints and projects.
Advantages of Sprints
- Early and Predictable Delivery: Having a set amount of time to focus on a certain set of features helps us deliver projects quickly and frequently with more predictability.
- Client-Focused: At Clearbridge, we heavily involve our clients which differentiates us from other mobile app development companies. We use stories with a business-focused acceptance criteria to define product features. By involving the client with our product discovery, it allows them to have control of the project and determine the priority of features. Our team of product, development, and design experts help our clients to understand how to deliver the features that provide the most business value. Our clients are involved throughout the entire project life-cycle and often like to see the sprint demos at the end of each sprint which allows them to make adjustments early on, saving on costs and time.
- Quality Products: Throughout development, we frequently conduct QA tests to ensure that the quality is continuously improved by fixing issues early on.
- User-Centric: Right from the product discovery stage, our team puts the user first by creating user personas to guide development. User personas allow us to center every project decision around the user to fix their pain points, allowing us to deliver products that add value and meet their needs. Incremented timeframes provide us with the opportunity to gather feedback after two weeks so that the development team stays focused on the user’s needs. This helps us gain valuable feedback early on in the project in order to adjust accordingly, sooner rather than later.
- Goal Oriented: Above all, sprints help us manage our projects by focusing on short-term goals, allowing us to build quality products that meet the needs of both our clients and users.
Our agile process puts both customer and client needs directly at the core of development in every project we work on. With this approach, project management risks such as scope, time, and costs are properly managed, producing a successful project outcome.