11 posts from 2007
- January
- February
- March
- April
- May
- June
- July
- August
- September
- October
- November
- December
My previous post The truth about managing software development projects in two charts got buried quite heavily on dzone.com. User gfxmonk commented:
how is looking at two made-up graphs going to be of any use? The author doesn't even outline what was done differently...
while user Mihai Campean said:
Simply a poor written article...
I
guess what was missing - in hindsight - is a proper conclusion. These
graphs are based on the collective experience from several projects
I've been involved with. It doesn't really matter how they were done
differently.
The conclusion that comes with these two graphs is: what's your strategy? In other words: which decisions will you take to ensure the plunge will happen at the start of your next project?
That's an open ended question which if fine because how to do any project successfully is an open-ended question as well.
I ask four questions to help determine the strategy for each project that's started at my company:
- What will be done?
- Who will do it?
- How will it be done?
- What do we anticipate to go wrong?
What will be done?
To answer this question you need an reviewed, validated analysis. The best way to validate is to prototype potential solutions.
Who will do it?
Sure enough these are the people on the project. Do they have the right experience? What's their mindset? Are these people exclusively assigned to this project? How will management be involved in the project?
How will it be done?
What's the process? Which tools will be used?
What do we anticipate to go wrong?
Which requirements to we expect to conflict? How did previous projects
with this customer go? Can we reasonably expect to make it within the
available time frame and budget, with the available people and with the
selected tools?
Conclusion
I find these questions a good place to start before asking any other. Unsatisfying replies are a sign of trouble which is why these questions are important. At the start of a project you still have time to maneuver.
Davey traveled around Europe in the spring of 2007 and recorded himself - and friends - dancing. A selection:
Mainz - Simian - Never be Alone
Berlin - Bruce and Bango - Geil
Berlin - Beatles - Back in the U.S.S.R.
Berlin - Cold War Kids - We Used To Vacation
Amsterdam - Micheal Jackson - Smooth Criminal
Amsterdam - Jackie Wilson - Higher and Higher
Paris - Sir Mix-A-Lot - Baby Got Back
Versailles - Otis Redding - Satisfaction
See all 24.
The original:
And the parody:
I've been reading about increasing productivity for about two years and I never saw the most basic, simple fact mentioned: that your productivity is determined by your brain.
If you want to be more productive you have to focus on your brain. Forget about your body. Voila, I just reduced the size of your mental field and increased your focus.
First, listen to this guy and discover why we don't have a good brain theory yet (spoiler: it's been ignored until now).
The GTD book doesn't work for me. It definitely points out interesting things about productivity but it simply ignores the role of my brain in my productivity.
Think about the role of your brain like this: reading this text on a computer screen occupies your brain to a high degree. More specifically, our brain can be trained to read text from a screen but it takes much more effort than walking or talking or doing the dishes.
So, how can you expect to be productive while you're occupying your brain this much for such a mundane task as reading text? And I guess you're reading a lot on any given day, so there you have it.
Instead of focusing on being more productive you're straining your brain with unproductive tasks. So what can be done? To answer that question look at this chart:
Your brain is exposed to many common tasks and each of them have their position on the complexity/productivity chart. Household chores are my favorite since it can be done with little mental resources and the result is high productivity.
Remembering stuff requires a little more mental resources yet if you succeed in remembering what you shouldn't forget you increase your productivity.
Surfing the web without purpose does not result in any productivity increase whatsoever yet requires a lot of effort from your brain. If you're not sure this is true take a look at web design from scratch (here's is a good start). Occupying your brain without return is exactly what you should avoid if you want to free your brain for more productive tasks.
Then there is the knowledge work you're involved in and your career. This will always be complicated for your brain and can and should be highly productive.
What the complexity/productivity chart reveals is that many tasks in your life can be much easier to perform. The trick is to avoid involving your brain too much during their planning and execution. Look at Doing the dishes efficiently for one example.
In order to increase your productivity you should start to acquire some useful habits that automate low complexity tasks to a large degree. However, how can you increase your productivity?
Keeping to-do lists will in some case lead to increased productivity. In most cases however keeping them is about as effective as solving an algebra exam by chewing gum.
The road to increased productivity is training and specialization. And you should start at the bottom of the ladder. If you hate doing the dishes, clean the house, iron your clothes and prepare food and thus delay those chores then you could increase your productivity by actually learning to do them, one at a time.
This is the domain of Zen Habits: Simple Productivity. If you're doing these task but find them annoying and hard then changing your habits and attitude is your next step to increased productivity.
The productivity of doing chores is more complicated to understand than you might imagine. The good news is that they can be organized and executed in a very relaxed way, both in terms of comfort and brain relaxation.
I spend about 5 hours a week on household chores, most of them during the evening. Your first goal is to estimate how much time a chore will take and plan that time in your weekly schedule. Your second goal is to organize the execution of these chores as efficiently as possible.
You will actually spend brain power on the organization and appreciation part so that you will get free mental time each week while you're performing these chores. And this is a lesson for life, one that you will never unlearn.
Once you have the chores under control you can use your free mental time to think about the next tasks in your life where you can improve productivity. For me this is currently the time I spend online so expect more posts on that soon.
Here's a wrap up:
- Most activities in your life require a lot of effort from your brain.
- Some of these activities won't increase your productivity at all.
- If you like to fish or golf or ride your bike then by all means do so.
- You can get better organized without to-do lists by training and specializing for activities.
- Household chores is where everyone has to start because they are low complexity and highly productive.
- Once you have them under control the quality of your life will improve significantly and you can focus on improving other activities.
If you're running a development project or are working as a developer or architect or designer then you may want to take a look at the following two graphs.
The first graph shows a project in trouble. Especially pay attention to the red line which indicates the amount of trouble a project is in.
At the start of a project you're in a lot of trouble. You have to start building software and you don't have anything yet. At the end of the first month you have something. Next month you have some more.
But as the weeks and months go by the amount of trouble your isn't really reduced in a significant or useful way. If your project takes 12 months then by month 9 or 10 you should have a clear view on how to complete the missing features.
As you can see on the graph this project doesn't know how to manage its trouble. There can be several reasons why there is lack of progress:
1. Moving target, the customer can't make up its mind so you can't agree on the specifics that have to be delivered
2. You don't have the right people, developers and management don't have the right experience.
3. No leadership, management doesn't know how to deal with a bunch of developers.
4. No process, you don't really know how to successfully deliver software. Since you have no process you can't foresee what will go wrong during the course of the project.
5. You're not properly organized, related to point 4, you don't track bugs (properly), you can't successfully use version control, you don't build, test and release often enough.
6. You don't test, because you believe writing tests is a waste of time.
7. You don't know how to test, because that's not always easy and requires experience, leadership and constant follow-up.
8, You underestimated the amount of trouble you're in so the time you have to finish the software is not enough from the outset.
Hey, the profession of delivering software in team is not easy. The second graph shows a project that knows how to manage trouble.
Notice that at the start of the project the amount of trouble your in (red) takes a sharp dive. After this initial effort you have the time to complete the feature that are missing.
This is what you want. However, measuring the exact amount of trouble that remains is no child's play. It requires a lot of tests that are easy to maintain, regular releases and regular execution of tests, regular communication with the customer.
Also notice that the number of people in your team (green) and the remaining budget (blue) are unaffected by how you manage the trouble you're in.
So there you go, the truth about managing software development projects in two charts.
By Brad Warner:
Whenever I eat my lunch in the park near my office there are always pigeons around. Sometimes when I sit down a couple of them will come over to my bench thinking they just might get a hand-out. Often, even if I don't give them anything, other pigeons will notice these guys and come around as well. Before you know it there's a couple dozen pigeons hanging out around my bench.
pigeons have been programmed by evolution to do this, and it makes perfect sense. If there's something good for one pigeon over by my bench, the others figure since they're pigeons too whatever's got those pigeons excited is probably good for them as well. All animals do this and human beings are no different. This is why we react to things that are famous.
If you're a TED fan like me you may have seen these videos before. I show them here because they touched me and made me think.
First there's the story of Cameron Sinclair who back in 1999 at the age of 24 created Architecture for Humanity and embarked on a mission to bring economical and social development and architecture closer together.
Then there's Joshua Prince-Ramus who has participated in some of the most astonishing and amazing feats of architecture and living I've ever come across.
We can't know what to expect next. As long as there are people Cameron and Joshua I'll be watching. As long as there is TED I'll be discovering new things.
I just found Fluxbuntu, an Ubuntu-based distribution more light-weight than XUbuntu? Take a look at the screenshots.
From the wiki:
It is a "misconception" by some that Fluxbuntu is simply Ubuntu with the addition of Fluxbox or that Fluxbuntu is designed only for older, "obsolete' hardware. Although based on Ubuntu, many packages and daemons have been removed from Fluxbuntu. Think more of an Ubuntu server install (from the Alternate CD) with Fluxbox and a few additional packages.
Fluxbuntu is designed as a "light weight" distro with an emphasis on lightweight applications. As a result of LPAE standards, Fluxbuntu is lean and efficient, giving you more CPU and RAM power for applications. Whether you are trying to breath "new life" into an older machine or running a newer CPU you will notice a performance enhancement with Fluxbuntu.
More bang for the box, that's how I like it.It appears to be early days but as soon as I come around installing VMWare on my XUbuntu I will give Fluxbuntu a go. In the meanwhile take a look at the screenshots.
Two months ago I decided that I'm tired of working on notebooks all the time. So I converted my 3 year old Sempron 512Mb desktop PC that was collecting dust to my personal workstation at home.
It has a nice 19" TFT and a decent keyboard and mouse. I decided that I needed more comfort than any notebook could offer so I installed Ubuntu Feisty and got started.
The Ubuntu experience pleased me very much and I have to say that I don't see why I would ever use Windows at home again. However, after some weeks I ran into trouble.
My motherboard has a built-in video chip that uses 64Mb of the main memory. So instead of 512Mb I only have 448Mb available. The trouble occurred when I opened too many applications (Firefox, OpenOffice Writer, some command prompts and editor, one or more PDF files).
Now, 448Mb is a lot of memory but for some reason Ubuntu started swapping to disk like a maniac. My PC was often unusable for 30 minutes or more which is extremely annoying!
So I looked for alternatives. The first alternative was to do a minimal memory upgrade. Unfortunately DDR RAM is out of fashion and is replaced by the more recent DDR2 type. And since I have no free memory slots (I have two times 256Mb) I either had to buy 1Gb of memory at more than 70 euro (1Gb DDR2 is at 30 euro) or upgrade to a faster CPU and DDR2 RAM for more than 150 euro.
I already discussed the purchase with my fiancée and decided to safe for the money. But it wasn't a good deal since it would mean that for the coming months my problem could raise its ugly head at any given time.
Enter XUbuntu. I found this lightweight Ubuntu version that doesn't use the Gnome or KDE window managers and thus uses a lot less resources. I repartitioned my hard drive during the XUbuntu Feisty install that went very smoothly. In about 1 hour XUbuntu was installed without any hassle whatsoever.
After installing my video drivers and running Easy Ubuntu I now have exactly the same functionality as the regular Ubuntu while using much less memory. It looks like I won't need to upgrade my PC for the foreseeable future which saved quite some money.
Long live XUbuntu. Why use more than you need? The screenshots show the beautiful XUbuntu desktop and some applications opened. XUbuntu was using 300Mb after opening these applications and the system was still very responsive. Ubuntu would be near its breaking point.
I like doing the dishes, in fact I do them every day. It's my time of the day where I do the most mental crunching. And I've put the drive to increase the productivity in life in practice at the sink.
Here are my 5 principles that make doing the dishes fun:
1. Our family already consumes enough natural resources. By doing the dishes we save money and save on electricity and water consumption.
2. We have a family rule: "If we have the energy to cook we also have the energy to do the dishes." On most days my fiancée cooks and I do the dishes. By doing the dishes every day it's reduced to a 30 minutes task which leaves lots of time for more pleasant things during the evening.
3. Before I start I throw everything that has to go in the garbage. Next I collect everything that needs to cleaned on the sink and order them into groups: cutlery, plates, cups, glasses, pots and pans, plastics, ...
4. Then I wash category by category, usually in this order: glasses, plates, cups, cutlery, plastics, pots and pans, rest. I rinse every item before putting them on the drying rack. I don't dry unless the very big things for which there is not room to dry.
5. Lastly I quickly clean up the kitchen.
Doing the dishes is a great way to do my part of the household. While I'm doing the dishes my fiancée rests and I prepare us a tea. The way I see it we win on every front.