Michael's comment from May 6th brought up a good point that I did not mention in my "Why Software Projects Fail" post. When a technical solution doesn't take off in the market as expected, it seems that the first thing most teams do is look at the technology and try to figure out how to change it so it will be better accepted. However, many times the problem is not in the technology, but elsewhere in the process or organization.
Agile development teaches us to react quickly to the changing landscape that is our customer base. Give them something to use, and then react to their requests quickly. However, this really only works when you have already established the end-goal that you are attempting to provide a solution for. If that over-arching goal is changing, then the only thing that agile development processes will do for you is help you to get things that don't solve customer problems into their hands faster.
Sometimes, when our software isn't being accepted as quickly as we had hoped, we need to look at the sales and marketing of that solution to ensure we are really trying to sell to the right market segment, or we need to review the company organization to ensure that the right people are working on understanding the customers needs and infusing that into the development process, or maybe we even need to review the customer that we are trying to serve to ensure that we really understood what their needs were.
The solution is not always to change the technology, or add more features - as a matter of fact, I would propose that this is hardly ever the solution to slow sales. Understanding the customers needs and helping them achieve their goals is.
Marketing cannot operate under the same "agile" processes that work for development. Trying to identify what customers want by giving them product and then watching how they react to it is not an effective marketing strategy. Understanding the customers goals upfront, defining what the end-goal is, and giving customer the solution one valuable and functional step at a time is what works.
Consider how Saturn entered the automobile market - they didn't come up with a line of cars immediately, but rather entered the market with a single car that they felt would hit a specific segment of the market, and they were right. As that car gained acceptance, they then added other cars and even entered the SUV market eventually. Each iteration along the way, however, they were meeting specific customer needs with a specifically designed automobile.
Sometimes it seems that our marketing efforts are trying to provide pieces of each car to all of the potential customers in an effort to see which segment will "bite" first. The theory, of course, is that we would then focus in on the needs of whichever customer actually does buy the product, and we could "iterate" until we solve their needs. We end up with our first iteration of the product being the wheels of an SUV on the body of a sport scar with lots of legroom in the backseat. It doesn't matter how many times we try to move the position of the radio and climate controls, or whether we add hands-free radio controls to the steering wheel, sales of this Frankenstein car will not pick up.
The logic is that we can't go after just one segment of the market, because that would be limiting our customer base. And, we can't leave anyone out of the potential market, because we may not know which segment is the most profitable. Or, we can't make decisions for the customer - we need to give them all the technology and let them decide which features they like the best. Rubbish.
Arguably the most important part of any project is the definition of the target customer, and a clear understanding of their needs. The technology can then be developed in a crisp, focused manner, and can be expanded to other market segments in the future. Without this crisp and clear understanding of the market segment we intend to satisfy, we are simply following an "agile marketing" approach of throwing spaghetti against the wall to see what sticks. Hardly effective, and usually tough to clean up.