Maximize developer productivity
To better understand developer productivity we need to answer a few questions:
- What is developer productivity?
- Does showing up at 9:00AM and leaving at 5:00PM everyday help productivity?
- Is working from home or any other place of choice more productive?
1) What is developer productivity?
According to Wikipedia productivity is a measure of output from a production process, per unit of input. We measure developer productivity by calculating the amount of time spent in hours divided by the number of lines of code created or updated.
2) Does showing up at 9:00AM and leaving at 5:00PM everyday help productivity?
In the developing process we basically input time and effort to get lines of code, So unlike buildings maintenance developing is neither limited by location nor time since computers can work anywhere and anytime of the day. Thanks to online collaboration platforms such as google apps and zoho all team members can stay in touch and edit and share documents or brainstorm ideas from anywhere in the world.
Then why do we strip developers from the freedom of choosing when and where to work?
3) Is working from home or any other place of choice more productive?
Not necessarily, outside the office there are all kinds of distractions and temptations but in order to be fair I would say not for everybody and not all the time.
Due to economic pressure very few developers enjoy the privilege of having their own private offices, cubicles and shared office spaces are full of distractions which is the number one killer of creativity (IMHO).
So, if the task requires a lot of inspiration and creativity then I think you better off out of the office. Or on tight schedules when you need every second you can get I suggest you stay home.
When not to?
In early stages of the project when all kinds of meetings and collaboration is taking place I think spending time with the team mates will produce better results.
There is no magical formula to when or where developers are more productive. The only thing we can do is to ensure that our developers are committed and motivated enough to make the right choices to be and stay highly productive.