Long ago, I used to work late. I worked like 12 hours a day. I thought I was working hard and contributing a lot to the project. It was not only me but everyone was staying late, and it became company culture. Later, we released the project. Since then, people need to do fire-fighting everyday because the software has many bugs. While fixing bugs under pressure, we introduced new bugs - starting bug fixing cycle. Users were not confident to release bug fixes and new features.

I was wrong. I was wrong in thinking that working long hours is working hard. My mind and body is tired after working long hours. I introduced many bugs while working with tired mind. I lied myself to stay late even though I want to leave office. I wanted my boss to think that I was working hard, even though my productivity at that time was near zero.

When I realized that, I think it was 3-4 years ago - I try to change my habit. It helps me a lot when buildingcrafting the software. Recently, I am able to lead two successful agile teams and we are releasing quality software fast. Everyone is leaving the office at 6:00/6:30 PM and yet our development pace is steady fast. What did I change?

How to work hard?

  • Find the zone - We are creating the best software when we are working in the zone.
  • Don’t check email at morning - For many people, including me, the zone is at the morning. My mind is fresh and I still have lots of energy at the morning (of course, if I have relaxed and slept enough last night). Don’t use that moment to check email. Use to craft the software that is what we are paid to.
  • Pomodoro - I find myself that I am very productive while working with pomodoro. I target myself to achieve 4-6 pomodori a day. Yes, there is a max for me. You will surprise that how much energy is required to focus and work productively. I was exhausted after 3-4 pomodori when I start using pomodoro technique.
  • Exercises - Not only our mind but also our body need to be strong. Doing exercises will keep us fresh and help to sleep well at night.
  • Write tests - The best productivity tool I found so far for software development.
  • Leave the office - Know your limit. Our mind and body also need break. I try to leave office at 6:00/6:30 PM. I don’t want to work with tired mind just to create more bugs. I don’t want to waste my zone at tomorrow morning.
  • Do side project - start doing any hobby project or may be start to participate in some open-source project that you are interested. It also benefits to the company because: your skill will be increased, you may already solved some problems in your project which may encounter in your work, you may have made some friends who are passionate about software development - it will make company easy to recruit talented people, and so on.

Don’t forget that we are paid to create working quality software - not to sit in front of PC and type.