Agile Usability: An Introduction
To address the challenges faced by software developers a manifesto defining four values and twelve principles was arrived at to encourage better ways to develop software. Defining the requirements for an agile software process, Agile processes reflecting these requirements include:
-
Agile Data (AD)
-
Agile Microsoft Solutions Framework (MSF)
-
Agile Modeling (AM)
-
Agile Unified Process (AUP)
-
Dynamic System Development Method (DSDM)
-
Extreme Programming (XP)
-
Feature Driven Development (FDD)
-
Scrum
-
Usage-Centered Design (UCD) The majority of agile projects teams made up of less than ten people, co-locate, have direct access to stakeholders and tools, such as, whiteboards and corkboards, development machines, development tools, including testing tools. They take a test-driven development (TDD) approach, writing a unit test before they write enough production code to fulfill the unit test, and rarely have access to usability labs.
Agile projects are comprised of four phases, as under:
-
Iteration 0: The first week of agile projects referred to as ‘Iteration 0’ is project initiation involves gathering of initial support and project funding; working actively with stakeholders, understanding the scope of the system, building the team, putting together the initial system architecture; and setting up the environment.
-
Development phase sees agilists deliver high-quality working software that meets the changing needs of stakeholders.
-
Release phase is all about agile practitioners transitioning the system into production.
-
Production. During this phase, the fundamental goal is to keep the system useful and productive, keeping it running, while helping users use it.
Agile projects are very different from traditional projects where a business analyst creates a requirement model, then hands it to an architect to create a design model, which then is handed to a coder to write a programme and then tested by a tester. Projects using Agile methodology have developers working closely with their stakeholders, getting a better understanding of their needs, pairing together to implement and test their solution, and then showing it to the stakeholder for quick feedback. From a user experience point of view, the agilists approach to modeling and testing is very different to that of traditionalists.
Usability, a quality attribute of an Agile system encompasses learnability, efficiency, memorability, error recovery, and end-user satisfaction, and is a highly structured, product development process, with the focus on understanding product user’s needs and goals.
We’ll take up where we leave off tomorrow!
Tags: agile methodology, agile usability