I think the commercial world of sw has changed a lot in the last 20 years. To clients, sw is no longer some strange incantations to make machines behave. As a result, clients expect sw to be at the same time: flexible, optimizable, evolvable, ... Clients expect to see some results sooner and, more often than not, are satisfied with prototype quality sw. Clients do not know o do not have the time to know: what when or how they want. They also will not take what you give them and ask for what they see as "little" changes. So if you make a lot of work up front you WILL throw it away. Clients will not let you nail them down on a solution. And clients don´t care how it looks inside as long as it does what they want. As most development is externalized, they just see sw as its interface. Those who pay the price are developers that have to deal with all the crap that this type of process generates: bad, out-of-synch docs, architecture that has rot, ad-hoc design, code replication, functional replication, high churn of devs ... (and I am leaving away political-organizational issues). If sw project could, in general, be taken as seriously as other engineering efforts we would not have reached this state of things.
I see XP as an adaptation on the part of the people that make the products to the Real Practices of the world. Some see it as a cause of the above problems, but I see it as a reaction. Most of what goes into XP is not "experimental", it is adaptation and evolution as targets move.
Flat View: This topic has 38 replies
on 39 pages