User-centered design (UCD) addresses specific methods around understanding the needs of the user e.g. how they do their current job, the problems they have with their workflow etc. Agile in general does not address these areas. Here is a list of some of these…
Separation of Design from Engineering
What is the scope of the system?
- Agile is about the clear separation of responsibility in the development process
- The developers create code and design the implementations of the system
- This is it’s strength
- The weakness is “what should be done?” i.e. what problem is being solved, what tasks will be affected, what is the scope of the system? The impact on the overall business. Since the answers to these questions are from the requirements gathering phase they are not addressed by Agile
- UCD addresses this by Contextual Inquiry, work modeling, consolidation and affinity building, and visioning to support these activities
What is the structure and basic function of the system?
- Agile does not have specific methods to address user experience architecture and user interaction
- However designers have to made decisions in regards to the structure of user tasks, usable interfaces to support parts of a task and the appropriate functions
- The agile method is to send the latest version of a workable product to the customer and get their feedback. This is an iterative approach.
- UCD uses story boards and user environment design
What is the user interface?
- UI design is a pre-requisite for Agile development but not part of it per say
- In UCD UI design and paper mockups are done separately. This means that there is a need to test the UI separately
The User is the expert
- Agile puts the user as part of the team and the final authority in regards to the product. The challenge to this approaci is
- Users can’t articulate their work and tend to give their impression of what they do rather that this is what I do
- A representative user can never be representative of all users and their practices in it’s entirety. If more than one person is involved in the organization and the development team they change their thinking to that of the teams
- Customers are not designer therefore they might know their pain points but not whether something is technically feasible
- UCD addresses this by the concept of apprenticeship and observing the customer
Keep Up-Front Planning to a Minimum
- Agile methods are about getting going as soon as possible as business needs change and through iterative design and customer feedback it’s possible to move with the ebs and flows of the customers changes.
- UCD is the exact opposite where work practices change little over time and a solid understanding of the user leads to speed as these models are useful longer and in the long run cost less.
- UCD is about doing a lot of planning and up-front work before getting started vs Agile which is about let’s get started yesterday
Work in Quick Iterations
- This is the mantra of Agile development however there is a fair bit of waste based on user feedback
- UCD is about testing and iterating the spec. before coding starts.
- The UI is tested and iterated before code
- Test and iterate in code only when needed