Matt Warren

Investing in your Productivity

This week in discussion with the rest of my team it became apparent that there was a lack of investment in creating tools to help with the productivity of the team.

There are four distinct areas you can focus on to improve your productivity as a software developer.

Focus

Software development requires a lot of time to think about solutions.  This usually requires focused thought to make any real progress.  Distractions can totally derail your day.  Finding ways to always reduce the number of distractions in your day can pay huge dividends.  Improving your focus is one of the first things you can do to improve your productivity.

Knowledge

The more you know about all the tools you use the less time you spend looking for answers on StackOverflow.  As a developer myself who jumps between Python, Ruby, Javascript, Go and Objective-C on a regular basis I sometimes blank out on even simple things like the syntax of a foreach loop in javascript.  As a result of a detour to google for answers I can easily loose a few minutes here and there throughout  the day which can add up.

Knowing your higher level constructs can reduce the amount of time you spend re-solving already solved processes.  Having a solid understanding of authentication techniques, CRUD interfaces, caching strategies, SQL etc can make a task that would require a google search and turn it into a trivial exercise.

Reading or re-reading books about your language of choice, framework, or concept can greatly improve your code, and your productivity. I try to read one book per month, and subscribe to weekly email lists for everything I’m interested in keeping current on.

Typing Speed (core skills)

Your ability to translate thought into code is dependant on how seamlessly you can move things from your brain into the computer.  The keyboard is your interface and being able to use it effectively is a basic skill for anyone who uses a computer.  Even though I have been touch typing for 15 years I still invest some time here and there to master the keyboard.

Tools

Knowing how to use your text editor advanced functions is one thing, writing your own tools to help streamline your processes is an investment in your productivity going forward.  You can do some pretty cool things with a 100 line shell script.  If you could spend 10-20% of your coding effort on creating tools to improve your productivity then it would compound into tremendous gains over time.

The current evolution of devops is an example of what’s possible.  The old days of purchasing hardware, spending weeks having IT configure the server software stack and then developing a custom process for deploying your app has been replaced with ‘git push’ to the cloud.

Investing in tools for your business (Sales, Marketing, Accounting) automation or tools for personal productivity (creating S3 buckets, debugging notifications, app templates) can pay huge dividends.  They give you a competitive advantage.

Open sourcing some of these tools can provide new visibility to your business (see thoughtbot as an example)  and can attract top tier developers.

So get out there and keep an eye on always getting better.  Always be learning, always care.


Posted

in

by

Tags: