So what happened?
Year before last – i found myself looking at an overgrown plot at my local allotments.
My immediate thought was – wow, this would be hard work if i took it on and it would probably take me away from my coding projects… but i went ahead an rented the plot anyway.
I’m now in year 2 of having the plot and I’ve also had a baby boy, my sister’s wedding and a house move in between.
Surprisingly, I’ve managed to get more throughput on my coding projects that I had previously?
Doesn’t make sense right?
I love spending time at the allotments, it’s hard work, i build up a sweat and the results take a long time to come, but there is a clear process to success.
- Clear the ground
- Sow seeds (greenhouse or ground)
- Remove weeds
- Add nutrients
- Crop
What does this have to do with coding?
1. Clear the ground
I find myself clearing up coding environments, setting up GIT, a database, so on and so forth before I start a new project. Some aspects are automated but essentially what I am doing is clearing the ground.
2. Sow seeds
Most of my code visualization is done away from the computer, when I’m in the shower, driving around, washing up or at the allotments. I find this to be the key to a successful coding session at the computer. Visualization is the key word here, because when I plant seeds at the allotments, i may not see any sprout for a week or so – but i have the plant visualized in my head. I liken this to writing classes in code which have functions that do not do anything yet but they are there to help visualize the end product.
3. Remove weeds
Software needs weeding time to time, by which I mean, re-factoring and debugging. Sometimes – early on, i find myself re-writing code just so I can engineer it in such a way that it can be used for other projects. Sometimes I don’t if i know it’s not going to be used again, but in any case, I have to approach the coding session as if I’m going to remove weeds.
4. Add nutrients
In the gardening context, soil needs nutrients and sun and water. These are the basic requirements.
In the coding context, the human requires nutrients in order to produce quality code. We are not machines, and it’s important to remember that. It’s also good to know our optimal time in the day when we are at our coding best.
In the code base context, nutrients usually come in the form of inspiration from other projects, integration with other code bases and collaboration with other coders.
5. Crop
Cropping in the software sense is knowing when a product is ready for release. It’s as simple as that.
We have to go through some test phases and make sure the product does what it’s suppose to do – i liken it to testing a tomato firmness, or peeling a bean pod to see the contents.
How did I get more throughput on my coding?
I made my sessions count!
Baby duties, wedding planning, moving house, going to work, going to gym, spending time with family and friends… that’s all important to me, so I had to make sure that when I allocated time for coding, it really had to count, because i knew i may not get that window again for several days.
Make it count!