In an agile process, what is a defect?

Our agile team is finding some things challenging. In particular deciding how to prioritise and work on “bugs” in the midst of a pool of prioritised and scheduled feature stories.

“Agile In Action” has a nice summary of an approach to software development. Most agile practitioners won’t find anything to object to.

AGILE IN ACTION: The Energized Way

Our first problem is with the second bullet “Work with clients every day“. As a team we would love to work with clients every day, but there seems to be a thick layer of representatives and proxies in between us and real customers. This is made especially difficult as we are currently serving the needs of several customers with a single product, and resolving customer differences is proving tricky.

Our second problem is with “Fix defects as soon as they’re discovered“. In principle this seems obvious, but the trouble we are having rests on the definition of a defect. As an agile team we keep up-front specification to a minimum, and in-effect treat every delivery as a prototype ready for customer feedback. Plenty of people in the company have opinions on such prototypes - things they think it should do, things they think it should not do, and things they think it does wrong. Any of these could be considered as defects (and indeed many of them are raised in our bug tracking system.) If we stopped new work to make all these changes we would (a) greatly reduce our feature velocity, (b) bypass the prioritisation process used to “Deliver the client’s highest-value stuff first“, and (c) leave us stuck in a mire of conflicting opinions.

We certainly do not ever want to deliver “broken” software, but its a fact of life that some “bugs” are lower in priority than others. Some “bugs” are also lower in priority than new features, but this is more of a business decision than a development decision. Working out how deliver prompt, appropriate and minimal software in the face of such a slew of opinions is proving contentious.

I’d be interested in reading any suggestions or answers to these problems.

6 reasons why a VC funded startup failed

A very thought-provoking post analysing how one particular software startup company failed, and exploring things which might have helped prevent the failure. I’ll need to think more about this.

6 reasons why my VC funded startup did fail | Code Monkeyism

Are Thoughtworks’ products (and product sales) really so rubbish?

I’m tired, and I’m cross. Last night I was up too late, and this morning I have wasted another few hours. All trying to do something which should be simple - evaluate some products from the well-known software consultancy “Thoughtworks”. And so far I still have not succeeded.

It all started so simple. I was looking around for a bundled software solution for running a new software project and found “Buildix 2.1“. This looked to be a large part of what I need, so I investigated further. Subversion for storing source code, Cruise Control for continuous integration, Trac for change tracking and wiki collaboration. All familiar, useful, stuff. And it also offers “Mingle“, a tool I have not used before, for agile project planning. A quick check shows buildix is offered under an Apache licence. Best of all, they offer it as a pre-built virtual machine image, so I should be able to just download it and run it alongside my existing VMs and give it a good evaluation.

And that’s where it all began to go wrong.

I downloaded it and extracted the files from the archive, started my VMware server console and gave it the details of the VM image. First problem - the image somehow requires a later version of VMware, forcing me to upgrade. I have installed a bunch of different vm images before and never had to do this, so why can’t Thoughtworks manage to build a compatible image?

So I went through all the pain of an upgrade to VMware server 2 (complete with the sudden appearance of a login box which was never needed on the old vm manager, and required me to create a new Windows admin user!) but eventually I got to a stage where the new vm image would at least load into the hypervisor.

Then I hit the bit which astonishes me the most. The supplied VM image is broken and won’t even start. Worst of all, this is a known problem. Did they not even test this most basic of steps?

So, I followed the instructions and logged in to issue a “fsck” command to get it working a bit more. Which in turn required me to go to the web again to find the default root password (if it helps anyone else, it is also “root”).

After a while it seemed to have stopped initialising, so I found the dhcp address which had been assigned to the vm, and tried an HTTP request to port 80. Timeout. Using my new found root login skillz, I hit Alt-F2 on the VM console, logged in as root and entered “ifconfig”, the response did not include an ethernet connection, only a loopback. My knee-jerk response in this situation is to enter “ifup eth0″, and in this case it seemed to work. It is probably not a long-term solution, though, and may not survive a reboot. For that I may need to mess with some config files.

After all this effort, I just about have a running system. Connecting to the same ip address with a web browser now gives a redirect to https, which in turn causes Firefox to complain about a self-signed certificate, so I plod past that. Eventually I see a page which asks me to configure Mingle, so I enter a bunch of smtp and user details and suggests that I enter the details of the new user in the buildix config (with a handy link). Unfortunately, when I click that link I find that it requires a login first. I try the details from the user I have just created, with no luck. Back to the internet I go.

It turns out that the username and password I need are “buildix” and “buildix” respectively. After a bit of bouncing around pre-populated login fields, I get to the config page and enter the details.

Now I have run out of what little instruction there was. On the Buildix web site the navigation link labelled “Documentation” takes you to a breathtakingly dismissive page which just states:

Documentation

The forums can be found here.

No sign of even the simplest tutorial or walk-through to give a hint of what you can do with the system. No links to documentation for any of the component applications. No FAQ for any of the show-stopping problems which I have tripped over so far. Unbelievable.

Left to my own devices, I try clicking some of the links, starting with “create project” but all I get is a cryptic error message. The suggested sol