Are Your Development Processes Truly Agile?
via DevOps.com by Nancy Van Elsacker Louisnord
Many organizations are making a move to agile-powered environments, but agile development is more than a name. How do you determine if your organization is truly agile? The evaluation starts with the Agile Manifesto. If you’re following the principles laid out in the manifesto, that’s a good sign that you’re on an agile journey.
For those not familiar with the manifesto, however, let’s review its points quickly. The Agile Manifesto’s core is simple—the primary points of the manifesto include the following:
Individuals and interactions take precedence over processes and tools. This means the organization and its leaders place more value on people than they do on processes. People respond to business needs and they drive the development process within the organization.
Working software takes precedence over comprehensive documentation. This is not about not providing any documentation at all, but you should streamline documentation. Any documentation that does exist should be necessary only for current and future development.
Customer collaboration over contract negotiation. Engaging customers throughout the development process makes it easier for your people to meet the needs of your customers. Doing so means all business case features are clear and useful to customers.
Responding to change over following a plan. This means change is welcome throughout the project, each project and allows for priorities to shift over time versus following a rigid or scripted development plan.
The Agile Manifesto 12 Steps
Essentially, the core values of the Agile Manifesto can be fully detailed in 12 steps, or principles. These principles support the key points of the manifesto and provide additional detail as to how the practices can be followed in an agile environment. Again, for those who currently follow the Agile Manifesto, the following may be redundant. For those new to the concept, these steps provide clarification and direction to drive agile processes overall.
- Self-organizing teams encourage great architectures, requirements and designs.
- Regular reflections on how to become more effective.
- Frequent delivery of working software.
- Support and trust for those involved in the process.
- Enable face-to-face interactions.
- Working software is the primary measure of progress.
- Agile processes to support a consistent development pace.
- Attention to technical detail and design enhances agility.
- Collaboration between the business stakeholders and developers throughout the project.
- Customer satisfaction through early and continuous software delivery.
- Accommodate changing requirements throughout the development process.
Based on these principles, there are three points—the final three listed here—that we often find the most compelling. A colleague of mine, Tobias Spöcker, scrum master and QA engineer, says these points naturally float to the top for an organization such as TOPdesk.
The reasons for this are fairly obvious. We create products that are sold to thousands of customers around the world. To pinpoint any development problems, we look to the scrum process described by the scrum guide, with an emphasis on the last parts of the process. For example, the following illustration is edifying for explaining this process:
Notice in the “product release” phase illustrated above that the team listed here focuses on finished work for the development sprint. This portion of the model should be able to present a product incrementally to the stakeholders, including the customer. Ideally, these increments are released through a continuous delivery model. Here are two principles that further illustrate the point: Collaboration between the business stakeholders and developers throughout the project and customer satisfaction through early and continuous delivery of the software.
There’s an additional consideration when providing value: Develop what is right; don’t simply develop something right.
At TOPdesk, providing the proper value to customers is a major goal for us. To achieve our organizational goals, we consider the impacts on our customers so when we start on a new product development project, we always work with some of our customers so they are involved in the development process, which makes the process and the product better for everyone. Those of our customers that have participated in our development processes usually tell us that they find the experience valuable and that being a part of the process also helps them when they use the solution. These same customers also express satisfaction in our efforts—as partners in the development process—and with us as an organization.
Direct Feedback is the Key to Better Development
The immediate and direct feedback we receive also helps to achieve another of our key operational principles: accommodating changing requirements throughout the development process. Through the partnership with our customers during the development phase, we’re able to receive regular, constructive feedback—even criticism—that leads to changes and evolutions in the product map and development stream. This feedback facilitates refinement of the most important processes and features, and moves them to the top of the priority list, leading to a project that’s undertaken with a focus on the most valuable areas so that development capacity (on the part of our organization) is spent the most wisely.
The agile mindset and the scrum framework are powerful tools if they are used in the right way. When considering following any development principles, don’t go in blindly. It is a good idea to see which parts of the toolbox help your organization be the most agile, efficient and customer-focused, and utilize the processes and principles that work best for your organization.
Consider direct feedback from customers, which can be implemented immediately into the product scope. Provide simple-to-use customer communications vehicles, including metrics built into the software, surveys and feedback portals. Live demos of the product, when ready, can be extremely effective in helping you collect copious feedback efficiently. However, if your feedback loop is too big—meaning there are too many cooks in your kitchen—the whole process will quickly balloon beyond profitable, resulting in a less agile development process.
The projects we develop using these principles are the ones that deliver the most value to our customers the most quickly. Including feedback from customers makes the development team more confident in what they are creating, and our customers tell us that they feel their needs and input have been heard, which they greatly appreciate.