Better Software - November 2008 - (Page 24) • When software is commissioned, people might know the broad problem to be solved but do not understand the intricate detail of how software can help. • Software takes a long time to implement, and the context of the problem domain can change while the software is being built. Agile recognizes these issues and provides some guidelines to help mitigate the risk they cause. When working to the agile principles, we focus on delivering software to the customers as early and as frequently as possible, allowing them to give feedback, validate, and adjust their perception of what it is they actually need from the software. Commonalities Between UCD and Agile A striking but sometimes overlooked similarity between agile and UCD is that both are often fundamentally misunderstood by people starting out on the path of adoption. This misunderstanding stems from the fact that both are frequently assumed to be methodologies— magical, step-by-step recipes that you can follow to guarantee project success. In fact, agile and UCD are both philosophies. There are many different methodologies that implement the agile philosophy: Extreme Programming, Scrum, the Crystal family, etc. There are also several different interpretations of UCD. User-experience aficionados can learn from the way products and experiences are created by the likes of Adaptive Path, Cooper, Apple, Shedroff, Morville, Spool, Nielsen, and Norman (see the StickyNotes). While the specific methods are very different, the underlying philosophies are undeniably similar. Both the agile and the UCD philosophies are iterative; they progress in small steps providing opportunities for verification and refinement along the way. losophy, while UCD is, in many organizations, championed by creatives. There will always be a healthy, natural tension between these left-brained and rightbrained individuals. If we examine the principles behind the agile and UCD philosophies, then we are much more likely to find tangible issues that can be addressed to facilitate agile developers and UCD practitioners working together to create quality software and robust user experiences, rather than falling back on the age-old argument that developers are from Mars; designers are from Venus. To better understand the disconnect, let’s compare some of the principles of the Agile Manifesto that cause conflict with the UCD philosophy. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.—Agile Manifesto The Agile Manifesto focuses directly on providing value for the customer, whereas UCD champions the end-user— the idea being to create software that users “cannot live without.” By delivering such intuitive software we cannot fail to deliver knock-on value to our stakeholders. The equivalent primary principle for UCD might read: Our highest priority is to help create an experience for end-users where they can achieve their goals easily and efficiently with minimal disruption to their mental model of the problem space. Working software is the primary measure of progress. —Agile Manifesto The concern here is the definition of working. The aim of this principle when it was defined was to get software development teams out of the mindset that creating a lot of design documentation before writing any code was helping to meet the project deadline. The goal of a software development project is to produce functioning software, not UML diagrams. From a UCD perspective, software that simply works is a secondary measure of progress. Much more important is whether the software helps the users achieve their goals. The equivalent UCD principle might read: www.StickyMinds.com The satisfaction of end-user needs (user goals) balanced with the achievement of business goals is the primary measure of success. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. —Agile Manifesto Agile development calls for early delivery of the software to the customer. This is not synonymous with releasing to end-users. The customer’s public release strategy can be entirely separate from this process. Early delivery to customers allows beta tests or usability trials to be performed and the customer to realign his priorities based on the findings. If we release too early to the market, the end-user experience could be poor. In some situations, this could be seriously detrimental to the impact of the product on the market and ultimately the bottom line. For example, in 2005, the early release of handsets that were touted as “feature complete” and “bug free” cost the mobile phone industry $4.5 billion: “One in seven mobile phones are returned within the first year of purchase 63% of the devices being returned are done so without fault.” “Most of these issues may be addressed through stringent device testing and usability modeling prior to the launch of the mobile device.” [2] Common Issues When Integrating UCD and Agile Design without constraints When the design of a system is created with users and customers but without regular feedback from a development team, there is significant risk of a design being proposed and approved when no one has any idea of how long it will take or how much it will cost to implement. When the estimate does come in, and it’s far above the amount expected, it is understandable that the customer will feel let down by the development team. To compound the problem, the design team will often be frustrated that the only way to deliver the software within the real budget will be to “water down” its design. As stated in the Agile Manifesto: Business people and developers The Conflict Between UCD and Agile There is a history of conflict between agile developers and user-experience designers. Agile software development is predominantly a developer-led phi24 BETTER SOFTWARE NOVEMBER 2008 http://www.StickyMinds.com
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.