Agile and deadlines: how do they work together?
It seems like a case of the irresistible force against the immovable object: the Agile methodology of short workflow ‘sprints’, coming up against the hard business reality of deadlines. It might seem like Agile is too flexible and adaptable to suit deadline-heavy work, but with the right approach, they can complement each other much better than you might have thought.
This blog explores the relationship between Agile and deadlines: how they can be approached in conjunction with each other, how to keep teams on track throughout a project, and real-world examples of how they come together in practice.
What is Agile?
Agile is a software development methodology based on the idea of continuous delivery. It’s a philosophy around collaboration and workflows, so that small sections of working software are developed and delivered on a regular basis. These short ‘sprints’ are typically no more than a few weeks in length (and sometimes even less than that), but enable greater flexibility and openness to change during the development life cycle.
Traditional vs Agile software development
Traditional software development tends to be very formal, structured and rigid in its approach. It’s all about planning and predictability: project requirements are very strictly defined, with written communication and formal meetings used to communicate. Planning and delivery phases tend to be bigger and longer, and the organization of the teams involved is normally divided and hierarchical.
When Agile is deployed, however, many of these barriers are removed in the name of flexibility and adaptability. Getting software working and satisfying customers are the main drivers of project requirements, while teams are encouraged to collaborate with each other closely (especially face-to-face) on a regular basis. Planning and delivery ‘sprints’ means that changes can be made without overly affecting other parts of the process, while teams are normally given the freedom to organize themselves in whatever way best suits the needs of the project.
How does a team think about implementing Agile without long-term fixed deadlines?
Instead of focusing on setting strict deadlines, Agile teams instead consider project goals and problems that need solving. They use sprints to achieve small wins and provide potentially shippable product increments at a constant pace. From there, teams can ensure they are making the right kind of progress — working on what they need to be doing to move towards project completion.
However, this doesn’t mean that deadlines are dispensed with entirely when Agile is used. Instead, they’re given a more flexible framing, as the short nature of the sprints means that any sudden changes or unforeseen issues are compartmentalized into one area. Instead of problems meaning that an entire project is thrown behind schedule, only one small section of it is affected, which theoretically means the problem itself can be remedied more easily. Indeed, it’s often the case that Agile teams accept that a certain amount of change will always crop up in any project, and are therefore better prepared to accommodate them.
Real life scenario
There are always deadlines in real life scenarios. The main difference between traditional project management and agile development is how you treat the inevitable changes.
In the traditional way you try to prepare everything upfront, estimate, set the plan and execute it. Changes are somehow unwanted, something you are not prepared for, every change needs to be documented and handled as it will likely have some influence on the timeline.
In agile teams everyone knows we need to be ready for a certain event / moment in time - there is a marketing campaign scheduled for our product, our new solution needs to be in place for Black Friday sale, we need to present during the visit of a potential investor, you name it. The team knows and does everything they can to have the most important things done and also are ready to incorporate any good ideas / new things they find out during the time frame. The goal is to maximize the value that they can deliver to their clients / users. The planned product at the beginning and the finally delivered product can be very different, because the situation changed and the team adjusted accordingly.
Keeping teams on track and ensuring efficiencies
Within Agile, there are a number of different practices and frameworks that ensure everyone is pulling in the same direction, and that the most efficient, timely development takes place throughout the process.
Stand-ups
Many Agile frameworks, such as Scrum, have particular processes that help keep everyone aligned, and one of the most common is the daily stand-up meeting. At the start of each working day, every person on the team will take part in a short meeting, taking it in turn to share their progress from the previous day and discuss what they have planned for the day ahead. This ensures that everyone is clear on different roles and responsibilities, and any deviations from the planned time frame of the sprint can be identified and addressed at the earliest opportunity.
Sustainable pace of work
One of the core principles of Agile is that the same sustainable pace of work is maintained for as long as it takes to get the job done right. Instead of having long periods of downtime, followed by quick bursts of frantic effort to meet a deadline, it allows developers to work at a speed that not only maximizes their time, but also ensures work isn’t rushed or ends up with mistakes within it because developers are stressed or tired.
Transparency
The Scrumguide suggests that “significant aspects of the process must be visible to those responsible for the outcome. Transparency requires those aspects be defined by a common standard, so observers share a common understanding of what is being seen.” In practice, this means that members of the development team should be able to find out what others are doing with ease, and understand how their work and their own contributes to the overall objective.
Predictability
Ideally, the expectation of team performance should be the same across every sprint, so that long-term planning is made easier by understanding the level that a team can work at. In particular, it makes it easier to assess how much time should be allocated to a particular sprint, based on the amount of work involved.
Estimation practices
Connected to the previous point, there are many different practices and processes available for estimating the amount of time it will take for a particular job to be completed. One of the most enjoyable is ‘planning poker’, where different people are asked to estimate how long they think a particular job or sprint will take, and get the opportunity to discuss their choices. After several rounds of adjusting their choices based on new information, all the players eventually reach a consensus on the estimate. It’s a quick and engaging way for devising estimates, but reliable all the same.
Improving estimations and predictability: a case study
In summary
Development teams that have been used to traditional processes for a number of years can find it difficult to adjust to Agile. And if you’re a startup, it’s good to get Agile principles embedded into a team at the first opportunity. In either case, expert help can set you on the right track.
Ciklum’s Scaled Agile Delivery service can help transform the development of your products and services, bringing together our product engineering expertise and award-winning CI/CD practices. We can work closely with you to instill the Agile culture throughout your team, and give you a solid platform for success, both now and in the future. Take a closer look at our approach to Scaled Agile Delivery today.
You may also like
Subscribe to receive our exclusive newsletter with the latest news and trends
Subscribe to receive our exclusive newsletter with the latest news and trends
Want to reach out directly to us?
hello@ciklum.com
© Ciklum 2002-2023. All rights reserved