On Agility and Deadlines
In the software development world, the stampede toward agility has gone on for twenty years. Now that agile has touched practically every modern workplace, how do we reconcile the desire to be agile with the fact that the consumers of our delivered value might want things to be done on a schedule? I hear and see discussions that declaim that 'deadlines are incompatible with agile' all too frequently and it is time to explain why this position is untenable and unachievable in most software development shops.
?
We all violently agree that a key principle of agile is serving customers and satisfy them with early, continuous delivery of the highest-quality product we can manage. In my current industry, educational assessment, we serve customers (whom we call 'partners') who operate K-12 educational institutions. These partners, whether we like it or not, operate on an annual schedule which is not up for negotiation. This implies that our company cannot manufacture a launch schedule that does not take this into consideration quite deeply. The notion that we can or should deliver and launch software on arbitrary does not line up with this notion of 'release on demand' as far as our end consumers are concerned.
?
Release on demand is awesome - for some companies. If I were managing a team that developed Pokémon Go, for example, I would be able to justify release on demand quite easily. First, customers are pure consumers - they have very little impact on what Niantic decides will be in each subsequent release of the application. Niantic can have release on demand with little impact - consumers of the product can decide if they still want to play, and if so, they install the latest release.
?
Not every business sector is like the mobile games sector. We can release on demand to our customers, but that does not change the fact that our partners operate on a tight, non-negotiable calendar. How do we serve our partners optimally without being sensitive to their needs and constraints?
?
To achieve continuous delivery of value, we elect to use agile practices to create an environment where we work in short and long iterative cycles, during which we produce working product increments that can be evaluated by stakeholders on a periodic basis. Despite this effort to keep value flowing continuously, there are still time constraints that need to be considered, and this implies we need to track our progress toward these timelines. Despite this flexible approach, we still cannot escape deadlines as part of most agile development efforts.
?
When we offer software services to our partners, we must remain sensitive to their needs and wants, especially when it comes to providing better and better product. When partners signal their intent to invest in our products, they deserve reasonable estimates of when features will be made available. We cannot ignore this fact and declaim that 'agile frees us from deadlines'. We need to have some sense of predictability so we can coordinate with customers and respect their constraints.
领英推荐
?
Deadlines and milestones are not all bad.?Whether self-imposed or externally set, they provide a sense of urgency and motivation for teams to complete their work. If we work in an iterative mode, such as Scrum, we allow teams to focus on delivering a small, tangible product increment within a defined timeframe. Without this feeling of healthy urgency, teams may become complacent, lose focus, or become overwhelmed.
?
Time constraints allow teams to understand how work is to be prioritized. By treating sprints and strategic planning intervals as deadlines, teams are compelled to ensure they are working on the most important tasks first, minimizing risks and dependencies and allowing sufficient contingency. Focusing on highest priority work ensures that we can 'maintain a constant pace' without distraction.
?
Deadlines also help teams manage external dependencies such as regulatory requirements and contractual obligations. Short, iterative cycles with prompt feedback ensures teams are completing work in a timely manner and avoid the disaster of being penalized for delays.
?
Accountability and transparency are also supported by milestones and deadlines. When we are asked to increase scope, we must accept or reject the request based on our understanding of when work needs to be done.
?
Nothing in the Agile Manifesto supports the notion that deadlines or milestones are incompatible with agility. Rather, the manifesto hints that we support our customers best when we think like they do and subject ourselves to their constraints.?
No BS Career Coach for Leaders in Tech | Career Clarity | Job Search Strategy | Executive Coaching | Interview Prep | Speaker & Podcast Guest | I help you achieve success on YOUR terms.
2 年I always giggle when Scrum practitioners say deadlines are incompatible with Agile. Scrum has deadlines built in every single sprint to create urgency! What's *not* compatible with any good project management, Agile or otherwise, is attempting to fix both scope of delivered work AND deadlines. And if you just think "yeah, but you can fix those if you just add more people" I'd encourage you to go read The Mythical Man-Month and also literally any work about the impact of adding team members to productivity, especially in the short term.