I’m sure you’ve all seen it. Well meaning software projects where everyone seems competent, but at the end, the project is a failure. After seeing over a decade and a half worth of software development, I see a few recurring patterns.
Client doesn’t know what they want. This is a pretty common problem with inexperienced clients or ones that haven’t dealt with a lot of software development shops or consulting firms. This is exacerbated by firms that don’t know how to manage clients and projects properly. The combination is disastrous because clients have a vague idea of what they want and consultants don’t know how to get it out of them.
Client doesn’t know how to articulate what they want. This is very similar to the first problem but not nearly as bad. They know what they want, but don’t have the vocabulary to describe it or the breadth of experience to point you to what they want. It’s up to the consulting firm to be able to guess and point to existing examples in the real world that might be close to the client’s vision.
Clients want the wrong thing. I’ve had potential clients come to me who know exactly what they want and that’s great. However, sometimes the thing they want, you know it’s just a bad idea. By that I mean, they want stuff you know to be bad weather it’s a flash site with tons of music or a social network that bombards you with ads because they think that’s what people want to do: click on ads. I try to convince them that it’s a bad idea but this rarely works because you are basically attacking their ego. That’s their idea and you are saying it’s dumb. I usually just turn these clients down.
Lack of communication. Software development is a collaborative process. Consultants rarely know everything about the business of the client and relies heavily on the client to bring their domain expertise. It’s not like going to a car dealership and just picking out the car you like and agreeing on the price. The software firm will need a lot of information from you. A lot of times, getting content, feedback from clients is like pulling teeth. This usually holds up the project and adds needless delays.
Client doesn’t know what customers want. This is a common problem among startup clients. The fledgling company may have a clear vision of what they want, however, that doesn’t mean that it will work. It’s merely a hypothesis. Even if everything is executed as the vision, there’s no guarantee that users will flock to it. Color comes to mind. Clients may think they know what users want, but that is not always the case.
Trying to finish a project by throwing more people at it. You can’t just throw more people at it. Nine women can’t give birth in 1 month. Software development is problem solving. It’s not a simple application of force like adding more people to move a boulder. Thus just throwing more people at it without understanding how to apply them doesn’t necessarily lead to project completion or success. I highly recommend this book “The Mythical Man Month” regarding this topic.
Software as a checklist. This occurs more at big organizations. Software is treated as little more than a feature list to be checked off. Little thought is given on usability, whether or not it actually solves any problem, or if people end up actually using it. When software doesn’t solve the problem or is so hard and unintuitive to use, even if it was delivered on budget and on time, it’s not a success.
Popularity: 7% [?]