Archive for the ‘agile’ Category

Working in Agile

So now that you have a definition of agile and some of the underlying principles, how do you actually do the work?

First, it is important to understand that you are not trying to squeeze UX into an agile process, but rather attempting to make the UX process more agile. This will mean being flexible, innovative, and nimble with established UX techniques.

The role of UX

UX practitioners are most successful in the customer role on an agile team. Remember, that customers mean something different in agile, a customer is not someone who is external to the product team who purchases or uses the product. A customer is a role filled by one or more members of the product team, whose duties include acting as the voice of the end-use for the development team, and helping to prioritize and plan.

The customer defines the software, and determines what stakeholders find valuable. The recommended ratio is 2 customers per 3 developers, this means that there are 2 designers for every developer. Designers can be of any combination: UX, Usability, IA, Visual, IxD – whatever is needed to accomplish the project. The customers most important job is release planning which includes:

  • Evangelizing the product vision
  • Identifyng features and stories
  • Grouping features into small, frequent releases
  • Managing risk
  • Creating an achievable plan

In order to be able to achieve the above, I would recommend starting with:

  • Small, clear, and achievable goals
  • Letting go of control, and allowing your team help with some of the activities
  • Get “good enough” information, and continue to learn throughout the entire project, rather than trying to figure out everything up font
  • Be honest with yourself and work towards continual improvement

The Process

The process that has worked best for me was first described by Desiree Sy

The structure basically asks you to:

  • Gain initial insights through a short up-front discovery stage
  • Get just far enough ahead of development that you are not a bottleneck
  • Continually talk to users every iteration to get feedback and more in-depth insights
  • Start rough and refine as you go along. utilizing lightweight techniques like sketching
  • Establish a clear vision that you are working towards and iterate on the vision as you learn more information

It is important to understand that none of these activities are happening in a bubble, you as the designer are not going off to complete the work and then presenting a finalized design. Rather, you are sketching, concepting, and getting feedback from your entire team along the way. The feedback can be informal or a design critique.

Also, working in this rhythm or cadence will feel uncomfortable at first, and you might have the urge to resist, but stick with it and allow this rhythm to become the “new normal”.

Here are some common objections/questions that I often hear from designers and quick answers:

1) How many projects should a UX designer be on if the company adheres to an agile process?
Answer: ONE. Agile is specifically designed around the team dynamics, and its difficult or impossible to create the proper rapport if you are not sitting and working with the team.

2) Agile methods do not provide enough time for UX practitioners to conduct necessary research and discovery.
Answer: Agile methods do not provide enough time upfront to conduct research, the methodology assumes that you are doing the research and discovery on a continual basis, in every iteration. This not only helps keep the information fresh in your mind, but also allows you to dig deep into questions that arise once you start really trying to solve the problem (later in the project), rather than identifying the problem (as in the beginning of the project)

3) If I break up my design into pieces that can be fit into an iteration, it is difficult for me to picture the holistic system
Answer: Sketch your initial understanding of the holistic system using a storyboard, then begin to dive deep into the parts of the system that are prioritized for the upcoming sprint. Your understanding of the system will change over time, so utilize a low-fidelity medium to capture your current understanding and then update as it – and your understanding – changes.

4) Some designs are too complex to fit within one iteration
Answer: Break large designs into small, cycle-size pieces called design chunks that incrementally add elements to the overall design over several iterations. Whenever you design, you have to start somewhere, start in one iteration and incrementally add complexity / layers in subsequent iterations.

5) There is not enough time to conduct formative usability testing and then create a usability report.
Answer: Employ light-weight usability techniques, and progressively engage in defining test protocols and recruitment.

6) Working software over comprehensive documentation means no more wireframes or mockups
Answer: Use the tools that will help you and your team produce good work. There is no set “way” to do thing, figure out how best to communicate with your team, and which tools help you produce great work in an efficient way, then just do it!

Tags: ,

Agile principles and practices

In the first part of this agile series, I explained that there is no such thing as the agile method, but rather a set of principles or values. Specific methods do exist, and they support the agile philosophy. Two of the most popular methods include Scrum and XP. Having only worked in Scrum, I will describe how the practices in Scrum directly support and uphold the principles.

Co-Location: The entire project team sits together in one physical location, rather than being separated into departments.
Supporting Principle: Individuals and interactions over processes and tools
The agile philosophy centers on cohesive, trusting team. That kind of trust can only be build overtime through constant exposure to fellow team members, the demystifying of jobs and daily activities, and just hanging out together. There is also a great deal more cross-pollination of ideas, which leads to a blurring of roles and true teamwork.

Story Creation: Defining the requirements together
Supporting Principle: Working software over comprehensive documentation
The entire team will write stories, which are short requirements statements, versus tomes of requirements documents. They force the entire team to articulate the audience, purpose, and value of each feature.

Customer Demos: Present functioning software at the end of each sprint
Supporting Principle:Customer collaboration over contract negotiation
In Scrum, a “customer” is not a customer is not someone who is external to the product team who purchases or uses the product. A customer is a role filled by one or more members of the product team, whose duties include acting as the voice of the end-use for the development team, and helping to prioritize and plan. UX folks fit perfectly into the customer role!

Stand-Up Meetings: Daily meetings where each team member lets everyone know 1) what they did yesterday; 2) what they are going to do today; 3) anything standing in their way
Supporting Principle: Responding to change over following a plan
This allows the team to gauge progress as well as address any obstacles preventing the team from moving forward.

Retrospectives: A team meeting at the end of every iteration where each team member lets everyone know 1) what went well; 2) what didn’t go well; 3) areas for improvement
Supporting Principle: Responding to change over following a plan & Continuous improvement
Although not stated as an explicit principle, continuous improvement is one of the core values of agile. A team does not need to follow a process dogmatically, but rather learn from each experience, improvise, and improve.

The above represent just a hand-full of the practices that go into a Scrum process. For a much more complete explanation, I would sincerely suggest getting Mike Cohn’s Succeeding with Agile.

Also, check out my full presentation on Slideshare:

Tags: ,

Defining Agile

Agile has recently become a hot topic, both organizationally and in the design world. Several articles have attempted to describe agile, and how to fit design or UCD into an agile development:

Bringing User Centered Design to the Agile Environment by Anthony Colfelt, published on Boxes and Arrows
How UCD and Agile Can Live Together by David Farkas, published in Johnny Holland

Although they provide a really good high-level overviews, they still seem to miss the mentioning the fundamental essence of agile – agile is philosophy or a mindset, not a set of methods or practices.

There is a lot of confusion between agile, scrum, and xp. Many times people refer to agile as the agile method. There is no such thing! Agile is a set of principles, and scrum or xp are defined practices that uphold agile principles.

So what are the agile principles?

In 2001, a group of developers came up with the agile manifesto, which outlines the four values of agile:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

In practice, these translate into the following

  1. Great products come from great teams
  2. Go to high function fidelity quickly, provide just enough documentation to produce great work
  3. Involve the end-users, decision makers, and stakeholders throughout the entire process
  4. Be ready for change, be it from the client, the market, or anywhere

As designers, constant communication, negotiation and feedback has always been part of our values and processes, but developers have been notoriously bad at such skills, which is why so many of the values center around communication. The most important value, and the core of agile, for both developers and designers is #4. Expect change, be ready for change, change is okay. Designers, like developers, do not deal well with change. Heck, human beings in general don’t do well with change, especially the last minute kind. However, if you go into a project with the mindset expecting change to occur, you will be much more prepared to be agile or nimble and handle it accordingly. In my opinion, that is the most valuable contribution of agile to both design and development.

Tune in to Part 2, Scrum in Plain English, coming soon!

Tags: , ,

Alla Zollers

I design products and services that just. make. sense.

When products make sense, customers are happy.

If customer are happy, they sign-up, stay on site, engage, share, and buy your product or service.

Happy customers allow companies to profit in both senses of the word.

I provide the following services:

• Heuristic Evaluations
• Discovery Research
• Strategy and Vision Development
• Information Architecture
• User Experience Design
• Usability Testing

You can find me on:

Twitter Updates

Error: Please make sure the Twitter account is public.