What is Scenario Planning in Software Development?
- Scenario planning aids software teams and decision-makers in recognizing various potential outcomes and implications, assessing how to respond to changing priorities, and preparing for positive and negative eventualities.
- By depicting a model of potential risks and opportunities, businesses can take proactive measures instead of merely responding to situations.
- Trade-off decisions are often required in order to prioritize the most important goals for a business. Scenario Planning supports that effort by arming decision-makers on software development teams with the language to communicate these trade-offs effectively.
In this article, we’ll be focusing specifically on Scenario Planning in Software Development.
Transitioning your engineering organization from a reactive entity into a proactive one is the key to scalability. To do that, teams need to plan out scenarios that balance accuracy with some degree of flexibility to account for changing priorities and trade-off decisions.
Types of Scenario Planning
There are two types of Scenario Planning within Software Development:
Pre-Development Scenario Planning
Pre-Development Scenario Planning focuses on planning for different scenarios prior to the initiation of development work. It’s an activity that falls into the realm of program management, managing a stable of engineering projects in a holistic manner so that each one is appropriately resourced and has engineers with relevant skill sets assigned.
Broadly speaking, there are three core questions that Program Managers, Product Managers, or Engineering Leaders need to answer in order to effectively scenario plan in the Pre-Development stage:
- How large are the things I want to build?
- How many resources do I have available in order to build them?
- What timeframe do I have to work with in order to get these things built?
If the scope expectations exceed the defined answers to these questions, then trade-off decisions need to happen. Having these conversations in the Pre-Development stage is optimal because it’s easier to manage risk if the work isn’t being actively conducted.
Communicate with your stakeholders around what their priorities are – in ranked order. If their expectations still exceed your team’s capacity, make the case for additional headcount in order to make up the deficit in resources.
In-Flight Scenario Planning
In-Flight Scenario Planning occurs when priorities change while deliverables are in-flight and engineers need to be shifted across different projects in order to accommodate this new direction. This is by far more challenging as it’s generally reactive.
The most important factor to consider here is the nature of engineering work and impact to engineers that shifting can cause. It’s not as simple as pulling a lever, switching engineers from one deliverable to another, and the equivalent throughput being generated. Changing the focus of an engineer mid-project can cause thrash, demotivation and potentially more harm than good.
There are other factors at play. When performing in-flight Scenario Planning, decision makers must also consider the stage of the deliverable in question; perhaps it’s not worth it to move resources from a deliverable that’s about to cross the finish line. Take into account whether the engineers you’re switching across have the appropriate skill set for this newly prioritized deliverable. The most important thing of all, is make sure to communicate the negative impact of the trade-off decision required to re-prioritize. When making these broad-strokes decisions, business executives tend to gloss over the negative and focus only on the positive of reprioritization trade-offs. By succinctly communicating the negative, if a deprioritized deliverable takes longer to deliver, your stakeholders won’t be unpleasantly surprised.
How to Scenario Plan in Software Development
In order to effectively understand the mindset required for Scenario Planning, we’d recommend Technical leaders in software development try and adopt the mentality of Sales leadership. Sales leaders live and die by their ability to accurately forecast, whether the numbers are good or bad. The ever growing importance of engineering means technical leaders deal with a similar level of expectation around how they forecast feature delivery. Technical leaders need to build confidence in the decisions they make and how they communicate them to the wider business.
Program Managers, Decision Makers and R&D teams alike can benefit from a tool like Jellyfish Scenario Planning; it empowers engineering teams to make informed decisions based on data, when managing resources for multiple projects. Leaders can develop a model that calculates the opportunity cost associated with moving an engineer from one project to another. This model can be used to plan upcoming projects and create more precise forecasts, while also helping with re-prioritization efforts by providing an analysis of the opportunity cost impact when allocating resources to one project over another.
Jellyfish Scenario Planning offers software organizations and teams:
- Risk Management | Reduce delivery risk when reprioritizing by assessing the risk involved in reallocating engineering resources across different deliverables, thus safeguarding your project timeline.
- Effective Business Communication | Translate resource trade-off decisions into language that senior leadership can comprehend, using hours and days instead of story points and commits, to effectively communicate engineering delivery trade-offs to the business.
- Built Trust in Engineering | Foster trust with stakeholders by making planning more consistent and setting more achievable expectations, leading to better outcomes when planning deliverables.
- A Resource Data Model for Software Development | Enhance your comprehension of your engineering team’s delivery capabilities by modeling hypothetical delivery scenarios, mapping out your available engineering resources.
- Program Management | Program Managers can effectively model their resources to better plan engineering projects or facilitate software deliverables in-flight.