Thursday June 17th 2021 by SocraticDev
Professional software developers occupy a paradoxical position on the totem pole. We are both at the top ... and more often at the bottom. We are at the top because we are ones who add value to software by adding features or fixing issues. We are at the bottom because shit flows downhill. An array of non-technical specialists hover around software but, at the end of the day, coders are the one who implement and maintain their designs.
Professional software developers can't pass the buck. We either implement or design a workaround.
To me, the greatest quality a software developer can have is being intentional about his work. 'Being intentional' means 'doing things on purpose'. It entails knowing with clarity the goals one wants to achieve or the issues one wants fixed. Knowing our targets almost always lead us to discover the steps and assess the effort needed to attain them.
Being intentional means working with a clear mind, having a plan, and being able to measure progress. Finally, it means knowing when we're done. When we have fullfilled the objectives of a task it means we are done.
Opposite of being intentional
Don't get me wrong, not being intentional is our default setting. Mine included. Our natural laziness and arrogance trick us into thinking we can coast our way into success. But we cannot.
Here are some manifestation of not being intentional :
multitasking : juggling various tasks at the same time. It gives us the feeling we are being productive but we really never get anything done.
debugging : instead of reading code, reading logs and using automated testing, debugging code is time consuming and very tiring to the mind.
trying to pass the buck : an intentional developer doesn't pass the buck. He knows that the buck must stop at his workstation. He either develops that feature, fixes that bug or ... die trying. The intentional developer thrives on problem solving. He can ask for guidance but he must do everything in his power to close that ticket.
Tips to be more intentional
Be deliberate with your use of time. Wake up early if you need to. Don't multitask. Say 'no' more than 'yes'. Become better at assessing effort and time.
Be extra clear on the results you want to attain. Try not to leave stuff half done. At the very least keep half done stuff on your local machine and never available to colleagues. When you are done celebrate.
Use your focus wisely. Our attention span is limited, our mind can get tired. Spend your focused mind only on tasks that are relevant to your goals. Refuse to spend energy on issues that are not beneficial to you or your team goals.
Be grateful and cultivate relationships with people who help you attain your goals. Software development is a team activity. Most of your goals are linked to other people's goals. Leverage these common goals. Working as a team might be slower than alone, but will lead you much further !