What is Agile Development?
Agile development is an iterative software-development methodology which teams use in projects. Self-organized, cross-functional teams frequently analyze circumstances and user needs to adapt projects. Scrum teams constantly improve quality in sprints with short-term deliverables. They show Agile development in action.
“If your goal is to deliver a product that meets a known and unchanging specification, then try a repeatable process. However, if your goal is to deliver a valuable product to a customer within some targeted boundaries, when change and deadlines are significant factors, then reliable Agile processes work better.”
— Jim Highsmith, Software engineer, in his book “Agile Project Management: Creating Innovative Products”
Agile Development—An Antidote to Inflexibility
By the mid-1990s, many software professionals had become frustrated with development processes that micro-managed them and overlooked their needs. Iterative development methods already existed, but these developers needed something more dynamic to help them work. Software was becoming increasingly sophisticated. They wanted more freedom to shape their projects. So, they began to streamline an approach where they could stay flexible and respond to design challenges as these emerged. Appropriately, they called it “Agile”. This was their answer to Waterfall project management—the traditional, linear model where teams follow a rigid path of development throughout the product lifecycle. Around 2000, the software market was transforming from store-bought boxes to downloads. The rules of engagement were likewise changing. In 2001, 17 professionals from backgrounds including adaptive software development and extreme programming met in Utah to determine an alternative approach. This group—the Agile Alliance—wrote the Manifesto for Agile Development. Of its twelve principles, four are at the heart of Agile development. They value:
- Individuals and interactions over processes and tools;
- Working software over comprehensive documentation;
- Customer collaboration over contract negotiation; and
- Responding to change over following a plan.
Agile development’s authors stated transparency and iteration are essential. Clients should remain closely involved throughout projects which are “alive” with team cooperation. Although the Waterfall approach has positive aspects, teams find themselves restricted because each development stage and its effects flow directly into the next. It’s hard for everyone to keep a clear, day-to-day view of the big picture. Moreover, team members tend to stay siloed and blindly pass deliverables on to other teams (a habit called “throwing over the wall”). By contrast, Agile teams work iteratively and collaboratively to produce the right deliverables. They do so under time-boxed conditions to present these on tight schedules. Teams stay highly focused on delivering short-term, smaller goals (“chunks”) in design sprints that run anywhere from 1–4 weeks. In daily scrum meetings, internal stakeholders account for the previous day’s actions, stay updated about needs and refine plans. When a sprint ends, teams log their progress and review the development process.
Agile Development and User Experience (UX) Design—Take Care with Two Cultures
Development and UX personnel are different in many ways, especially how they picture users’ needs. For an organization to apply Agile development successfully, management must create the right environment so that UX, development and other stakeholders can collaborate openly and have constant dialogue throughout a project. Another vital consideration is how organizations define UX roles—particularly important regarding how much responsibility and influence they expect/allow any UX team members to have in projects. The Nielsen Norman Group has defined four key principles for organizations to get the most from an Agile-UX cultural combination:
- Management must understand and support UX work.
- UX professionals should show leadership and take time to reach out to colleagues.
- Agile workflows must be flexible enough to accommodate the needs of UX personnel.
- UX personnel should be part of the product teams, building respect and rapport with developers.
To support UX work, management must provide sufficient resources for UX research. A business analyst or a solution architect who works closely with UX personnel can help translate ideas to developers. Above all, design should lead development in addressing the right issues in sprints. When UX professionals help teams work with the client’s and users’ requirements in mind, everyone can produce the right deliverables.
Learn More about Agile Development
You can learn more about integrating Agile with UX here: https://www.interaction-design.org/courses/ux-management-strategy-and-tactics
This is a revealing piece about UX and Agile practices: https://uxdesign.cc/how-do-ux-practices-fit-with-agile-development-practices-3f891028753a
See some powerful considerations for Agile development concerning UX: https://www.uxmatters.com/mt/archives/2015/12/how-to-combine-user-centered-design-and-agile-development.php
Here’s an incisive account about the UX-Agile dynamic, showcasing tool use: https://www.uxmatters.com/topics/process/agile-ux/
Read the Nielsen-Norman Group’s advice on handling Agile with UX: https://www.nngroup.com/articles/agile-not-easy-ux/