I’ve learnt from the way in which these people work and I’ve discovered a lot from my own experiences too. I’ve realised that there are some very basic qualities, skills, and habits software developers display that are great practice for absolutely anyone. I’m not talking about writing complex algorithms here; I mean simple daily activities that make their lives efficient and effective.
Cherish your tools
Developers are obsessive about the tools they use. They know about how their computer works because they hate not getting the most out of their machine. Life is too short for crap computers. If you’re going to spend hours every day in front of something, make sure it does what you tell it to. And treat it right. Delete unused programs and shortcuts and tidy up your documents. A small investment in a good computer will pay dividends in time and stress savings. Learn a few basic keyboard shortcuts for the programs you use the most; the time saved will surprise you.
Take a look at the applications you use too. Are there better alternatives that will improve your efficiency? Are you still writing documents in Word and wish you could finish them off on the train on your mobile? Have you thought about using Google Docs to edit the same documents on your laptop and phone? Still writing notes on post-its? Have you tried Evernote? Keep losing your USB key (or putting it through the wash!)? Have you heard of Dropbox?! What about task lists? Do you create endless Excel spreadsheets and email them to your colleagues? Use a bloody project management system! Which leads me on to my next point…
Manage your tasks and time
Good software engineers are meticulously organised when it comes to tracking what they need to do. They’re great at breaking huge projects down into small, manageable chunks. They use software to create lists of things that need to be completed, and log notes regarding their progress. They assign priorities to every item so they know what needs to be tackled first. Developers will also monitor how long it takes to complete a task so they can plan how long things will take them more accurately in the future.
Just give it a go (and use Google!)
Ever heard of a little website called Google? It amazes me how poor some people are at finding things out for themselves using this tool, even today. Most developers won’t mind admitting that they often have no idea how they’re going to approach a particular software problem. They only find a solution after tireless trial and error; trying different approaches inspired by a ton of research on the internet. They’ll read blog posts and look at forum entries to find out if other people have come up against similar problems. Software engineers aren’t scared of breaking stuff either; they’ll try a hundred things that don’t work if it means they find a solution that does work.
Be single minded
Software developers are great at tackling a problem one at a time. Try this simple test: take a piece of paper and write down five fruits. Now write down five vegetables but this time print a single letter from each word until all are complete. Which method was quickest? Trying to juggle too many tasks at once is incredibly inefficient. Each time you switch tasks it will take upwards of 15 minutes to focus in on what you need to be doing. Repeat this 20 times a day and you’ll barely get anything done, not to mention the fact that quality will suffer greatly.
It has been said that one of the greatest virtues of a great software engineer is laziness. Good developers are lazy; they do everything in their power to make their life easier. Developers hate tedious, repetitive, time consuming tasks and do anything to avoid doing them. They use tools or create systems to cut out the grunt work and they always seek to complete tasks in the most efficient manner possible. Developers don’t reinvent the wheel either; they modify existing solutions to their needs (copy and paste!) instead of starting from scratch every single time.
Be (a bit) antisocial
I don’t wish to propagate the view that developers are an antisocial bunch as its largely not true. But there are times when being antisocial is really rather necessary. Software developers know that they are most efficient when they focus on a problem with no external distractions. This means blocking all interruptions whilst they work. They avoid checking their emails except at set times and turn off Twitter, Facebook, and WhatsApp. They stick on some headphones and work in structured blocks of time followed by short breaks. Ever wondered why the dev team always leave at 5.30? It’s because they got shit done today.
So there we have it. Thinking like a software developer will make your life a whole lot easier. And you don’t even need to grow a beard and learn every line of all the Lord of the Rings movies.