Slicing the day

February 1st, 2010

I have noticed with myself (actually I know this for a very long time now already) that I am much more productive in the evenings then I am at the end of a working day. I also just finished reading Programming is all Design by Joakim Holman, Why Design Cannot be Billed by the Hour by Steve Zelle, Software on the Cheap by Uncle Bob Martin and The Design Dilemma by Kent Beck which made me want to put my thoughts into writing.

Now the main topic in these blog posts is design, writing Software is about design and not about producing code. And that design is an easily overlooked topic within the software industry. Sure for us developers our end product is the functionality that our code delivers, but the way we chose to get there makes a difference like between night and day. In the end choosing the road that leads through design is the more optimal path for creating software (I am aware that there are exceptions). Also note the interesting move from calling TDD Test Driven Development to Test Driven Design and even Design by Example.

Now design means thinking, because we need to really understand the problem space and find a solution that we think will solve a particular problem the best way possible given our constraints without eliminating the possibility that we were wrong. And also that it is a continuous process that will drive software development throughout the whole lifetime of the project.

So it is fair to say that this takes effort? I would actually say that it takes a lot of effort. So considering this assumption I can also safely assume that we would do a better job in the morning then in the afternoon? Right? Well I know I do, that is until I take a break and do something completely different and then after that continue to work on the problem. After such a break I have been able to recharge my internal battery and my mind is ready to do some more serious work.

So my ideal day is 4 hours in the morning and 4 hours in the evening. The time in between is my spare time where I can enjoy the weather (if only I didn’t live in Bergen), get the kids early from kindergarten or even do some shopping with my wife. Then after this change of focus I would continue to work on the problem space, but now fully recharged.

This brings some obvious problems along the way, one of them is that pairing (a practice that I value very much, read more about that here and here) becomes very difficult because most of your college’s would not be slicing the day like this. Remote pairing would solve some of these issues I believe.

One minimum step that I believe we should all consider is to move any meetings you have to the second part of the day, giving your full focus to the more difficult parts of the job, Designing software.

Now what I like to know from you is; what are your thoughts about this?

Mark Nijhof

  • http://www.thomas-weller.de Thomas Weller

    It’s exactly the same with me: In the early hours of the day, I’m usually very productive and creative, and all I want to do is sitting down, staring into my display, and doing some development. Other things are potentially disturbing and annoying during this time, I’m better off for these things in the later hours of the day, after the lunch break.
    Because I’m a freelancer, I can plan my day somewhat better than an employed developer, I guess – well, at least sometimes. But often enough, I have to align myself with the schedules of some other people. If a team mate demands your help (or you demand his), or your contractor asks for one of these useless meetings, you can’t just say: “No, go away and leave me alone.” So I try to be respectful to everyone and keep my forenoon as free as possible, knowing that words like ‘perfect’ or ’100%’ are not of any practical relevance. Most of the time, I get along with that without being bugged too much…

  • Aaron S.

    This is pretty much how I’d _want_ to slice my day but alas! My employer follows a strict 9-6 policy so I am stuck with this forced routine (which I believe is causing my performance to degrade) until I switch or start my own little setup (which I have been planning for a while now).

  • Ole Gunnar Borstad

    Good essay by Paul Graham about something related: “Maker’s Schedule, Manager’s Schedule”

    http://www.paulgraham.com/makersschedule.html

  • http://bjarte.com BjartN

    Funny. We just discussed this exact issue at lunch. My perfect work day would be 4 hours in the morning and 4 in the evening. When I grow up and start my own product company this is the way we will do it! This, 4 day work week and clean code.

    And Mark… Don’t diss the Bergen weather. This autumn and winter has been GREEEEEAT. Just take a look outside.

    Later !

  • http://blog.cozwecan.com RobertTheGrey

    Hey Mark,

    I like your slices – unfortunately I have to squeeze 3 of those 4 hours slices in my day if I want to get through it all. Because of this, for me I find the mornings are the worst for creative thinking – I never seem to get anything concrete done. So I dedicate the first 4 hours to emails and admin jobs that I need to get outt he way, otherwise those weigh on my mind for the whole day.

    After a nice break, I find that the late afternoon slot is my best time for this design or architecture work, and then late at night is when I do my best coding. Strange I know, but that’s the way it goes if you want to fit in three good sessions. It’s possible that I’d be more efficient in the mornings if I only had two slots, but I havent had that luxury in years :)

    All the best,
    Rob

  • http://elegantcode.com/about/mark.nijhof/ Mark Nijhof

    @Ole Gunnar Borstad
    Thanks for the link, I had forgotten that one.

  • http://elegantcode.com/about/mark.nijhof/ Mark Nijhof

    @BjartN
    I knew I would get into trouble with my Bergen remark :)

    We should sit together ones to talk about your future plans.

  • http://elegantcode.com/about/mark.nijhof/ Mark Nijhof

    @RobertTheGrey
    I think there is a world of difference between working for a boss or being your own boss. Besides I do fit these slices in my day as well, only 2 for my boss and one for myself (which is regularly bigger then 4 hours).

    And it is a good thing to know this for yourself, that way you can try to schedule the day that best fits you.

  • http://bjarte.com BjartN

    @Mark Nijhof
    Yes, we should :)

  • http://blog.torresdal.net Jon Arild Tørresdal

    How can you be fully charged after spending the whole afternoon with your kids and spend time with your wife shopping?? :-) I would have been exhausted! ;-)

    See your point though and I agree if you take communication out of the equation or that other people do it differently.

    Reminds me of a joke I recently heard: “Your kids never really sleep, they’re just recharging”.

  • http://elegantcode.com/about/mark.nijhof/ Mark Nijhof

    @Jon Arild Tørresdal
    Yes there are definite downsides especially in communication (my pair programming example fails there as well). You could reserve 1 hour for meetings after the first 4 hours. I do think for when you are in the production stage that internal meetings should be minimized as much as possible. But indeed it is not optimal, but the current situation is not optimal either I believe.

    I did not know the joke, but it sure sounds true to me :)

    Here is an interesting read: http://www.smartplanet.com/business/blog/smart-takes/study-employees-with-flexible-hours-work-harder-are-more-satisfied/3901/

  • Michael Reuss

    Hmm, people are different, at least I seem to be different here:
    I am most communicative before lunch and most productive in the afternoon. Therefore I like to discuss in the morning and code later when everything is a) straightened out b) fresh. When I sleep over it and try to code in the morning I have second thoughts again ;-)

blog comments powered by Disqus