Session: "Interaction Designers and Agile Development: A Partnership"
Presenter: Lynn Miller, Manager of User Experience Team, Alias (acquired by AutoDesk)
Wikipedia: Agile software development customers: "Customers are the people who define the product. They may be product managers, business analysts, or actual customers."
Barriers to effective customer interaction: • Clueless customer • Where/who is the customer? • Multiple customers with disparate opinions • “Techno-babble” from developers • Developers don’t know how to act with customer
• Simple misunderstandings (like terminology)
From Agile 2005 Conference Workshop: “Stop Interacting With The Customer Until You Know The Safety Rules”
Agile customer conundrum:
• The role is necessary for success.
• They don't have a person who can do it.
• Splitting the role up causes further problems.
Interaction designers should fill the customer role:
• They already know how to act as end-user representatives.
• They have the skills and knowledge to prioritize.
• They have the tools to verify workflows.
• Bonus: They can also design the interactive interface.
Duties of the Agile customer
1. Understands and accepts Agile development concepts
This means: • Understanding the Agile philosophy Cycles • Modifying your work to be more Agile Iterations • Knowing the terminology Releases Scrum
Benefits: FP's • Understanding your contribution User story • Improving your own processes Acceptance • Able to speak to the rest of the team criteria
Tips for success: • Get trained on Agile practices • Understand your team's specific Agile methods • Align your working process with the Agile cycles
2. On-site, full-time member of the team
This means: • Dedicated to the project • Co-located • Daily face-to-face contact
Benefits: • Maximum understanding • Minimal documentation • Prevents implementation drift
Tips for success: • Understand the significant time investment • Maximize face-to-face contact • Work with the team: collaboration not declaration
3. Be the end-user voice on the team
This means: • Working directly with end-users • Understanding their needs and how they work • Bringing this understanding back to the team • Representing the end-user
Benefits: • Deep understanding of the end-user • Single end-user voice for the rest of the team
Tips for success: • Make the end user relevant to the team • Show the team what you are doing • Keep up to date on the software and know how to use it
4. Prioritize and plan cycles and releases
This means: • Not doing product manager's job • Being active in the planning process • Bringing the end-user's voice to the table • Working with product and development managers
Benefits: • Achievable plan that serves business and end-user needs • Make sure each release demonstrates a workflow • Can spread out tricky design work across cycles • Prevents unnecessary design work
Tips for success: • Flexible feature list: don't fill schedule with critical features • Create user stories and break things up into small chunks • Prioritize based on user tasks not individual features
5. Adjust the plan, as required
This means: • If you are Agile, the plan will change • Embrace this -prepare for this -take advantage of this • Changes are based on end-user feedback
Benefits: • Fast response to changing needs • Important missed aspects are addressed • End-user feedback is actually listened to
Tips for success: • Changes must be agreed on by all stakeholders • Something added means something must be removed • Make adjustments quickly
6. Verify (accept) user stories
This means: • Responsibility for usability acceptance criteria • Verify that designs are complete and correct • Do this for each cycle
Benefits: • Control the meaning of the word 'done' • Usability testing with real end-users • Validation before the product ships
Tips for success: • Make sure you are responsible for usability acceptance • Upfront agreement of an addition vs. a bug • Verify while the code is still warm • Feed results back into Agile planning process