Making schedules is boring. Making roadmaps, just a little bit more exciting (extra points for being actually a part of “making something”, as opposed to just predicting how “making something” happens). In management, however, there’s a huge sense of fulfillment when you’re able to elevate these into an artform.
I came across this great article in the Harvard Business Review on how leadership is all about navigating different tensions. It got me thinking about how much of my work actually involves that. I think decision making in general, and not just in leadership, is simply navigating tension.
On that note, I wanted to talk about one of the endless tensions I’ve had to face in my career as a software developer and a manager – the tension between what’s “possible” and what’s “necessary”. Of course, this tension happens in more areas than scheduling and product management, but in my own experience, it has been most evident in these two fields.
A quick example
Often, deciding on what features to include in the product roadmap is a matter of what the customer needs versus what the technology allows. Likewise, figuring out when the feature can be delivered is all about when the customer wants it as opposed to what the resources permit.
As a manager (or project manager), an ideal result would be if you somehow made everything “necessary” become “possible”. Of course, we all know that’s just not realistic. Finding a compromise that works is probably our primary job description.
I’ve been in environments where one person (or a few) calls the shots, and in the interest of fast decisions, that sometimes works. In reality though, one person rarely has enough context about what’s possible and what’s necessary to make a good decision. You might know a lot about one end or a little bit about both, but you rarely know a lot about both.
At Synacy, we manage to model this tension pretty well through our leadership team – each member with his or her own particular area of responsibility. The product team figures out what’s “necessary” for our product to actually be useful and commercially viable. The technical team investigates what’s “possible” with the technology we have in place. Engineering management (that’s me) looks towards what’s “necessary” in terms of delivery and what’s “possible” in terms of cost. Finally, we navigate this entire network of tension as a team.
Navigating the tension
The truth is, this particular tension is not a two-sided struggle at all. What’s “possible” and what’s “necessary” are not necessarily at opposite ends of the rope. In fact, each side in a negotiation will both have their “possibilities” and “necessities”. The combination of both pretty much translates to “the situation”.
Understanding the possibilities and necessities on both sides of the argument is key to finding a resolution. What’s necessary for one party is often dictated by what’s possible (e.g. “We need to release this now because we can’t afford to spend much more on this project.”) Likewise, possibility is influenced by what’s necessary (e.g. “It would be possible to implement this feature, but we need to spend 2 months of refactoring to make it happen.”)
Cliche as it is, I’ve learned that nothing is, in fact, impossible – given the right circumstances, of course. Changing the circumstances that prevent things from happening might be the way to a resolution. Likewise, I’ve learned that “necessary” is a very relative thing. We often evaluate things in black and white – as something we need or don’t need. But necessity is a really broad spectrum, and we need to establish that to possibly trim down what’s necessary into the range of what’s possible.
In summary, navigating this tension is about either finding the right conditions that might make an otherwise difficult task possible or setting a more reasonable criteria for what’s actually necessary. You’ll probably find it a bit more complicated than it sounds and a lot of new possibilities and necessities will pop up along the way. Ironing them out as they come will ultimately allow you to find the right balance.
Dexter is an engineering manager at Synacy, a co-founder of ATeam Business Software Solutions, and founder of TechManagement.Life. He loves to share his experiences and thoughts on managing software teams and running businesses.