Monthly Archive: March 2014
I have just been reading an article on the importance of scheduling and bug and feature tracking in software projects. Its a good article and worth a read, but its basic stuff really. However its often the basic stuff that gets neglected so don’t dismiss it on that basis. Anyway the article prompted me to think a bit more on the benefits of eating your own dogfood and regular/daily builds.
The key thing I missed in the previous article was the importance of the process to managing compromise, and often that compromise takes the form of cutting or dropping features in order to deliver to time and budget. The daily build/dogfood approach helps with this as follows:
- First it’s pretty key on all projects to put the basic platform elements in place first. These are the foundation elements upon which everything is built; they need to be the most reliable and therefore tested for the longest period. They are also needed normally before any realistic dogfood environment can be created. In my desktop example this basic building block would be a stable system image, with a core set of applications.
- From that point onwards you are into the features management game. Using …
The last post has got me thinking more about the whole concept of daily builds. I mentioned in passing that the concept is not just applicable to software development but I did not explain the comment. I went out for a walk and started to think through how the concept could be applied to a systems integration project. The one I chose is quite topical for me at the moment, a Windows XP desktop refresh and desktop management project.
So first let’s look at some characteristics of this sort of project:
- A standard system image that needs to be deployed tens of thousands of times to many different types of hardware
- The need to deploy thousands of applications on top of this standard system image, and to deploy these applications hundreds or thousands of times
- The need to access seamlessly thousands of file, print, authentication, management and application servers
- An environment that tens of thousands of users will use for perhaps 2-3 hours a day on average, this means hundreds of millions of pounds of deliverables depend on its usability and reliability
So let’s look at the daily, (or perhaps regular), build process and …
Joel, writes up an interesting example of NOT eating your own dog food, (ie using the IT solutions you are developing yourself), until it was almost too late:
Eating your own dog food is the quaint name that we in the computer industry give to the process of actually using your own product. I had forgotten how well it worked, until a month ago, I took home a build of CityDesk (thinking it was about 3 weeks from shipping) and tried to build a site with it.
Phew! There were a few bugs that literally made it impossible for me to proceed, so I had to fix those before I could even continue. All the testing we did, meticulously pulling down every menu and seeing if it worked right, didn’t uncover the showstoppers that made it impossible to do what the product was intended to allow. Trying to use the product, as a customer would, found these showstoppers in a minute.
And not just those. As I worked, not even exercising the features, just quietly trying to build a simple site, I found 45 bugs on one Sunday afternoon. And I am a lazy man, I couldn’t have spent more …
Project status reporting tends to focus on progress, cost and time. These are the hard measures of a projects status and I’ve described some of the issues with them in this recent post. This post is concerned with the soft issues. Although projects are made up of people it’s rare...
I’m working on some ‘what I’ve learned in the last 10 years’ posts this month. They draw on the long history of my personal knowledge management (PKM) archive, but unfortunately it’s decayed even faster than my aging brain. All the systems that I’ve used at work for personal knowledge management...
One of the biggest issues I see with projects is an overly optimistic assessment of progress. Typically progress is judged by counting deliverables as part of an earned value calculation. Unfortunately deliverables are only one indication of progress and not that reliable. All to often as a project nears completion...
In my recent post on Common Ground I mentioned the critical role that a thorough understanding of scope has on establishing common ground for any project or service team. Given the criticality and the relatively low cost of defining scope you’d think that every project would do an exceptional job...
I don’t believe in a god but I do believe in the teachings of Jesus interpreted for the modern world. Fortunately, for me, Jesus holds no religious (or other form of) authority so I also get to draw on the teachings of other religions and philosophies for inspiration, but I...
Driving home from Cambridge Steph and I were discussing teams and so I got to explain my favourite tool for establishing effective collaboration, building ‘common ground’. It’s an incredibly simple concept, but that simplicity makes it powerful. The basic idea: The more complex a collaboration, the more areas of common...
This morning I woke up feeling great, full of the joys of spring and ready to walk and garden. Unfortunately by about 11am I had searing pain through my left leg and right arm. Luckily I’m used to this sort of complexity in my life, which I’ve designed to be...