# Agile Methodology Chapter One

TIP

Reading time 5 minutes. 😁

Agile innovation methods have revolutionized information technology. Over the past 25 to 30 years, they have significantly increased success rates in software development, improved quality and speed to market, and boosted IT teams' motivation and productivity.

Agile methodologies that involve new values, principles, practices, and benefits and are a radical alternative to command-and-control-style management are spreading across a broad range of industries and functions.

Every technology organization today seems to practice the agile methodology for software development, or a version of it. Or at least they believe they do. Whether you are new to agile application development or you learned software development decades ago using the waterfall software development methodology, today your work is at least influenced by the agile methodology.

But what is agile methodology, and how should it be practiced in software development? How does agile development differ from waterfall in practice? What is the agile software development lifecycle, or agile SDLC? And what is scrum agile versus Kanban and other agile models?

# The Agile Manifesto

Back in 2001 a bunch of middle-aged white guys with a huge amount of collective experience in development projects got together to see if they could come up with a better way of managing software projects.

The result was the Agile Manifesto. If you look at their website it quickly becomes clear that these guys were experienced developers, not designers.

This manifesto is made up of four Values and 12 Principles that are meant to guide a philosophy of understanding. It is not a set of rules or software tools. It is an approach and a mindset.

# The four Values

Individuals and interactions over processes and tools.

Working software over comprehensive documentation.

Customer collaboration over contract negotiation.

Responding to change over following a plan.

# The principles of agile

There are 12 key principles that still guide agile project management today.

  • Customer satisfaction is always the highest priority and is achieved through rapid and continuous delivery.
  • Changing environments are embraced at any stage of the process to provide the customer with a competitive advantage.
  • A product or service is delivered with higher frequency.
  • Stakeholders and developers collaborate closely on a daily basis.
  • All stakeholders and team members remain motivated for optimal project outcomes, while teams are provided with all the necessary tools and support, and are trusted to accomplish project goals.
  • Face-to-face meetings are deemed the most efficient and effective format for project success.
  • A final working product is the ultimate measure of success.
  • Sustainable development is accomplished through agile processes whereby development teams and stakeholders are able to maintain a constant and ongoing pace.
  • Agility is enhanced through a continuous focus on technical excellence and proper design.
  • Simplicity is an essential element.
  • Self-organizing teams are most likely to develop the best architectures and designs and to meet requirements.
  • Regular intervals are used by teams to improve efficiency through fine-tuning behaviors.

# The roles in the agile methodology

An agile software development process always starts by defining the users and documenting a vision statement on a 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 this vision. Here are the roles in that process.

# User

Agile processes always begin with the user or customer in mind. Today, we often define them with user personas to illustrate different roles in a workflow the software supports or other customer needs and behaviors.

# Product owner

The agile development process begins with someone who is required to be the customer's voice, including any internal stakeholders. That person distills all the insights, ideas, and feedback to create a product vision. These product visions are often short and straightforward, but they nonetheless paint a picture of who the customer is, what values are being addressed, and a strategy on how to manage them. I can imagine Google's original vision looked something like "Let's make it easy for anyone with internet access to find relevant websites and webpages with a simple, keyword-driven interface and an algorithm that ranks reputable sources higher in the search results."

We call this person the product owner. His or her responsibility is to define this vision and then work with a 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 that spell out in more detail who the target user is, what problem is being solved for them, why the solution is crucial for them, and what constraints and acceptance criteria define the solution. These user stories are prioritized by the product owner, reviewed by the team to ensure they have a shared understanding of what is being asked of them.

# Software development team

In agile, the development team and its members' responsibilities differ from those in traditional software development.

Teams are multidisciplinary, composed of diverse people with the skills to get the job done. Because the focus is on delivering working software, the team has to complete end-to-end functioning applications. So the database, business logic, and user interface of part of the application are developed and then demoed—not the whole application. To do this, the team members have to collaborate. They frequently meet to make sure everyone is aligned on what they are building, on who is doing what, and on exactly how the software is being developed.

In addition to developers, software development teams can include quality assurance (QA) engineers, other engineers (such as databases and back-end systems), designers, and analysts, depending on the type of software project.

# Agile Methodology continued... page 2

Last Updated: : 1/7/2023, 2:53:14 PM