Business and salespeople are optimists. Well, perhaps that’s painting with too broad a brush. Maybe it’s safer to say that, at the very least, their jobs require some degree of optimism regarding the raw probability of things like a sale closing or a business venture succeeding.
On the other hand, programming is an inherently realist (if not slightly pessimistic) endeavor. Well, maybe that’s painting with too broad a brush again and it’s safer to say that it should be a realist if not slightly pessimistic endeavor. (If you’re skeptical, just spend some time working on a behind-schedule software project and you’ll very quickly get in touch with your realist/pessimistic side.)
And what is the constant tension between business/sales and the dev team? How often as software engineers are we asked to help with setting deadlines or estimates for software deliverables? For me, it’s a weekly if not daily occurrence. And, nine times out of ten, business and salespeople would like things completed yesterday and often want to talk about best-case scenarios.
In my career as a software engineer, these discussions have often left me with a queasy stomach – I’ve often both been asked for an estimate and to agree with a predetermined estimate practically in the same breath. In the past, this has caused me to feel bad about myself both as a professional and as an employee. Why do I so often come away from estimation sessions feeling like all I did was drag my feet? Why was everyone else so confident painting the ideal picture and all I felt was apprehension?
Honestly, I think it’s because:
- I work with really good business and salespeople who are inherently optimistic about their life and work. And,
- It’s a sign that I’m probably a decent if not good software engineer. This means I’m a realist if not a bit of a pessimist.
So what it really boils down to is the fact that our jobs pretty much require that we approach situations and tasks from completely different mindsets. And I’m realizing: This is OK!
If I were an optimist about my work it could lead to some dangerous behavior like a lack of thorough testing or trying to cram too much work into too little time. On the other hand, if business and salespeople were as realist as I am, it’s doubtful that they’d even bother getting out of bed in the morning.
This is probably why I have a business degree but I’ve never enjoyed business. I can’t dig deep into my soul and find optimism – I tend to think about all the ways things could go wrong. But, on the other hand, and when balanced with other positive traits, I think this fact about myself does help me deliver high-quality code that is generally pretty bug-free.
So yeah – to any realist/pessimistic software engineers out there, don’t feel bad for not seeing the world in quite the same light as your often more optimistic business and sales colleagues. When presented thoughtfully and respectfully, your insight and feedback is very valuable.
And don’t neglect to learn from the optimists either. They can help you realize that risks are sometimes worth taking and that you’re often capable of a lot more than you might think if you just keep at it and don’t give up.