After a lot of contemplation and deliberation, I decided to reflect upon what drives me as a software developer. I wanted, needed, to write my thoughts down in a way that allows me to formulate my own thinking and express in precise form what I do and do not want to do as a software developer. I feel that this will help me to create a clearer picture of what I want to do professionally and personally.
Recent events in my career prompted me to write this post. I needed to be able to vent frustrations and reflect upon what I’m doing and what I wish I was able to do professionally. I also wanted to be able to share my thoughts and experiences with others.
In short, over the last several months at times I have felt demotivated, despondent, deflated, and suffering burnout. Simply because I’ve not been able to work on any of these goals professionally.
I have often found myself asking questions that all follow the same theme:
- Why was we told this change was required when it was not?
- If X is critical to Y, then why was X ignored by the business until weeks before Y’s deadline?
- How can communication be this bad amongst teams?
I decided I would save these thoughts and expand on them in another post and instead focus on what I do want to do as a software developer. This also isn’t a technical post about specific concepts, which will be it’s own post.
If I’m not helping others, then what am I doing?
I like to help others. If I’m not helping others, then at the very least as a software developer I’m helping other software developers by creating tools and processes that allow them to help others. If I’m not doing either of those things… then what am I doing?
I want to help others
I want to be able to write software and solve problems people are experiencing. I want to bring joy to people by providing them with the tools they need to be happy or at the very least efficient. I want to be able to improve people’s workflows by replacing slow, manual, time consuming, and mind-numbing tasks with more efficient, automated, and fun tasks so that people are enabled to focus on their personal lives and make better use of their free time.
I want to interact with those I’m helping
I want to be able to talk directly with the people whose problems I’m solving. I want to get a feel for their domain and what problems that they are facing. I want to understand their pain points and how they can be solved. I want to get hands-on experience with the processes they are dealing with.
I want to solve real problems
I want to solve actual, real, tangible problems that an individual or individuals are facing. I want to solve problems that are not just technical or financial but that affect people’s lives - big or small, it does not matter. I want to be challenged with a real problem and create a solution that will make a difference. I want to know the problems presented to me are the real problems and not misconstrued or misrepresented (deliberately or otherwise) by various layers of middle management and executives who have invented the problem for political reasons that mask the true problems being faced. I want to do things that matter.
All persons ought to endeavour to follow what is right, and not what is established.
I want to be productive
I want to be able to solve problems and create software without hindrance. I want to be able to focus on solving problems without tedious, inconsequential, and insignificant distractions that often coincide with modern software development methodologies. I want to be able to focus on solving the real problems.
I want to be creative
I want to have the creative freedom to solve a task the best way I can. I want to be able to create new ideas and solutions that are not only better, but also more efficient. I want to be given the space and time to do my job as a software developer properly.
“Adopt new habits yourself: consolidate your principles by putting them into practice.”
I want to be proud of my work
I want to know I solved problems and solved them in the best way possible. I want to know the code I wrote is clean, well-organized, and easy to read. I want the code to be maintainable and well tested. I want the solution I created to impact the individual or individuals facing the problem in a positive way - I want them to be satisfied, happy, and empowered to be able to now focus on their own free time.
“So if you like doing something, do it regularly; if you don’t like doing something, make a habit of doing something different.”
I want to write software that doesn’t contribute to the vast quantities of bullshit that is endemic to the software industry.