Code as Early as You Can
TL;DR
- According to Joel Spolsky, just getting started could be the key to productivity
- Data can drive habits, so we can start by tracking code start times—the earliest time in the day we begin coding
- Starting earlier means we have more time to code
- Code First is a principle we can adopt to improve developer productivity
Code First Is a Principle That Helps Drive Developer Productivity
By external measures, Joel Spolsky is a productive developer.
That's a bit of an understatement, since Spolsky founded Trello, Fog Creek Software, and Stack Overflow.
That's why it's so interesting to hear his personal take on productivity.
In his blog, Spolsky makes a brave admission:
Sometimes I just can't get anything done.
Sure, I come into the office, putter around, check my email every ten seconds, read the web, even do a few brainless tasks like paying the American Express bill. But getting back into the flow of writing code just doesn't happen.
Wow, isn't it great to hear that slow mornings are the same for everyone, even for a guy who has had such a productive impact on the world of software development?
Spolsky goes on to share a simple insight: "Maybe this is the key to productivity: just getting started."
Data can be a powerful trigger to drive productivity. To overcome morning inertia, one of the simplest things we can do is to track when we start coding each day.
Why Track Code Start Time?
The earlier in a day you begin to code, the more time you have to code in that day. And the later you start, the more you check email or social media, the greater the inertia to overcome. Products like Facebook and Slack are addictive by design.
Do you dedicate you first working hour to code, or do you waste it on reviewing your schedule and reading through your email?
There are reasonable limits to starting early, of course. Coding earlier in the day at the expense of a full night of sleep, for instance, can be counterproductive and result in less total quality code in a given day.
Code First
Code First is a principle developers or teams can adopt to improve productivity. It builds on coding early in the day.
It includes a bias for action, for instance, rapid prototyping to understand a unit of work instead of extensive research and planning.
It means purposely dedicating or protecting natural focus or flow times to maximize coding, to achieve maximum code flow. And it puts code time ahead of meetings and other time constraints.
Code First is not at odds with code quality. It can be combined with a heavy emphasis on unit testing and a disciplined code review process, for example.
Once you can see your code start times across days and for specific days of the week, you can set goals to improve consistency and put code first.
Code First is a principle that can help you overcome those slow, lazy mornings, so you can have as productive career as Joel Spolsky—or some human approximation, since Spolsky might be an alien or AI program.