Feet to the Fire
In recent years, there have been several movements in software development that would suggest that we wait until the latest possible moment to make decisions, so as to avoid or delay the associated costs of change that would seem inevitable if we decide too early.
As we have all seen in this industry, though, as a movement such as Agile or Lean Software Development gains popularity, there is often something that is lost in the translation to the masses, and this innocuous statement of deferring decisions becomes embraced a little too tightly. That ‘last responsible moment’ is often overtaken by the system deciding for us, and rarely in our favor.
A balance is required. There are some decisions that must be made early, where the cost of deferring these decisions becomes extremely costly to the organization, and results in diminished value to the end user. Balancing appropriate timing of decisions with appropriate management of change becomes the optimal way of driving a project to successful completion. The trick, of course, is to understand when to make those decisions.
When are we better served to hold our feet to the fire?
There are a couple of areas that lend themselves to conscious decisions early on, regardless of the project lifecycle, the size and shape of the team, or the relationship with the customer. While mature teams with depth of experience might apparently be able to breeze through these decisions quickly, it is still useful to ask ourselves if we have really nailed these points before we proceed on any new project.
No decision or shared understanding should ever be considered cast in stone, regardless of when it is determined in the project lifecycle. Early agreements need to be seen as our best understanding at the time, and future events always involve the possibility of invalidating an early assumption. While some would argue this means deferral is better, these decisions described here, made early, serve to reduce the risk of conflict downstream by serving to align the stakeholders in the same direction.
The first type of decisions that are too costly to defer center around how the people involved in the project will work together. In every group I work with, when asked about the characteristics of their best project experience, the vast majority of the responses center around relationships: good, positive communication, respect and trust are always evident.
While some teams may have the luck or serendipity to start out with strong relationships, most are well served to take the time to build and reinforce strong relationships between one another. Even for those that start out fine, the fact that push will usually become shove on projects means that the apparently strong relationships can quickly erode when the pressure rises. Team members need to understand each other’s goals, needs and motivations, need to agree on mechanisms for resolving disagreements respectfully, need to understand how to best relate to one another.
The second type of decisions critical to project success align the team to ensure everyone is working on the same project. A shared vision for the project, clear completion criteria in terms of value to be delivered to the customer and expression of scope that involves a quantified quality definition are critical before moving forward – think of this as an agreement on where the finish line actually is.
Note that this does not necessarily mean a comprehensive, exhaustive definition of scope. For those projects where there will be plenty of discovery downstream: whether intended capabilities are even feasible, selection among alternatives or decisions based on client feedback of early functionality, we should still strive to identify where in the project we will be making these deferred decisions.
There is value in confirming our assumptions about what we believe we all know, and we need to know what we don’t yet know.
If we step back and recognize that some decisions are better made early in the project lifecycle, we can develop an infrastructure that allows us to efficiently and effectively defer other decisions to that ‘last possible moment’. In doing so, we get the best of both worlds: strong team coordination and the agility to provide the best possible solution to the customer.
By reasonably holding our feet to the fire, by making the right decisions earlier in the lifecycle, we end up with toasty little toes. If we defer or avoid these decisions, we often find that the fire is still there, and there is a good chance we’ll get burned. – JB