Javaв„ў EE 5 Tutorial, The (3rd Edition)

Extreme Programming teams deliver running, tested software to their customer frequently. How frequently? Every iteration, [4] which means every week or two weeks, depending on the chosen iteration size . Obviously we cannot implement the customer s vision in a week. What we can do is pull out the essential ideas that make up business value in the customer s mind and focus on implementing the most valuable and important features, or the features where the customer will learn the most about what he really wants.

We begin by summarizing for our customer what we have learned so far.

Our basic recommendation to our customer is that we can make the editing job a lot easier by using a simple notepad approach, and that we can address the vision of the more beautiful WYSIWYG format later on. We re willing to go ahead with the graphical part first, but if we do we ll have to break it down into smaller one-week chunks . We think the simple editor approach is a good way to start, because the XML editing approach we are replacing is a neat little product named TextPad ( http://www.textpad.com/ ) that we use to enter our XML. I m typing into TextPad right now. We have a few TextPad macros defined such that getting to the next paragraph or heading isn t too hard. But TextPad doesn t understand what we re really up to.

We propose a starting version of the customer s vision that works like a smarter TextPad, one that understands a little more about what s going on and is more helpful with the editing. We talk about it and come up with the following stories:

At this point, we re not estimating these stories in much more detail beyond OK or too hard. We think each of these can be done in about a day of work. Certainly none of the above are too hard, unlike some of the ones in the initial vision. These stories are more than enough, we think, for our first iteration and first release. We agree with our customer to work on these.

Our customer is now imagining a product like TextPad. It s a Notepad-like product, but when the user types into it, the editor automatically updates the XML in ways that are more convenient, and more intelligent , than NotePad can do. We all know that the desire to view what the page will look like will come back. We also know, however, that the customer has a perfectly good, but not entirely convenient , way to do that now. We agree that the best first task is to get some editing working so that the customer can see that we re making progress.

Lesson  

Now in a real XP project, with a live customer, full-time programmers, and so on, we would put together two plans at this point. The Release Plan would consist of looking at all the stories in the whole product, estimating each one, and laying them out on a table to see how long the whole project might take. We wouldn t be very accurate in the first couple of days, of course, but we d be able to get a good sense of the project right away. And over time we would review and revise that Release Plan by using the results of our work so far to improve estimates.

In addition, we d do an Iteration Plan at the beginning of each two-week iteration. That plan would include a bit more detail on each story, our envisioned tasks , who was planning to work on each one, and so on. Not a big deal, but some notes on the whiteboard to make sure the whole team has the same understanding.

The focus of this book, however, is on how the programmers develop useful software while learning. So we ll remark on things like the Iteration Plan, but our focus will be on figuring out what stories we can do, estimating them closely enough to be sure they re small enough, and then building the software in a way that shows value to the customer and keeps the design good and improving.

[4] XP developers develop software in iterations, fixed time boxes that are typically one or two weeks long. In every iteration, the team produces running, tested software that can be understood as offering business value to the customer. Not just infrastructure; real, running, somewhat useful software.

Категории