Agile development is a buzzword. But how does it actually work? This overview will show you how agile methods such as scrum and kanban can be used to collaborate with teams.
It is hard to believe that agile technology turned 20 years old in 2017. Once a niche practice, agile was primarily used by startups to collaborate in colocated spaces using whiteboards and stickies. It is now an established, scalable and widely-used set of software development tools and processes.
There is a rich history to agile development. This is why organizations use agile methods like scrum and Kanban to modernize their applications, improve customer experience and implement digital transforms. These methodologies are also well-known for their connections to design thinking, product management and devops. Today, fewer people ask “What’s agile?” They are more interested in guidance on how to align their teams with agile best practices.
This article provides a guide to agile methods, starting with people, processes, tools, and teams. This article will also explain how agile connects with devops and best practices that can help organizations create an agile culture and deliver better software.
Roles in agile methodology
The first step in agile software development is to define the users of a product and then document a vision statement that outlines the problems, opportunities and values to be addressed. This vision is captured by the product owner and shared with multidisciplinary teams (or groups) to achieve it. Agile development involves many roles.
Agile processes always start with the customer or user in mind. To illustrate the different types of customer behaviors and workflows, we often create user personas.
Product owners are responsible for representing the customers and any other stakeholders. To create a product vision, this person takes in customer feedback, ideas and insights. Although product visions can be brief and simple, they provide a clear picture of the user or customer, their values, and a strategy to address them. Google’s original vision was something like this: “Let’s make finding relevant websites and pages easy for everyone with internet access with a simple interface that is keyword-driven and an algorithm which ranks reputable sources higher within the search results.”
The product owner, regardless of the vision, is responsible for creating it and working with the developers to make it a reality.
The product owner creates a series user stories to help the development team. Each user story should identify the target audience, their problems, the reason the solution is necessary, and the constraints and acceptance criteria that define the solution. These user stories are prioritized by the product owner and reviewed with the team to ensure that they all have a common understanding of what is being asked.
Software development team
Multidisciplinary teams should include people with diverse backgrounds and skills. Agile development teams must include developers as well as data engineers and quality assurance automation engineers. User experience (UX), designers, and other roles, depending on the type or project.
Agile is about delivering software. Teams must create functional applications and integrate with other users to deliverables. The team members must agree on what they are working on, who is doing it, and how it will be developed.
Agile teams are often assigned other roles, such as the following:
- Tech and team leaders work with the product owner to plan and implement technology and security. Tech leaders have broad responsibilities which might include planning implementation details and estimation stories .
- Scrum masters are often responsible for coaching new teams about agile processes, responsibilities and tools. Scrum master responsibilities include reviewing and resolving blockages that can impede progress, reviewing methods to improve agile team velocity, as well as grooming backlogs.
- Product owners business analysts partners. The analyst’s responsibilities include creating wireframes and documenting user stories. They also review test results. When software developers are creating microservices, or other technical products, business analysts can be very helpful.
Organizational leaders have the responsibility of deciding how large and how many agile teams they should create. To maximize collaboration among teammates, many follow Jeff Bezos’s best practice of creating two agile teams that are pizza-sized.
Scrum and Kanban
After a product vision is established and a team or teams adopt agile principles (beginning with those identified in the Agile manifesto), the organization must choose a process method. The primary agile processes are Scrum and Kanban.
Kanban is a popular choice for organizations because it is easy to understand and implement. Kanban is a fan-in/fan-out process in which the team pulls user stories out of an intake board and then funnels them through a workflow to mark them done.
Many organizations use scrum to organize their work in cadences known sprints. These usually last one to two weeks. The product owner creates the requirements using user stories and then prioritizes them according to their business value. The backlog is reviewed by the team and the top user stories are committed to during the sprint.
Scrum is a series of standard meetings, sometimes called scrum ceremony or scrum rituals, that help teams to commit to sprint priorities, complete work during each sprint, and to end each sprint with success. These meetings often include some common elements.
- Sprint planning where product owners share their priorities and the team decides how many work they can do during the sprint.
- Teams can discuss user stories in daily standup meetings. Coworkers share their daily goals and teammates can raise any blocks that may impede progress.
- Sprint reviews are meetings where the functionality of the sprint is demonstrated to the product owner in order to get acceptance on the completed work.
- Retrospective meetings allow the team to discuss what went well and what can be improved in their agile and/or software development processes.
These practices can be adapted to agile hybrid models.
Scrum increases a team’s productivity by empowering them to work together in a manageable amount. Instead of having a project manager, product or program manager set the timeline and scope, Scrum empowers the team. A user story is a microcontract that defines the business need and the acceptance criteria. This allows teams to organize on how they want to implement. Sprint reviews are one form of feedback loop. Product owners are encouraged and encouraged to re-align priorities and define requirements before each sprint. Sprint retrospectives are a way for the team to improve collaboration and start process improvements.
Best practices in technical technology for agile development
Although Scrum is the core process for team collaboration, planning and delivery, it does not address technical best practices, organizational standards or the creation and driving of agile cultures.
Many technical best practices today include the definition of the software development cycle (SDLC), and the implementation of devops processes. The SDLC contains guidelines for writing code and managing software assets. It also provides technical standards. Continuous testing and devops automations such as CI/CD and Infrastructure Code (IaC) allow for a more reliable path towards production. Other delivery methods, such as shift-left security, feature flagging and canary releases, are more flexible and reliable.
Technology organizations can improve their culture by empowering self-organizing teams, using agile methodologies, modernizing to cloud architectures, and devops automations. Continuous delivery models replace longer development cycles and allow for faster release of features and improvements. Automations bridge the gap between developers who want autonomy and speed, as well as operations responsibilities regarding performance, reliability, security, and other responsibilities. These practices combine to help agile teams make better architecture decisions, drive experimentation and become more data-driven, as well as correcting mistakes faster.
Other practices, such as integrating design with scrum and developing value stream, implementing product management techniques and implementing continual planning allow agile teams to collaborate with customers, end users, and business stakeholders.
To collaborate on agile backlogs or kanban boards, agile teams often use tools such as Jira Software and Azure DevOps. These tools allow agile teams to prioritize work, capture requirements and complete user stories. They also review burndown reports and automate workflows with version control, CI/CD and other tools.
SAFe, Enterprise Scrum and LeSS (Large Scale Scrum), as well as the Spotify Model and StarCIO Agile, are all good examples of concepts and guides that can be used to drive agile principles, practices, and standards across multiple collaborating teams.
Coaches recommend that agile practices be started with clearly defined business objectives, limited teams and carefully chosen tools. Leaders of organizations face the challenge of finding the right mix of self-organization principles and tools, diverse teams, and tools that will enable them to grow, expand, scale, and sustain their technology capabilities.