Formerly ExtremeProgrammingChallenge five. ---- A brand new domain. You and your team of crack XP troops have been hired by a wild-eyed web startup with a great big stash of venture capital and a business plan straight out of the wizard of oz. On the strength of an old Doom WAD and some very fast talking they've promised the investors an XML/VRML gaming network that'll scale up to a million players. Your steel-eyed XP jocks are fired up and raring to go, and you have a blank check on equipment and resources. But no one knows just how to deliver - it's never been done before and all you have to go on is ... well, a Doom WAD. In short, you've got no domain experts to talk to and you need to pull out the stops. Its quite possible that the business plan, as it stands, can't be delivered with current technology. But the money's there and something can be delivered with it - maybe even something that'll return on the investment. What's XP to do? ---- If the investors do not mind throwing their money away, it is a research sandbox. You could find potential users, do XP and enjoy it. If the investors really want their ROI, the expectations must be negotiated down. Otherwise, it is a DeathMarch. Just because the expectations are not explicit doesn't mean that they are not there. It just means that there is a 99.9% percent chance they will not be met. There are no criteria for success. -- MichaelFeathers ---- Herr Merel did not ask if it made sense, he asked what we would do. The answer, if we are not total pikers, had better be "what we always do, XXX" Point 1: : Sometimes dying well is the best you can hope for. I haven't seen an extreme project fail yet, but when it happens, I hope it will happen simply and honestly. I thought of this issue independently a couple of days ago in conjunction with looking for new projects to coach, some of which are damn near hopeless, so I don't have any practices to recommend, I just want to point out the issue as it may very well pertain to the scenario above. Point 2: : Start with the numbers. Write up a BusinessJustification. There are three columns: cost, revenue, and probability of the project getting that far. Project these out five years. Better yet, have all the money people do this little exercise separately and compare the results. Then compute the expected NetPresentValue (even I can do it in 5 minutes with Excel). Point 3: : If the project doesn't make sense to you at this point (like nobody agrees what the numbers should be, or the expected NetPresentValue is wildly in the red), quit. This is my personal philosophy, not XP dogma, but I have never had fun working on doomed projects. Point 4: : Exploration phase. Now you have to 1) get the stories and 2) find out what is possible. Build one week worth of a game for 2 users. Build one week worth of a simulator for one million users. Find the person who can make the business tradeoffs and get them to write the stories, as best they know them. Point 5: : If you've gotten this far, it is just a regular XP project. Make the commitment schedules as short as possible, since things are likely to change radically. Consider a WorkQueue instead, since it seems to accept more change. Then plan an iteration, write the tests, refactor, code, and on and on... ''With one caveat: if the project is well-funded and going to be done on Kauai, accept it in any case. Otherwise, exactly right: understand value, get stories, experiment, schedule, execute. -- RonJeffries'' ----- So far I like the sound of point 2. It gets at the real problem here - the business plan and the lack of current users from whom to elicit stories. Sort of ExtremeBusinessPlanning. For Michael: I don't think this scenario is too unrealistic - since I've moved to california I've seen startups that began with even less realistic bases than a Doom WAD, and still seem to turn bucks. So I don't like the sound of just giving up. The challenge here is to Extremely satisfy a mass market that doesn't exist yet, but should exist once you create the product. This can be done and has been done - question is whether XP can help it be done. So, in point 4, let's say the person who can make business decisions is very far from the target market - he's no online game geek but he knows they exist in large numbers. -- PeterMerel ''Lots of startups raise capital and spend it beautifully. Few make money. To make money, they all need to understand value and scope, reduce risk, move quickly to delivery. The answer above 1-5, is the XP way of doing those things. If you don't have people who can do those things, you need to get them (or you'll be them, at your peril). -- RonJeffries'' ---- I would take this assignment because I have experience in this sort of problem and the customer has the money. The project would continue until I have the money and the customer has the experience. -- ChetHendrickson ---- Someone has to say, "If you had this and this and this, you'd have a killer game." I think this is what Peter is talking about when he says "vision". Someone has to decide, "Of A and B and C and D, the system doesn't make sense without A and C, and B should be done before D." Find a 16-year-old twitch-meister. Get him (sorry, the ''idiots savant'' I'm talking about are almost always boys) into the big picture. Then listen to what he says about the two questions above and act on the answers without much reflection (the more surprising the answer, the more likely it is to be valuable). Feed back estimates of the stories so he can make tradeoffs. -- KentBeck I thought this scenario was a little crazy. Then I opened up Wired last month and read about Ultima Online. Sounds like they should have done their project extreme. The article is online at http://www.wired.com/wired/6.05/ultima.html with a sidebar at http://www.wired.com/wired/6.05/bunnies.html