Posts Tagged ‘Productivity’

Increase Your Productivity. Work in 45 minute blocks.

Monday, May 3rd, 2010

Over the years, I have settled on a system that best allows me to focus and be productive.

Work 45 minutes. 10 minute break.
Work 45 minutes. 10 minute break.
Work 45 minutes. Longer break.
Repeat as necessary.

How did I come about this system?

Mostly by trial and error and observing my energy. I would notice that it would take me about 45 minutes of working on something to come up with a solution. For example, if I was working on a bug fix, from the moment I started to the moment I finished would be 45 minutes. I would feel good about accomplishing my task and would take a break to relish in the accomplishment and prepare for what I needed to do next.

After doing this system for a while I came across a study that found people can only focus on one thing for about 45 minutes. After 45 minutes, your mind starts to wander and you have a tough time remaining focused. A break helps re-energize your focus.
(Unfortunately I do not recall where I read this. If I come across it again in the future, I will edit this post)

What about longer tasks?

Longer tasks are just broken down into smaller pieces. No matter how large the project is I break it down into something that can be accomplished in about 45 minutes. In fact, you need to do this otherwise the project would just seem overwhelming.

Sometimes I do want to keep working but I usually feel worse if I do. My muscles will start to ache from sitting so long. You need breaks. Standing up and walking around helps improve your circulation causing better blood flow to your brain.

During the breaks, I will usually use the time to think about what I want to do next. I try to turn this break time into planning/thinking time. Too often as programmers, we just want to do, do, do. It is important to spend some time each day thinking about and planning your work otherwise you may end up spending time working on something that is not important.

To make sure I take breaks, I use SlimTimer to time my work. I start by simply clicking on the task and when 45 minutes are up, I take a break. Sometimes I will go to 50 minutes if I just need a few more minutes or stop at 40 if I have accomplished my task already but it usually averages out around 45.

It is important to remain as focused as possible for the 45 minutes otherwise this system does not work. You must resist any temptations that may pull you away from your task. Stay focused on one thing. Turn off email notifications and IM and close your browser.

Give this a try for your own work. Use a timer but only time the periods you are focused and productive. When you notice your focus is slipping or you need to take a break, stop the timer and observe how long you remained productive for. Keep recording this information for a week or two and you will start noticing patterns about how you work.

Edit: Here is one reference I have come across from “How to Stop Worrying and Start Living” by Dale Carnegie (unfortunately no reference is given for this passage):

“Why is [rest] so important? Because fatigue accumulates with astonishing rapidity. The United States Army has discovered by repeated tests that even young men – men toughened by years of Army training – can march better, and hold up longer, if they throw down their packs and rest ten minutes out of every hour.”

SlimTimer

The Dirty Secret of Work

Sunday, April 11th, 2010

This is my 4th Toastmasters speech. Please evaluate this Toastmasters speech at Soapbox Guru.

Good evening Mr. Toastmaster, fellow Toastmasters and welcome guests.

How many people here work full-time – about 40 hours a week or so?

Unfortunately, I have some bad news for you. You’re working too much.

What if I told you it was possible to be happier, to be more satisfied with your job and get more done while working fewer hours? Now I know what you’re thinking, you’re thinking whoa, wait a minute Matt, work less and get more done? This doesn’t seem possible. It must define some kind of law of physics or something. But it is true, if you’re working 40 hours, I believe you’re working too much.

Now to understand why, we need to go back and first look at the history of this 40-hour work week. People, I think, are working much longer than they’ve worked for most of history. Prior to the Industrial Revolution, people mainly worked on farms and work was limited by natural factors such as the seasons and daylight. No one’s going to go out in the middle of December and start planting seeds because that’s just bogus. Then the Industrial Revolution came and people flocked to the factories. Factory workers encouraged people to work as much as they could – work them to the bone, work them to death. So people worked 80, 100 hours a week. Their lives, basically were work. And since then, we’ve backed off from that to now where 40 hours is considered a full-time work week. And the 40-hour work week came about mainly because of one man. And you know him because some of you probably drive his cars. That man is Henry Ford.

Henry Ford did over 12 years of productivity experiments about how he can get his workers to work the most effectively so he can get the most profit. He realised that by working people as much as possible, people get tired, people can’t concentrate, they make mistakes causing bad cars, they get sick easier and then it affects everyone else thereby reducing productivity. So he discovered that 40 hours seems about right for what people should be working. So in 1926, he let all his employees know that from now on we are only going to be working 5 days a week, 8 hours a day. No overtime. No more working Saturdays. Let’s just work this. So that’s where we are today.

Now there’s one problem with this. How many people here work in a factory? Exactly. So the 40 hour work week is great for factory work but does it translate into work that most people do today which is, say, knowledge work or problem-solving work. And no, I don’t believe it does. I think the dirtiest secret of work is that people go to work for 40 hours but it is impossible to actually be productive at work for 40 hours. I would say that people do about 20 hours of productive work a week at work. Why do I say this? It’s because what I about do.

I know there’s a risk in me saying this but I’ll say it anyways.

So why do I know this? Because when I’m working I use a timer to track my productive work – the time I’m doing focused work on programming. I run it and I found that doing 20 hours of work a week seems about right. If I try to push myself and do more, I notice that I become more depressed, I am not looking towards going to work anymore, I get sick easier. But if I back it off a little, then I enjoy my work better, I feel I can concentrate more and I believe that I get more done.

The problem is that for most people they view work as something like this. The more hours you put in, the more productive you are. That every hour extra is another hour you can achieve more things. This is completely wrong.

What it actually looks like is like this. When you start off, you are pretty productive and then you reach a point. And as Henry Ford saw, this is about 40 hours for factory workers, a little less for problem-solving or creative knowledge workers and you actually start to lose your productivity. This has been done in studies in the game development industry for software. There’s been studies done because they’re known for pushing their workers for working long hours to get the games developed to a deadline. And so they find that, sure, you can push yourself for a while, say if you want to work 60 hours or 80 hours for a couple weeks, it works ok. That’s where people start to think they can keep pushing themselves. But as it works out that you will actually start to lose productivity in the long-run.

Work hasn’t changed much over the last 100 years since Henry Ford decided to go to a 40-hour work week but there is hope. Some companies are working towards what’s called a Results Only Work Environment, where they don’t care where you work from, they don’t care how many hours you work as long as you get the work done. And I hope this is what we’ll see going forward as it will help make people happier, more satisfied with their jobs and you will get more done in less time.

Productivity and Price

Sunday, March 14th, 2010

Recently I was approached by a former employer about doing a small task for them. While working there, I was paid $X/hr. For this task, I said I would need to charge roughly $2X/hr. He came back saying it was way out of his budget.

I was fine with not having the work because I obeyed the first rule of freelance work – always quote your rate so you are satisfied no matter if you get the work or not. This is a great rule which hasn’t failed me yet when freelancing. It helps keep my rates fair.

This guy is not technical and doesn’t know programming. This situation identifies the single biggest problem programmers have working for non-technical people – they can’t extract value from a rate.

It is well known amongst programmers that there is a 10x difference in productivity between the best and worst programmer. I’m definitely not the best, but I consider myself fairly competent. To toot my own horn, one time I was trying to solve a bug with the help of another colleague. While I was showing him the bug, I identified another bug and fixed it up within minutes. Later he told me that the bug I quickly fixed had been assigned to a senior developer who had been trying to solve it for nearly two days!

Unfortunately, non-technical managers do not understand programmer productivity. My 2X rate as a freelancer actually works out to X as an employee. Let me explain.

As an employee, there is a lot of inefficiency in going to work at an office for 8 hours per day. In fact, out of an 8 hour day, I think most people only get about 4 hours of productive work done by the time meetings, interruptions, tiredness and breaks are factored in. Charging 2X as a freelancer actually works out to the same deal, if not better. As a freelancer, I have control over my work environment and would be working only when I felt like working which makes me more productive. I can work when and how I want rather than being constricted by a set time and space. If I am tired, I stop work, take a nap and then start again afterwards feeling refreshed.

Some programmers are simply just better as a result of their effort and experience. For example, a friend of mine has paid someone $100/hr for some tasks. He tells me he pays this because the guy gets things done much quicker than somebody else. If he were to hire someone at $15/hr, the guy might take 15-20 hours to do what this guy can do in one hour. The savings justify the high rate. Expensive is cheaper.

To non-programmers, it is really tough to believe that someone could be that much more productive but it’s true. A bad programmer can actually be negatively productive and push back progress. If you were building a house, a bad programmer would be the equivalent of someone coming in and knocking down a few walls when the house was almost complete. Bad programmers will introduce bugs and write hard-to-read code that will force someone else to spend time correcting it.

I don’t blame non-technical managers for not knowing this stuff. They haven’t programmed before so the only way they could know this is by reading about managing programmers, which not many seem to do. However, if a manager was that ambitious, they would probably have already picked up a little programming knowledge.

To all non-technical managers: learn about how software is produced and what makes a good programmer productive. The effort you put in will make good programmers want to work for you and it will help save you time, money and frustration.

How to Torture Programmers

Monday, December 7th, 2009

Do you have a programmer in your life that drives you up the wall? Would you like to be rid of him forever? You can! Just follow these five simple steps and your programmer will run crying for the hills.

1) Put him in an open office

Remove as many barriers to communication as possible. Put the most talkative person – the person who can’t keep quiet for more than five minutes – as close as possible. It’s best if you have many non-programmers within earshot so they can chatter about topics of non-interest to the programmer.

Microsoft did a study that showed that for each interruption, it takes a programmer at least 15 minutes to get back into the focus they were in before being interrupted. If you have everyone in an open office, there will be more interruptions and chances for torture.

2) Lockdown his machine

Don’t let him pick the tools he wants to do his job. After all, security is paramount and programmers can’t be trusted. Instead, give him the tools that you choose. Preferably pick ones that companies with a large sales staff directly sold to you. Only let him use one browser – and that browser is IE 6.

When you hire a mechanic to fix your car, he would go nuts if you told him he could only use one wrench. The same is true of programmers. Limited tools means more frustration!

3) Timely Interruptions

Programmers generally work in 45 minute blocks. The first 15 minutes is gathering information, identifying the problem and coming up with a plan to solve it. The next 15 minutes is trying different methods and learning about which ones work. The final 15 minutes is putting the learning to use, figuring out the solution and implementing it.

If you want to torture programmers, you need to time your interruptions. Interrupt too frequently and he will never start work. Interrupt too late and he will have accomplished his task already. You want to hit that sweet spot around 25-30 minutes. This will break his state and cause him to lose much of the learning he has acquired to solve his task. Do this at strategic points throughout the day and he will leave feeling he has accomplished nothing.

When you interrupt, do it for some mundane reason. The more pointless and non-urgent the better. Also, be sure not to ask if he’s busy. You don’t want him to have the opportunity to put your interruption on hold.

4) Provide Pointless Work

Or, better yet, no work at all. Force the programmer to still come to the office and sit there all day. He can surf the Internet but isn’t allowed to work on anything challenging or useful. This might be fine for a couple days, especially if he has been overworked, so you may need to give this plan some time. After a few weeks, the programmer will be dreading the morning when he has to go to work and not be productive.

5) Shoddy Equipment

If the psychological torture isn’t good enough, it’s time to turn physical. Buy the cheapest equipment you can. Make sure his chair has as little adjustments as possible. Even better, have him sit on a stool. Gravity will do the work for you and strain will start to cause problems with the programmer’s spine, shoulders and arms. He will start developing back problems causing him pain for a long period of time.

Your company does not need to put up with happy and productive programmers anymore! Just implement these 5 simple steps and you will have broken their spirits. Productivity will cease and morale will plummet. Work will soon be torturous for programmers just like it is for you.