I'm working with my development team to come up with an AgileDevelopmentMethodology? that works for our group. Right now, I'm brainstorming with our UserInterface expert on how to integrate a coherent UI design into the process. Another aspect of our particular set of needs (which I suspect is very common) is that the user writing the story represents business needs, but might not dovetail exactly with the wants and needs of the actual users (the users are third party clients). For this reason, we're looking at some up front UI design and some research with the actual users to determine how well the stories fit with what they do.
We've pretty much got everything fully baked, and we've got some diagrams to explain the overall process. We're just getting everything down on paper now, and are close to giving our process a trial run with some upcoming projects. From my past experience, it looks to solve a lot of problems on paper. We will see if it works out in reality. In general, our process borrows very heavily from ExtremeProgramming, ignoring many of the aspects of XP that don't relate to the overall process of story gathering, planning, coding, and iterating (not to disparage those aspects of XP, that just isn't our focus right now). What we've added is some up front UI planning and usability testing using mockup UIs which are designed using the initial run of UserStories. These mockup UIs are quickly iterated on until we have a basic UI roadmap and stories. Then it falls into the typical XP model of picking stories for an iteration, implementing them, AcceptanceTests, and addition of stories based on UserFeedback?. UI mockups are modified as needed based on the added stories.
The upfront UI work is planned to be iteration length (around 2-3 weeks). The reasoning behind the upfront work is that while stories and iterations are great for capturing user intent and changing requirements, they lack any sort of coherent approach to UI and usability. Besides making our UI designer grumpy, this results in a piecemeal UI which isn't as user friendly or asthetically pleasing as it could be.
I'll be updating this page as we begin actually using this methodology.
-- CaseyCady
I was just thinking; maybe it would work to have the usability/UI team working independently from development. They would do their own mock-ups and usability testing, and based on this work, they would provide UserStories/ProductBacklog items for the customer/ProductOwner to consider. If the items are considered high priority, they would be worked on early by the development team. If not, they would be postponed until needed. Depending on the emphasis of the project, you would end up with a highly polished UI if that's important, or a GoodEnough UI if the UI is more secondary to functionality.