Maintaining optimism in the face of failure and defeat is difficult, but when you know you've put in the work to be good at something, perhaps that optimism isn't so unwarranted.
When on a great team, to get into such positions takes mistakes, either from you or from others on the team.
Mistakes can be corrected and things turned around. But, of course, it's up to the individuals to get that to happen, and a strong leader will help remind those making mistakes that "shit happens," focus on what you've practiced, and know that you can do it right.
As a Tom Brady fan, in early February of 2017, I was pretty unhappy in the 3rd quarter of the Super Bowl when the Falcons went up 28-3. But then I witnessed what may be the most remarkable comeback in Super Bowl history. And it all came down to the Patriots cleaning up mistakes made early on and continuing to execute at a high level.
If you watch a lot of football, you probably already know the Patriots' internal mantra is "Do Your Job." It doesn't get much simpler than that, but it's all about consistency and teamwork. It's a critical element of the greatness of many of the recent Patriot teams.
To maintain one's optimism in the face of failure is admittedly not an easy task. This is a skill intuitive to great leaders, though, who are unflinching before failure but take it gracefully. In software engineering, this may come up in many contexts.
Many software engineers have probably felt the doom and gloom mentality when a piece of code is not working, and you want to give up. This is where you need to remain optimistic. If you are learning, it's understandable you might not yet have successes under your belt to know you'll figure it out. That's where there's a fine line to walk in education, don't challenge yourself too much too quickly; make sure you can progressively snowball bigger and bigger accomplishments together.
If you are an established software engineer, you should know that there is always a solution to a problem; it just might take some new tactics or techniques to figure out. Furthermore, the perseverance to pursue those new tactics or techniques leads many towards success!
I remember playing a water polo game once where we were down big pretty early in the game, but several of the other team's goals had been crazy flukes. Their goalie had scored when our goalie wasn't paying attention for a split second, and they had also scored off a defender's pass back to our goalie that got tipped in somehow. We could attribute their goals to very basic mistakes on our part.
So our coach told us to focus on our fundamentals and play as we'd practiced. Don't do anything crazy, don't try to win the game back all at once, play our game, we'll be fine. I remember this feeling counterintuitive because I wanted to start chasing after the ball, pressing super hard for steals, etc. So instead, we continued our zone defense we had prepared for this team, and the game started to turn.
As soon as we stopped making silly mistakes, the other team stopped scoring. As soon as the other team stopped scoring, our offense and counterattacks got rolling, and we started to score. Suddenly, it was a close game, and we were now in control. This experience I've taken with me into software engineering, and the many times it's felt like there was no way to win.
The best team example of a dire situation like being down big in a sporting contest in software engineering is to be up against a big deadline. When a date has been set in stone, perhaps because of the size of the release, or the need for paired marketing materials, there is an inevitable build-up of pressure ahead of that deadline when the software is still not ready.
And the software's rarely ready on time. So it becomes a mad dash to finish things up, and at times, looking up at the "clock," it may seem like the rest of the issues we have won't get done in time. In these situations, I like to take a step back and look at the bigger picture: how many issues are there, how many of us are working on it, and what does that math work out to, precisely.
In excellent software engineering teams, it's easy to forget just how much work we can get done in a short time when highly focused. These deadlines provide said focus and, therefore, maximize efficiency and throughput. Nothing like a good challenge to then feel a great win once accomplished.
The thing is, though, that such comebacks and sprints of focus take a lot of energy. These, therefore, can't be a consistent part of one's work-life; they need to be relatively rare and spread out, such that there is time to recover. Focusing so hard on a deliverable creates a wake of technical debt and burnout in software engineering, while in sports, these games require significant physical recuperation.
So while it may seem appealing to artificially create pressure situations like what occurs when down big in a sporting contest, doing so can quickly become toxic if not done carefully.
As Aristotle put it in one of my favorite quotes: "Virtue is the golden mean between two vices, the one of excess and the other of deficiency." Of course, finding the right balance between two extremes is always a challenge, but getting it just right can be so powerful.
While there are countless situations where it may feel appropriate to give up, optimism that a win is still in reach has proven immensely valuable to me. Comebacks and delivery on tight deadlines are rewarding challenges, but not ones we can rinse and repeat without rest in between. And in those situations of pressure, being able to stick to fundamentals and the good practices that got you into that high-pressure situation is the counterintuitive insight I've only recently come to understand.
Benjamin is a passionate software engineer with a strong technical background, with ambitions to deliver a delightful experience to as many users as possible. He previously interned at Google, Apple and LinkedIn. He built his first PC at 15, and has recently upgraded to iOS/crypto-currency experiments. Benjamin holds a bachelor's degree in computer science from UCLA and is completing a master’s degree in Software Engineering at Harvard University.