XP, User Champions, and Software Vendors
Software vendors are in a better position than enterprises to have the full-time user champions that Extreme Programming requires
In his post, Fundamental Problem with Extreme Programming, Greg Vaughn argues that getting the level of business person involvement in software projects that XP demands is not realistic in practice. I have to agree with Greg's pessimistic view on how hard it is to get business people to set aside large chunks of their working time to help set requirements and provide a constant user feedback loop. However, I also fully agree with everyone who has responded to Greg's post by saying that without that involvement and feedback look, projects are likely to fail.
My own experience has been that for simple projects, this is not a huge problem - somehow the requirements get dragged from the business users and enough feedback iteration takes place to ensure that the project really does meet its requirements. This all happens far less efficiently than it optimally would, but if the project is small, that inefficiency doesn't add up to a lot of time in absolute terms.
But if the project is large and/or complex, a lot of focused user involvement is critical. The most successful projects that I have seen all had a user champion who felt that the successful completion of the software project would positively impact their own job performance, and so they are willing to sacrifice time spent doing their normal job in order to spend more time on the software project. Just as important as the time they spend is the focus of their attention. An effective user champion will be thinking about the project all the time, and will therefore bring better insights and more attention to detail to the project.
Finding a user champion can be difficult within a normal enterprise. It is rare that a company will assign a business user to be the full-time champion of a project. And even if they do, that user may not be fully engaged on the project (may see it as a distraction or as a tour of duty in the gulag). It is often a matter of luck for a successful project to find a willing champion who truly cares about the project and thinks that their career will be advanced by their involvement with it. And of course it is critical, but not always controllable, that that user champion know what he or she is doing.
This is a problem that software vendors can much more easily handle (if they choose to). One: since the developers of a package at a vendor tend to work for very long stretches on a particular piece of software, it is much easier for them to become fairly expert themselves in the underlying business that their software supports, which Greg states is the ideal (and I agree with him). Two: a vendor can hire professional user champions who will be dedicated full time to their software products. In my first company, which developed a package for currency options traders at banks, fully one third of our employees were former traders whom we had recruited to be those user champions. They walked the walk and talked the talk and they were all ours. The reason we chose the traders we did was that they had a fundamental interest in software, so much so that they were willing to leave their trading jobs to pursue a career in software. They were not necessarily the best traders, but they knew the business of trading inside-out and in time, with lots of practice, they became very adept at translating that business into software product requirements that our development team could work with. We called some of our ex-traders “Product Managers”, and they worked full-time on requirements specification and design testing. Others had different jobs in our company, mainly sales and customer support. All these activities kept them intensely involved with our product and the needs of our customers and thus allowed them to be effective participants in the product planning, design, and testing activities of our company.
Good professional services firms can have similar advantages. One: the development team may have had the opportunity to work on solutions for a particular business segment and thus built up expertise in that business. Two: good services firms become adept (since it is their main business) at drawing requirements from users efficiently.
So, in this respect, vendors generally have a better situation in which to attain the user involvement of XP successfully than enterprises. Because developing software is their main business, not a distraction from it, and because development costs are spread over fees paid by many customers, vendors are in a position to make the heavy investment in proper requirements gathering, design, user feedback, and QA that large complex software requires.