What we do is we have a "service level" which is the level which exposes the user stories. There is no access to the system through any other level save for the service level.
The UI, all of them, are built with respect to this service layer. Now, building Ui's is an art form. You need specialists that will talk to the customers, hear their vision of the entire product (as they understand it at that point in time), look at the state of the art in equivalent products, look at industry de-facto and de-jure standards and come up with their "UI concept". This concept will include everything from layout to interaction techniques to color schemes to the different action paradigm (wizard vs classic vs...). You wan this done up front, because it takes a lot of time to get it right. At the same time you are working on user stories and building everything below the service layer. You should also build a simulation / mock of the service layer so the UI people can use it to ascertain that they call into the service layer correctly. This simultaion can evolve over time and can be tested continuously by configuring both your FIT tests (which is one type of UI, assuming you use FIT), and your temporary GUI (the one you're actually using to show progress) to use the simulations. Note that the UI should be written TDD as well, we have invested a lot of time into tapping into the UI and being able to automatically test the UI. If you can't seem to be able to test the UI layer itself, surely you can test the UI logic. This means that from the perspective of the UI, your second paragraph is correct. The UI is thin and dumb. It updates as a result of events coming from the UI logic, it communicates with objects in that layer too. This means it's not a different type of Agile. It's the same agile, with the understanding that there are two different but related domains here - the application domain which does not depend on the choice of UI - be it desktop or web - and the UI domain. These two need to be considered seperately... Amir Kolsky XP& Software >-----Original Message----- >From: Ken Boucher [mailto:[EMAIL PROTECTED] >Sent: Sunday, October 24, 2004 3:38 PM >To: [EMAIL PROTECTED] >Subject: [XP] Should someone else be writing the GUI. > > > >Warning: I spent a good chunk of last night sitting in a hot >tub reading Joel on Software. This is probably a direct result. > >Ok. We have this GUI layer. It doesn't do anything, because >all that stuff is down in the model. At this point, this is so >essential as to almost be XP dogma by now. The GUI is hard to >Unit Test. It's hard to Acceptance Test. We want it thin, so >thin as to not matter. > >Unfortunately, I kinda lied in the last paragraph. I said it >doesn't do anything. That's not really true. If it's a desktop >app, it's highlighting, cutting, pasting, moving stuff, and >either it's complicated enough to drive your end user crazy or >you've hired some really bright UI guys and could we please >have their names and home phone numbers so we can hire them >away from you. If it's a web app, it's trying to handle cross >platform compatibility with HTML, CSS, and Javascript, and you >still need the really bright UI guys. > >Now I firmly believe that agile is the right way to do GUIs. >But I also belive one thing: It's A Different Kind Of Agile* > >Now I can do some web GUI stuff. I used to do some web design >work. I was never good, but I used to do some. And this is >where things stand out. Because I know I was never good, it >becomes obvious to me that our product, like many products, >looks more like Geocities than it does Microsoft excel. This >isn't to say it looks bad. It looks like Yahoo, and Yahoo is >functional but definately not elegant. In fact what the ads >sometimes do to the post display on Yahoo is downright fugly. > >So I'm thinking about what a agile team that focused on GUI >screens would look like. I think it would hire very different >people first of all. And that makes me think that someone else >should be definately be doing the GUI. And I think they would >be testing different. >Wouldn't it be interesting if they mocked up the entire model >and built some form of test suite that really beat against all >the things we forget GUIs do? > >Different people with a different problem and different >practices focused on the reality of their situation. What >would it look like? > >It's something to think about anyway. > > > > > >*If anyone has a better way of emphasizing that on this forum, >please e-mail me. I think it looks ugly but I can't use all Caps. :( > > > > > >To Post a message, send it to: [EMAIL PROTECTED] > >To Unsubscribe, send a blank message to: >[EMAIL PROTECTED] > >ad-free courtesy of objectmentor.com >Yahoo! Groups Links > > > > > > > > To Post a message, send it to: [EMAIL PROTECTED] To Unsubscribe, send a blank message to: [EMAIL PROTECTED] ad-free courtesy of objectmentor.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/extremeprogramming/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
