On the Extreme Programming (XP) mailing list
(extremeprogramming@yahoogroups.com) there is a discussion going on about
using UCD within an XP project. If you want to look at the archives, go to
http://groups.yahoo.com/group/extremeprogramming.
I started the discussion, because I have a project coming up that I want to
run using XP, having done several successful XP projects prior to this one.
This project will require some UI design, and naturally I want to use UCD
for this.
Now, Kent Beck (one of the three "extremos") had the most interesting
response. He said that UCD did address the issue of "refactoring"; i.e. for
each iteration, you want to be able to add new features and adopt your
design accordingly, keeping the design simple while expanding it to
encompass the new functionality. Below I provide more details about the
ussues.
Let's say my XP team is working on its first iteration with 5 "stories" (XP
jargon for a lightweight use case) in it.
I could take those five stories, create task cases from them, and then
create a UI design that satisfied these task cases. That is straightforward
enough.
In the next iteration, the team gets 5 more stories, and creates more task
cases. Now things get interesting, because I need to develop a UI that
satisifies the task cases from both iterations. It is possible that this UI
ends up quite different than the first one. This second UI might be usable
and
appropriate, but will a customer really want a UI that changes every
iteration?
Now, the UI probably won't change *that* much, and as development progresses
it is likely to change less and less. But this does not mean that this is
not a problem. So problem #1 is that XP deals great with having the internal
design change as appropriate for each iteration; this same rate of change
may not work for an "external" design, like a UI.
Here is the second problem: if my team has 30 task cases and a suitable UI,
and then adds 10 more task cases, can I somehow "refactor" the existing UI?
Or do I need to start from scratch with the 40 task cases?
Anyone have any thoughts on these matters?
..tony..