Ask anyone working in tech what agile development is and it’s likely that they will start by talking about iterative software development — as they should. The term agile was popularized, in this context, by the Manifesto for Agile Software Development, which was published in 2001 by a bunch of people across the tech industry. There is little need here to go into the Manifesto in much detail except to say that, in sum, it 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 were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban. The key, however, is it evolves through the collaborative effort of self-organizing and cross-functional teams and their customer — the end user.
Agile From the Bottom
Over the years this has resulted in the development of new tools and platforms to enable agile work of all kinds, leading Gartner to publish its Magic Quadrant for Enterprise Agile Planning Tools (subscription required), which point outs the adoption of agile practices has been driven generally from the bottom up, and enterprise-class agile development is a natural evolution of project-level agile that can support large-scale software management.
The report adds that top-down strategic adoption of agile is now growing, driven by digital business initiatives that demand quick delivery of solutions to new types of problems. More to the point it reads, “Agile transformation requires the alignment of people, processes and technology. One of the most critical components to a successful transformation model is the technology that supports the agile belief system, services and processes.” Agile work, tools and development, it seems are key elements of the digital transformation initiatives.
Related Article: When to Use Agile vs. Waterfall for Your Next Project
Agile Enterprise
Moving away from the direct application of agile to software development, its spreading use is also having an impact on business culture and how enterprises operate. In a business context, according to the Association for Project Management (APM) in the UK, agile project management is an approach based on delivering requirements iteratively and incrementally throughout the project life cycle. At the core of agile project management, their website reads, is the requirement to exhibit central values and behaviors of trust, flexibility, empowerment and collaboration.
The opposite of this is the waterfall model, a classical model used in a system development life cycle, or business management, to create a system with a linear and sequential approach.
In the agile enterprise, APM points out, there are four principles which are typically used to highlight the difference between the two, notably:
- Customer collaboration over contract negotiation.
- Individuals and interaction over process and tools.
- Responding to change over following a structured plan.
- Prototyping/working solutions over comprehensive documentation.
David Pring-Mill, a consultant for tech startups and NGOs, has a good deal of practical experience with these issues. He argues that the best, agile software development acknowledges the role of human biases in project planning and provides continual course corrections against reality, not stubborn egos. “I once witnessed a situation in which a business leader proudly proclaimed that they had remained true to their original vision, even though that vision was increasingly contradicted by the facts on the ground. The agile approach promotes adaptive planning and rapid, flexible responses,” he said.
However, he added, there are also situations in which the agile methodology, design thinking and other similar approaches simply add an unnecessary layer of bureaucracy into the office. If you have a small enough team, you don't necessarily need agile, you are agile. “If something needs to get done, you put on a different hat, take care of it, or talk to the teammate who can help. You don't have to wait for a designer to go through a process with their team and then go through wireframes and mockups and approvals, before ultimately going in circles,” he said.
Doing Agile Correctly
However, Nick Twyman, a software engineer with more than 20 years’ experience (and engineering lead at Truss), said agile management as opposed to just agile development is extremely important — largely because organizations think they are doing agile correctly when they aren't. At the heart of the problem is scrum.
Scrum is an agile framework for managing knowledge work, with an emphasis on software development, although it has wide applications in other fields and is slowly starting to be explored by traditional project teams more generally.
In the agile scrum world, instead of providing complete, detailed descriptions of how everything is to be done on a project, much of it is left up to the scrum software development team. This is because the team will know best how to solve the problem they are presented. But that is not happening, according to Twyman, despite widespread use of the terminology around agile. He has three suggestions:
Learning Opportunities
1. Project Managers
There are a lot of companies adopting agile practices — like doing scrums/stand ups — but they are doing them wrong. They are doing “performance agile; they have the nomenclature but don't actually release product into the world with real customers. Stand ups are just status updates and don't address blockers/pain points to getting things done. At the end of the day, there’s no project owner, so who is making the hard calls to prioritize? Teams need a project manager.
2. Regular Meetings
A bi-weekly check-in, not monthly or quarterly, leads to better agile management. It's easy for project leads to get into the load level conversation and not take a step back and see how it's working in the context of a client relationship. Agile management also applies to the client relationship and not just the software.
Periodically check in on expectations. You'd think that's the job of a client manager, but the project lead should be doing this. Project leads tend to get wrapped up in getting it done, but should set objectives, share how they think it's going to play out and ask if that aligns with client goals.
3. Client Post-Mortem
Conduct a client post-mortem. One-sided post-mortems with the team is, well, one-sided. It should be a direct question to the client. You learn to improve from the person whose problem you are trying to solve. This will avoid scope creep in later projects.
The Liquid Enterprise
451 Research coined the term, "The Liquid Enterprise," to describe organizations that have created an agile culture to quickly respond to change and will be best positioned to win in the future of work. We’re all being impacted by the digitization of the workplace, the rapid pace of change across markets and customer requirements. So how do you cultivate a culture to create enterprise liquidity in your organization? Iain Scholnick, founder and CEO of Braidio, offered these tips:
1. Break Down Knowledge Silos
Even small organizations create data and knowledge silos between departments. You’re probably aware that people don’t execute their daily workflows linearly; most work is done cross departmentally, so help bridge and streamline those workflows. Explore using tools that bridge silos to create a unified view of data and knowledge needed to execute across various workflows and that can also usher in productivity automation.
Company-wide collaboration is key. There are so many tools on the market (real-time chat, voice and video) that enable teams to collaborate and share knowledge. Use them! And, most importantly, ensure that the entire organization has one default collaboration system.
2. Take the Pulse
Constantly get feedback from the market, your customers and your employees to understand customer sentiment, the latest trends, new competitors, wants, needs and ideas for improvement across your products, services and even your companies' processes. Analyze the data and make actionable plans to improve problem areas.
3. Don’t Boil the Ocean
Take small quick steps towards evolving and making progress. This also allows you to quickly change course or optimize based on the current market conditions and/or changing customer needs.