I firmly believe that the most difficult part of becoming a software developer is the psychological aspect: balancing your ego as it morphs into a tomato-shaped pincushion, pricked daily with the bite of tiny, insignificant failures.
As a budding software developer, you cannot simply be satisfied with your current, comfortable level of skill. You must always seek out greater challenges. You must always take on tasks with a high risk of failure. It’s the only way to grow.
The failures come in many forms:
- Not knowing something you think you should know
- Not knowing something someone else thinks you should know
- Failing to complete a task that seemed oh-so-easy
- Seeing someone else complete that task, confirming that it was oh-so-easy
- That stupid error message that just will not go away, no matter what you try
- That stupid error message that goes away when it shouldn’t have
- Breaking the build
- Having to swallow your pride and ask for help
- Having to swallow your pride and ask for help AGAIN
- Oh, yes, and again
- And again
- And again
- And again
It’s a hard world to live in, and I can’t help but be fascinated by the strange ego dichotomy that it produces, with some egos shrinking into Impostor Syndrome, whispering to their owners that they are morons who have somehow been lucky enough to fool the rest of the planet, and others growing into Lernaean Hydras, sprouting ever more vicious, condescending heads after each ego blow.
We must take steps to protect our fragile egos, lest we become the Incognito Imbecile or the Hydra-veloper that so many before us have become.
One technique I use to protect my own ego is to use what I call “Benchmarks of Failure”.
I had observed 2 things:
- With software tests, we expect failure as a step in the process. We set our system up for failure, document the failure (by watching the test fail), do some work, and then watch the failure turn into a success.
- The most satisfying things I’ve accomplished as a Software Developer all involved succeeding at something that I vividly remembered failing at previously…solving a problem that I previously did not have the skill to solve.
That led me to the thought: Why can’t we follow a similar process in growing our skills as a Software Developer?
Here is my “Benchmarks of Failure” process:
- Try a difficult new task and document:
- The date
- Whether you were able to complete it
- How long it took to complete
- How many times you had to ask for help
- (Optionally) The array of curse words you hurled at yourself
- Set some goals:
- What would you like to improve? The time it took? Just completing the task? Not having to ask for help?
- When would you like to accomplish this by?
- What would you need to learn more about in order to achieve that goal?
- Come back and watch yourself succeed
It would seem that this would only help prevent Impostor Syndrome, but I’m convinced it would also help the Hydra-velopers out there. After all, I think an overactive ego is really just a symptom of deep-seeded insecurities.
I am blessed to work on a super-supportive team, but I know way too many developers who have been planted in toxic soil. Perhaps, if this generation can better shield our own egos, we could help plant a stronger next generation. I’m picturing it now…a world with no Impostors and no Hydra-velopers.