How creativity can make you a better engineer
Creativity is something that is undervalued but unknowingly all professions need to tap into their creative side to excel. In software engineering there is a vast amount of creativity that needs to be used daily. There can be a few things you can do ensure that you surface creativity in your day to day.
But why ?
Comparing art and code might seem like polar opposites. However a canvas can be compared to your IDE and the paintbrush the keyboard and you craft a story using your language of choice. Writing beautiful code requires not only that you write maintainable and understandable code but describes a narrative of how a user interact with a product. Breaking complexity into simple understandable pieces of code requires great thought but also great creativity.
Problem solving is one of the core foundations for an engineer, we encounter unique problems everyday. The various nuances and restrictions force you to think differently. A senior can stand out in these circumstances and use their past experience, but by being creative anyone can shine by providing answers that no one can see. By expanding your creativity you will be able to produce a diverse range of solutions.
Level up
Like anything if you want to be better at creativity then you will need to exercise it. Most people think to be creative you need to relax and it will come to you but in practise creativity starts by concentrated focus.
Meticulous vs Improvisation. In the past I have always tried to be meticulous when preparing to start a feature. I would plan all necessary steps with a solution in place prior to beginning my work. By spending too much time in planning I put my blinders on and rarely deviated from the plan as I have spent time on it. It is good to plan to understand landmines and rabbit holes with a basic high level idea of what to accomplish, but you should leave yourself open to change so that you can adapt as you go. I have found this way produces surprising new results on occasion.
Embrace constraints. We tend to think of constraints as a problem, a hinderance that prevents us from our work. However with the right constraints this can lead to better focus and clever ideas. In the past I have had constraints such as tech stack, delivery time or scope. This forces us to find a work around in some cases provides a better solution to the original. When you find yourself with restrictions embrace them. Restrictions such as hard deadlines will force you to deliver the same product but with some clever simple solutions built in.
Be comfortable with failure. If you stick with what you know then you will always make the same decisions, this can be ok but it will not elevate you. To be creative you need to allow yourself and others to try different decisions and go down the wrong path. Through failure you will eventually create something amazing that you will not expect.
Wrap up
We all need to remember software engineering is a team sport. We need to allow each other to develop creatively so that it will help the team grow. The more diverse the set of ideas the better your team can be in developing software that is maintainable. Try a few of these ideas and you will start to see yourself be more comfortable in uncomfortable situations.
Do you practice Basecamp’s Shape Up methodology at work? Check out our Shape Up Board for Jira plugin.