What is Agile? Azure Boards Tools overview

Agile is a project management methodology primarily used in software development but has been adopted in various other industries as well. It emphasizes flexibility, customer collaboration, and the ability to adapt to changes quickly. Agile is built on the foundation of iterative development, where projects are broken down into smaller, manageable units known as iterations or sprints. Each sprint is planned, executed, and reviewed in short cycles, often ranging from two to four weeks, allowing teams to incorporate feedback and make adjustments rapidly.

Image credits: Muhammad Ashraf

The Agile Manifesto, which was introduced in 2001 by a group of software developers, outlines the core values and principles behind Agile methodology. These values include:

  1. Individuals and interactions over processes and tools.

  2. Working software over comprehensive documentation.

  3. Customer collaboration over contract negotiation.

  4. Responding to change over following a plan.

The manifesto doesn't imply that the items on the right side of these statements aren't important or needed. Rather, items on the left are simply more valued.

The Agile Manifesto emphasizes the importance of flexibility, collaboration, and customer satisfaction. There are several frameworks and practices under the Agile umbrella, including Scrum, Kanban, Extreme Programming (XP), and Lean Software Development, each with its specific processes and guidelines, but all share the common Agile principles.

💡
It's important to understand that Agile isn't a thing. You don't do Agile. Rather, Agile is a mindset that drives an approach to software development. Because there's no single approach that works for all situations, the term Agile has come to represent various methods and practices that align with the value statements in the manifesto.

Agile methodologies encourage continuous improvement and flexibility to change, making them highly effective in environments where requirements evolve rapidly. By focusing on customer needs and delivering value quickly, Agile helps organizations to be more responsive and competitive.

What Agile isn't?

Understanding what Agile isn't is just as important as understanding what it is, especially to avoid common misconceptions and misapplications of Agile principles. Here are some clarifications on what Agile isn't:

  1. Agile isn't a strict set of rules or a one-size-fits-all methodology. While Agile principles provide a framework, they're designed to be adapted to the specific needs of each project or organization. Agile methodologies like Scrum, Kanban, and XP provide specific practices, but the core Agile principles encourage adaptability and flexibility.

  2. Agile isn't just for software development. Although Agile originated in software development and its principles are most commonly applied there, the methodology has been successfully adapted for use in various fields, including marketing, education, manufacturing, and more. The Agile mindset of iterative improvement, flexibility, and collaboration can be beneficial in almost any project context.

  3. Agile isn't a way to eliminate planning or documentation. A common misconception is that Agile projects do not plan or document their work. In reality, Agile methodologies emphasize "just enough" planning and documentation to meet the project's needs without overburdening the team. The goal is to maintain flexibility and speed without sacrificing clarity or future maintainability.

  4. Agile isn't an excuse for lack of discipline or structure. Agile processes require discipline, rigor, and structure in their own right. For instance, Scrum has specific roles, ceremonies, and artifacts that must be respected for it to work effectively. Agile practices require consistent attention to detail, adherence to core principles, and regular reflection and adaptation.

  5. Agile isn't a silver bullet for all project management challenges. While Agile can help address many issues related to flexibility, customer satisfaction, and team dynamics, it's not the perfect fit for every situation. Projects with very fixed requirements or those that are highly regulated may find certain Agile practices challenging to implement. Agile works best when there's room for iteration and when the end-user's needs can drive the development process.

  6. Agile isn't just about speed. While Agile methodologies can lead to faster delivery times through iterative development and prioritization of work, the primary goal is to deliver value to the customer. Speed is a byproduct of focusing on what's most important and eliminating waste, not the primary objective.

By understanding what Agile isn't, organizations and teams can better assess how to implement Agile practices in a way that aligns with their goals, culture, and the specific challenges they face.

Why use Agile?

There are several compelling reasons why someone might choose to use Agile methodologies for project management and development. Here are some of the key benefits and scenarios where Agile can be particularly advantageous:

1. Changing Requirements

Agile is ideal for projects where requirements are expected to change or evolve. The iterative nature of Agile allows for regular reassessment of requirements and priorities, making it easier to adapt to new information or customer feedback without derailing the project.

2. Customer Collaboration

Agile emphasizes close collaboration with customers or end-users. This ongoing engagement means the product or service is more likely to meet the real needs of its users, as feedback is continually incorporated into development. This can lead to higher customer satisfaction and better user outcomes.

3. Increased Transparency

Through regular meetings, updates, and reviews, Agile provides increased transparency to stakeholders and team members. This visibility into the work and progress helps manage expectations and fosters trust between the team and its stakeholders.

4. Faster Time to Market

Agile methodologies, by focusing on delivering functional iterations of the product early and often, can significantly reduce the time to market. This rapid delivery model allows organizations to be more competitive and responsive to market demands.

5. Improved Quality

Agile practices such as continuous integration, automated testing, and regular code reviews can lead to a higher quality product. By addressing issues in smaller increments, teams can more easily maintain high standards of quality throughout the development process.

6. Risk Management

By breaking down the project into manageable units, risks are identified and addressed early in the process, reducing the potential impact on the overall project. This early detection and mitigation of risks are critical in complex projects with many uncertainties.

7. Boosted Morale and Engagement

Agile methodologies often lead to higher team morale and engagement. The collaborative, cross-functional nature of Agile teams allows for more autonomy and empowers team members to take ownership of their work. This can lead to increased productivity and innovation.

8. Flexibility and Adaptability

In a rapidly changing business environment, the ability to adapt quickly to new challenges is invaluable. Agile's flexible framework enables organizations to pivot when necessary, without being bogged down by rigid processes.

9. Continuous Improvement

The Agile principle of continuous feedback and reflection not only applies to the product but also to the process itself. Teams regularly assess their workflows and practices, seeking ways to improve efficiency and effectiveness.

In summary, Agile methodologies offer a flexible, collaborative, and efficient approach to project management and product development, making them a popular choice across industries. Whether dealing with complex, uncertain projects or striving to improve team dynamics and product quality, Agile provides the tools and mindset to address these challenges effectively.

Workshop: Set up Azure Boards using the Basic process

In this workshop we will set up an Azure DevOps project and Azure Boards with the Basic process for a fictitious Space Game team.

Create the project

Here, you'll create an Azure DevOps project.

  1. Sign in to your account at dev.azure.com.

  2. Select your organization.

  3. Select + New project. If you don't already have existing projects in your organization, there won't be a + New project button, and you can proceed to step 3.

    The Create a project dialog box opens.

  4. In the Project name field, for example enter Space Game - web.

  5. In the Description field, enter The Space Game website.

  6. Under Visibility, choose whether to make your project public or private. For now, you can select private.

    Open-source project creators will often choose public visibility so that others can view active issues and build status.

  7. Select Advanced.

  8. Under Version control, ensure that Git is selected. Under Work item process, ensure that Basic is selected.

  9. Select Create.

After just a few moments, you're taken to your new project.

Create a team

Here, you'll create a team for the project.

  1. Select Project settings in the lower corner.

  2. On the Project details page, under General, select Teams.

    You see that a default team, based on the name of the project, Space Game - web Team, has been created. We'll use this team, but in practice you might have multiple teams that contribute to the same project.

  3. Select Space Game - web Team.

    You'll see that you're already a member of this team. Let's add more members.

Add team members

Now's a good time to add members to your team. Although not required, if you'd like to add a coworker to your Azure DevOps organization, here's how:

  1. Under Members, select Add.

  2. Enter the email address of the user you'd like to add, then select Save.

  3. Repeat the process for any other members you'd like to add.

In practice, you might manage your team through an identity and access management service like Microsoft Entra ID, and set the appropriate permission levels for each team member.

Create the board

Let's add three example work items, which you can use to practice the process.

  1. In the column on the left, hover over Boards and select Boards from the menu that appears.

  2. Select Space Game - web Team. A blank board appears.

    Screenshot of Azure Boards showing an initially empty board.

    Recall that you're using the Basic process. The Basic process involves three task states: To Do, Doing, and Done.

    If you choose a different process, like Scrum, you'll see a layout that supports that process.

  3. In the To Do column, select the green + button next to the New item field.

  4. Enter Stabilize the build server, and then press Enter.

  5. Select the ellipsis (...) on the item you just created, then select Open.

  6. In the Description field, enter this text:

    The build server keeps falling over. The OS requires security patches and updates. It's also a challenge to keep build tools and other software up to date.

  7. Select Save & Close.

  8. Follow the same steps for the next two items.

  9. Follow the same steps for the next two items.

  10. Drag Stabilize the build server to the top of the stack, then drag Create a Git-based workflow to the second item position. Your final board looks like this:

    Screenshot of Azure Boards showing the initial three tasks. Each task is in the To Do column.

Azure Boards support the following item types:

Define a sprint

Now let's define a sprint.

When you create an Azure Boards project, you get an initial sprint called Sprint 1. All you need to do is assign dates to the sprint and add tasks. Here's how to follow along with the team:

  1. In the left-side column, select Sprints.

    Screenshot of Azure DevOps showing the location of the Sprints menu.

  2. Select the Set dates link in the upper-right corner.

  3. Leave the name as Sprint 1.

  4. In the Start date field, select the calendar and pick today's date.

  5. In the End date field, select the calendar and pick the date two weeks from today.

  6. Select Save and close.

Assign tasks and set the iteration

An iteration is another name for a sprint.

You have an initial set of work items and a timeline for your first sprint. Here, you'll connect work items to your sprint and assign the tasks to yourself.

  1. Under Boards, select Work items.

  2. Select Stabilize the build server.

  3. In the Iteration dropdown, select Sprint 1.

    Screenshot of Azure Boards showing the location of the Sprint 1 iteration.

  4. From the same window, select Unassigned and set yourself as the task owner.

    Screenshot of Azure Boards showing the location of the task owner.

  5. Select Save.

  6. Repeat the process for the other two work items.

    • Create a Git-based workflow

    • Create unit tests

References:

  1. https://t.me/devops_orbit

  2. Azure Boards documentation

  3. Azure: What is Agile?

  4. Azure: What is Agile development?

  5. Wikipedia: Cowboy coding

  6. What is Definition of Done?

  7. Azure: What is Scrum?

  8. Azure: Use continuous integration

  9. Manifesto for Agile Software Development

  10. Azure: About default processes and process templates

  11. Azure: Agile process work item types

  12. Azure: Manage Scrum process template objects

  13. Azure: Understand CMMI process template artifacts

  14. Azure: Add users to your organization