It was a week after sprint planning and I sat at my desk feeling lost and bored. Here I was in my third year in my software developer career feeling overwhelmed and uninspired.
All the pain that motivated me into focusing my career on software development and out of my boring e-commerce job was back but yet as a software developer.
I still remember the moment when at age 14 I double-clicked the Visual basic form editor button and coded my first `MessageBox.Show("Hello world")`. The invigoration and excitement of seeing a computer execute the code that I just wrote were second to none. Ask every software developer this and they will remember that exact moment as if it happened yesterday.
After experiencing the above I started questioning the creative work industry.
Is it impossible to experience that same feeling of joy when working creatively on my hobby as when doing it as a job?
Will a job always be a job?
As a human our greatest joy comes from creation, making something out of nothing. To many people buying creations built by others is enough to satisfy that need but for some of us who are desperate enough, unless we build something of our own we feel no joy.
This is how we as software developers are born.
Now, for us, as software developers to stay happy, we must stick close to our core motivation which is creation.
All the noise and pressure not related to creating or building stuff moves us further away from what made us join this creative industry in the first place.
To keep all the businessey side of things away from dampening the fun part which is building stuff, it must not feel like a burden to the creator aka the software developer.
As a software developer, when I had the following I was most calm and looked forward to my work:
The greatest pleasure as a software developer is when you are assigned work where you know exactly what the specifications are and what the result should look like.
Being able to knock something out to its completion allows us to no end.
Working off a vague idea or not knowing where to begin or end leads to burnout and boredom since to us as creators there we now have additional baggage around the creation process which turns it into a job and less like a hobby.
Let's be honest, software development is chaotic much like business is chaotic.
For a team to be run efficiently some sort of separation must be placed between the software developers and the business side of things to bring it under control.
This necessary separation is the job of the team lead or engineering manager.
But even with a manager in place, the challenge is still there.
The manager must find the right balance of communication and goal setting with biz dev who wants everything yesterday and the development teams who are running a backlog.
Many times the pressure put on the manager finds its way down to the developers and before you know it your development team is pressured and micro-managed not knowing what to work on first in turn making what we find fun as a hobby the opposite as a job.
We as developers on the other side are too intimidated or shy to communicate our feelings back up and we just accept the workload and pressure as a given. And this is a huge problem since work overload and micromanagement are the greatest causes of burnout and indirection much like that Tuesday I described above.
Finding the perfect manager that can properly lead their team while keeping developer happiness levels high is difficult.
Humans are humans and we succumb to pressure and emotions. Even the greatest leaders sometimes break down and falter.
The great Lao Tzu put it best “A leader is best when people barely know he exists. When his work is done, his aim fulfilled, they will say: we did it ourselves.”
Now, what if I started my Tuesday morning a bit differently that day? As I get to my desk a curated checklist of exactly what I’ll be working on that day is in my inbox. I report to my manager the progress I have been making, and I put aside my timidness and discuss my progress and provide feedback if they assigned too much work to me.
In doing so I would’ve felt mentally at ease knowing that my manager has been updated with my progress and has been communicated with how I feel about the workload.
Also since my goals and expectations are set I now have a clear purpose and goal for that day feeling free to indulge in building in a way that makes me happy.
Now from my manager’s perspective, I have removed their morning overhead and already put them at ease since they now know exactly what I’m working on plus insight on the team progress and efficiency leading to a more relaxed atmosphere and greater developer happiness.
Finding the courage to do so is a game changer.
But do we find the courage?
Do we speak up when we disagree on how something should be done or do we just stay quiet to get done with ‘that’ meeting?
Do we communicate our feelings about the timeline or do we just nod along so as not to be called out as a “non-team player?
Here’s an exercise; now it might not be for everybody and if you’re great at communicating then kudos to you but for those who are not great at communicating [yet] next time you feel something during a meeting; a thought, an insight, a timeline expectation, speak up!
It’ll be tough at first, you’ll feel your body fighting many different forces but carry on, It’s worth it.
People hire you for more than just listening. They want your opinion and thoughts, they want that clarity and insight that your background brings that someone else may not have.
In doing so you will effectively get more comfortable communicating your thoughts and help keep your team in sync while also putting you at ease and giving you the needed clarity to focus on what you love best which is building product.
A win-win! But only if you have the courage.
May the courage be with us.
I was born and raised in Brooklyn NY, I realized my passion for tech and breaking stuff when I started taking apart computers @ age 9. After discovering the developer tab in Excel at 14 years old, I taught myself to code using a 'Visual Basic for Dummies' book, which I then quickly used to write software that displayed a dialog showing the user that their hard drive is being wiped and promptly had it installed on the school's computer.