Ive been developing apps for over 30 years now, Id always subscribed to the belief that time spent at the computer was the only way to affect the quantity and quality of my output.
In 2010 I started training for my first Ironman. Id not done any physical training before this and I was shocked by the amount of training I was required to do each week… 10-20 hrs, not only that, there is the extra time spend travelling to and from training locations, getting ready buying equipment, etc… I was advised to read the book Be Iron Fit.
Author Don Fink teaches the virtues of time management, how to spend as much time as possible actually training, like programming there is much time spent on peripheral tasks, and distractions when training. Its a great book thats changed the way I work.
Onto the list…..
When training long hours, a new gadget or technique is hard to resist, its good to use new toys for motivation, but the setup and practice use of these needs to be done out-of-training-hours.
Its a similar affair when programming, spend evening time for tidying up the file system, performing updates, trying out new software etc, its actually more relaxing this way around as you aren’t trying to do two things at once. Also use that time for Facebook and doing household bills, updating the CV, preparing invoices.
Try and turn off as many notifications as possible during the workday, and unless absolutely necessary, switch off email.
You will actually find work time far more enjoyable being able to focus on the job at hand.
2. Train your weaknesses.
Ive always believed that as developers we need to invest in ourselves by keeping upto date with technology.
A problem here though is we tend to repeatedly read in the same domain, as its easy and enjoyable. Do yourself a favour and push yourself to learning things that you are in the dark about.
While blogs are ok for the latest news, a good book with its condensed specialist format will be far more benificial.
Its the same while training for a triathlon, you can plateau in a discipline so need to push yourself into training one of the others to get maximum returns on your time.
3. Be effective not efficient.
Its easy to be efficient, as developers we love to write code, going off for weeks on end efficiently writing something that we possibly could have achieved by other means in seconds. again going back to the belief that time spent coding is value to the client.
Being effective in this case would be using an off the shelf component that suits our needs.
Also making sure that you are effectively conveying the clients needs is another winner, or maybe suggesting an alternative to their requirements that makes use of an OS feature thats ‘for free’ which is often the better solution.
4. Consistency and Planning
Good habits are easy to slip out of, only to realise months down the line that a good habit has been long forgotten.
Like training, a good routine can help here. Have the morning set out to a certain degree, which saves energy making decisions. For example its good to do any research and reading done here as it will help energise and inspire you, try and spend a small amount of time each day on a personal project even its its for 30 minutes, it will help keep you sharp.
I try and have 2 main sessions each day for a client. each lasting 3-4 hrs with small breaks, where I do nothing but client work.
Try and save emails for lunchtime, as they are a real time sink.