The Evolution of Web Development
Web development is a term that in the past referred to making web pages and web sites for the public Internet or private Intranets. Today, it more likely refers to web applications that rival the size and complexity of traditional installed desktop applications. In many ways, it is the state-of-the-art deliver method for complex business applications to both individual customers (B2C) and business (B2B). This new level of complexity means that web development is typically created by agile software teams just as other complex software systems have been in the recent past.
Agile software development began as a new way to create applications almost 15 years ago as part of the Agile Manifesto drafted in February 2001. For many technologists, this is the established norm for a modern software development lifecycle (SDLC). The agile philosophy advocates the continuous delivery of working software that support changing requirements, frequent deliverables, and daily face to face interactions with a team of highly motivated self-organized technologists. These teams advocate continuous improvement, technical excellence, good design and regular reflection on how to become more effective.
Growing Your Team
The organization of software companies into small teams can get a bit complication as they grown in size. Imagine 100 or more software engineers all working together on the same product and located in around the globe. Teams can easily become disconnected and communication can be very challenging. Time and distance makes this a real problem that has to become overcome. At some point, small independent agile teams must evolve into communities of agile teams working together on different parts of the product.
The process of moving from a collection of independent agile teams to a coordinated group of Agile Trains is a major change event for most organizations
There are several framework solutions that promise to address this challenge. One such framework is Scaled Agile Framework (SAFe) introduced by Dean Leffingwell in 2011. For the last 5 years, SAFe has promoted several major themes including: Agile Release Trains, Communities of Practice, Backlog Grooming, and Value Streams just to name a few. Let looks at these in more detail.
3 to 6 technologist make up one agile engineering team. 5 to 10 teams work together to create an Agile Release Train (ART). These teams synchronize their sprint cycles in order to deliver the committed features at about the same time. This means that sprint plan meetings must take into consideration the other teams activities. The result is a coordinated set of deliverables are added into one single system or systems at the end of every sprint. For this to work correctly there has to be excellent planning and coordination by both Engineering and Product Management.
Planning and Prioritization
Agile Engineering teams are dependent on a set of planning and prioritization activities typically organized by a Product Management team. This can be a challenge if the product owners know what the product needs but are not certain how to describe these requests or understand how to size the efforts. There must be a level or agreement for the commonly shared tasks. This includes: how to capture requirements for epics and stories, how to prioritize the backlog, and how to determine the “Definition of Ready” and “Definition of Done”.
One solution for this is cross functional Backlog Grooming meetings. These are regular sessions that can last up to two hours and include product owners, engineering leads and other subject matter experts (SMEs). The entire team examines the high level request and adds details, defines the scope, and provides a rough order of magnitude (ROM) sizing. This could be T-Shirt sizes or story points using a modified Fibonacci sequence. The result is a set of epics or stories that are organized and detailed enough for the Product team to prioritize the new features for the Engineering team to work on.
The next level of planning and organization in the SAFe universe is Value Streams. They are a collections of epics designed to create a continuous flow of value to the customer. This can be seen as a replacement for tradition projects that can have very long lifecycles comprised of dedicated staff, budgets, and stakeholders along with sophisticated governance and review processes.
Collaboration between Teams
Each agile team is designed to enable a small group of engineering’s to focus on a specific set of deliverables. Over time, this also creates isolation and tribal information can be trapped in each team. The result is a fractured code-base that takes on multiple personalities. The user experience can be very different as you click through the application. Viewing the source code may also reveal very different coding standards even with the use of static analysis tool.
Communicates of Practice
These are regular meetings with representation from each team on topics that affect the entire engineering community. The goal of the meeting is to define a common process and development standard in a collaborative way. Topics that are addressed in these meetings include: user experience design, enterprise architecture, quality assurance testing, and coding standards. These meetings are often self-directed and are designed to addressing the challenges of different locations and time zones.
Recommendations for Technology Managers
The process of moving from a collection of independent agile teams to a coordinated group of Agile Trains is a major change event for most organizations. Take the time to thoughtfully plan this transformation. Remember to make the time to communicate this plan to all stakeholders that may be affected by the change. The first announce will open a change window that may take months to complete. Try to describe each of the steps of the new process in great detail. Look for those in the team that are struggling with the change and spend more time listening. Allow time for the team members to work the new process until it becomes the “new normal”.
If this appears to the be the next step for your technology organization, consider reading more about SAFe.The online document will provide the details to help you start your way towards a much larger world of Agile software development.