Some of you may recognize this little sentence from the military: Be in the right uniform, at the right place, at the right time, doing the right thing. This is the simplest (sounding) task, but it’s the basis of a job, really. You could theoretically hold any job by applying those simple basic rules.
Suddenly, the job becomes about quality, deployment, meeting deadlines and testing for defects
The purpose of those rules, however, is to focus the job on the people. The people performing those jobs (in the military) need to follow orders, be physically fit, and have a general understanding of right and wrong.
So, what happens if we shift the focus from the people, like say, to a software product? It becomes: Have the software looking the right way, at the right server, by the right time, doing the right thing (ie, little to no bugs).
Suddenly, the job becomes about quality, deployment, meeting deadlines, and testing for defects. It’s not a job anymore, its a mission that doesn’t care when the workers write code, just that it gets completed by the deadline. It is a product focused environment that gives freedom to the developers to show up when they want, work when they’re comfortable, and design when they are best suited to design.
I’m not a morning person, in fact, you shouldn’t let me write a single line of code until sometime after 1pm. However, if you need something designed, talk to me at 8am, the morning is when I’m most creative.
I’m sure everyone has noticed that they are better at certain aspects of their job at certain times of the day (or days of the week), so why shouldn’t the company leverage that? A developer’s only responsibilities should be those outlined above. Meetings can even be more or less dissolved into email discussions rather than face to face real time discussions.
For example, the standup. Why waste nearly an hour of everyone’s day discussing something that can be shared in four lines in an email? Is face to face time really that important that you’d waste that much time, every day? Sadly, a lot of companies seem to think so. When it boils down to it, if someone needs face time, they can take a few minutes to do so personally, instead of sharing with the group.
I guess the point I’m trying to make is; do you really want your developers at the end of the day to be surfing the internet, waiting for 6pm so they can go home, when three hours before, they knew damn well that that was all they were going to complete for the day? Let them go home, relax, and come well prepared for the next day’s long coding session.