Agile Methodology

 

What Is Agile Methodology in Project Management?

The Agile methodology is a way to manage a project by breaking it up into several phases. It involves constant collaboration with stakeholders and continuous improvement at every stage. Once the work begins, teams cycle through a process of planning, executing, and evaluating. Continuous collaboration is vital, both with team members and project stakeholders.

Agile methodologies overview

The Agile Manifesto of Software Development put forth a groundbreaking mindset on delivering value and collaborating with customers when it was created in 2001. Agile's four main values are:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan

Roles in agile methodology

An agile software development process always starts by defining the users for a particular product and documenting a vision statement for the scope of problems, opportunities, and values to be addressed. The product owner captures this vision and works with a multidisciplinary team (or teams) to deliver on it. Several roles are involved in an agile development process.

Users

An agile process always begins with the user or customer in mind. Today, we often define user personas to illustrate different workflow roles or types of customer needs and behaviors.

Product owner

The product owner is tasked to be the voice of the customer, including any internal stakeholders. This person distills insights, ideas, and feedback to create a product vision. Product visions are often short and straightforward, but they nonetheless paint a picture of who the customer or user is, what values are being addressed, and a strategy for addressing them. I imagine Google’s original vision looked something like, “Let’s make it easy for anyone with internet access to find relevant websites and web pages with a simple, keyword-driven interface and an algorithm that ranks reputable sources higher in the search results.”

Whatever the vision, the product owner is responsible for defining it and then working with the development team to make it real.

To work with the development team, the product owner breaks down the product vision into a series of user stories. Each user story should identify the target users, their challenges, why the solution is needed, and what constraints and acceptance criteria define the solution. The product owner prioritizes these user stories and reviews them with the team to ensure they have a shared understanding of what is being asked of them.

Software development team

Teams should be multidisciplinary and include a diverse group with the skills and backgrounds to get the job done. In addition to developers, agile development teams should include quality assurance automation engineers, data engineers, user experience (UX) designers, and other roles depending on the type of software project.

Agile focuses teams on delivering working software, so they must complete end-to-end functioning applications, integrations, and other deliverables that impact users—not just the technical components. Team members must align on what they are building, who is doing what, and how the software will be developed.

Agile teams often have other roles assigned, including the following:

  • Tech or team leads partner with the product owner on architecture, non-functional acceptance criteria, sequencing, dependencies, and other technology and security considerations. Tech leads have broad responsibilities that might include estimating stories and planning implementation details with the team.
  • Scrum masters often coach new teams on agile processes, responsibilities, and tools. Scrum master responsibilities can include resolving blocks that impede progress, reviewing approaches to improve the agile team’s velocity, and grooming backlogs.
  • Business analysts partner with the product owner. The analysts’ responsibilities often include creating wireframes, documenting user stories, and reviewing test results. Business analysts are especially helpful when software development teams are developing microservices and other technical products, and where the business analyst has more software development knowledge than the product owner.

Comments

Popular Posts