Are Agile Methods Good For Design?

Transcription

Are Agile MethodsGood for Design?Illustrations by mwienerarts.comJohn ArmitageDirector of User ExperienceBusinessObjects SAJohnarmitage1@hotmail.com: / 14i n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4

design In a recent series of consulting projects, I servedThis seemingly anti-design approach is anathe-as the designer for a software development teamma to most designers, whose very existence dependsworking with agile development methods, widelyon representing what is to be built. Although myknown through the most severe of these methods,experience was frustrating at times, I tried to keepExtreme Programming, or XP. The most salientan open mind and was curious to learn why agileaspect of the agile methods movement [1] and ofmethods are gaining popularity. I came away withXP is emphasis on rapid, iterative releases ofinsights about software development and the designworking products at the expense of sophisticatedprocess that spurred me to write this article.planning and design.I believe that agile methods, however threatening or ridiculous they may seem, can benefit design.XP Guidelines[2,10]To understand how, let’s briefly go back to the draw- Complete product pieces sequentially, in relativeisolation of one another.ing board. Refactor the product periodically to ensure thatthe pieces fit.A Product Development MetaphorAs a kid learning to draw, I would often indulgent- Apply efforts to product construction versusrepresentations of the product.ly render small parts of a drawing in rich detail, and Create little or no documentation or specifications. Keep code and design simple and easy to change. Break down complex features until manageable.pay less attention to how these parts related to eachother. Lacking an overall spatial plan, I often endedup with gross inaccuracies that ruined the drawing.i n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4: / 15

My instructional books recommended startingchange course during development, agile methodswith a light sketch to plan the composition, and thenseek to produce finished, working, reliable code forto gradually commit to areas of light and shade overwhat has been worked on. These results can bethe entire surface to evenly develop the composition.more valuable to a customer than an unfinished,Maintaining such a balanced overview of the draw-poorly written, and unreliable shadow of an initial,ing would reveal planning flaws sooner and allowoverall design.their correction. Initially I resisted drawing theseThe agile movement was instigated and pio-lines that would later need to be erased, but theneered by software developers in reaction to a frus-advice eventually worked; results became more pre-trating history of projects being delayed, going overdictable and the eraser became my friend. I still usebudget, and eventually collapsing under their ownthis fundamental approach to design complex soft-weight [6]. Tired of working stressful jobs with longware systems, and in fact it is ideal in most formalhours on doomed projects, the founders blameddesign instruction.volatile requirements and efforts to create sweeping,For digital product development, these drawingstages roughly correspond to the product’s migrationambitious, improperly targeted product designsbefore any real code had been written.through three basic forms or phases: requirements, spec-Even though development models had maturedification, and builds resulting in the final product.from being primarily ad hoc (little or no structuredCommercial development processes, however, are rarelyprocess) to waterfall phases (sequenced handoffsideal. Many approaches have been tried, and all involvefrom discipline to discipline) to more interdisciplinaryrepresenting the end product in these forms and in thisblended phases (e.g., having designers advise on theorder. Each form represents a “current version” of therequirements and developers advise on the design),product expressed in different media and detail.project results were still disappointing. Ad hocprocesses typically resulted in chaos. WaterfallAgile Methodsprocesses, and to a lesser degree blended phases,Agile methods are unique primarily in their approachexperienced trouble and delays because disciplinesto the quantity, scale, and frequency of these phases.made incorrect feasibility assumptions or acted inAgile projects are implemented more or less as aabsence of a shared product vision, or both.series of small projects (called stories in the XP lexi-If large projects could be reduced to a series ofcon), strung together into a larger, ongoing project.mini-projects that are started, finished, tested, andEach story has its own requirements, specification,delivered to the customer in quick succession, perhapsand product phases.risk could be minimized. Customers could provideAcknowledging that large, long projects often: / 16i n t e r a c t i o n s/feedback on delivered work to inform the next mini-j a n u a r y f e b r u a r y2 0 0 4

Ad hoc development. Large structural errorsare possible.Staged progression from low to high fidelity.project. Iterations would be built on one another overtime, resulting in software systems that “grow” intoexistence while actually being used, versus being“determined” ahead of time. Iterations would be testedfor reliability. In the end, customers would be able toThe ideal XP result: a series of finished piecesassembled serially into a cohesive whole.get more of what they wanted faster, because theywould have had more flexibility with the requirements.The risk of this approach is the inability to modelahead of time what is to be built (to design) and endingup with a well-crafted and reliable final product thatlacks a coherent structure and vision.One risk of phased processes:Design is accurate but implementation ispoorly crafted or unreliable.XP may appear to be merely an ad hoc processwith a catchy name, particularly in its disregard forprescriptive design in favor of building what the customer says they want or need next. Many designershave experienced the ad hoc treadmill and work hardto instill planning and discipline in the completion ofcomplex projects. Agile literature, however, purportsAnother risk of phased processes: Design neverends and implementation is never finished, asin Ted Nelson’s Xanadu [8].highly structured, disciplined methods (not alwaysextending to professional practice). XP seeks to breakdown complex features into the simplest possibleforms and quickly build them. If the result works andthe customer likes it, the feature is kept and perhapsenhanced. Below is a simple illustrative example:A. In a standard scrolling list, you can:The risk of the XP approach. Individual pieceshave value, but the larger system is disjointed.1. Select one item2. Select multiple items3. Select discontiguous itemsXP might implement a scrolling list allowing onlyitem 1. Although items 2 and 3 are plausible functionality extensions, having item 1 released sooner andThe answer: Split your time investmentbetween overall design and detailed, iterativedevelopment.more reliably could provide more value.i n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4: / 17

A key piece of XP that allows it to make theinterfaces at all, which means that either they neglectpieces fit together and adapt is called refactoring.the user experience or are focusing on projects with lessRefactoring is XP’s eraser; it involves taking time outneed for sophistication in user experience (UE).from adding new features in order to rework andWhether it occurs in a large, speculative, upfrontintegrate what has been done. It’s a bit like cleaningeffort, or in small, steady steps that grow into a coher-up the mess after a long run of construction (orent product, design needs to occur nonetheless.doing redesign after much has already been builtPerhaps the main benefit provided by UE designers isand learned).the ability to imagine and represent how a disorderedXP resembles iterative design, in that bothset of functions and meanings can be synthesized har-processes use short cycles of output and feedback. Amonically. Unfortunately for designers, XP relegatesmajor difference, however, is that while iterativethe design role to short-term efforts to design andTo professional designers,agile methods are likely to bethreatening.design typically seeks to model, assess, and reviseredesign small, isolated elements. Less severe agilelarger systems at low and high fidelities, XP buildsmethods, however, can benefit from both the design-and releases smaller systems strictly at extremely higher’s vision and the practicalities of XP.fidelities.Agile Project ExperienceImplications for Design: / 18In a series of three client-server software developmentTo professional designers, agile methods are likely toprojects, our consulting team (two designers, onebe threatening. In agile proponent Martin Fowler’sproject manager, one analyst, two to four developers)essay “Is Design Dead?” [4] his rhetorical answer isworked with a client-driven agile process that fea-actually “no.” However, his use of design refers totured one- to two-week release cycles. The productstechnical design versus user experience design [5]. Inwere a touchscreen-based, media search-and-playfact, the agile community rarely mentions users or usersystem for general recreational use and two relatedi n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4

Figure 1. Multi-layered design efforts in a six-story agileproject. Dedicated UE design efforts are in red.cataloging applications for use by a small group ofmedia librarians. All the products had high standardsfor usability and appeal, so we were reluctant to abandon our user-centered design practices.We evolved a hybrid approach that requireddesign work on three levels, done in parallel. The lowlevel effort (typical for XP) supported the short-termFigure 2. The component planning process.iterations by providing detailed component designsto drive construction. A second level presented lowfidelity redesigns of existing builds in order to informrefactoring effort. This split duty limited the designer’s ability to optimize either effort with just “onepass,” but because all design and product assets wereflexibly built, it was easy to layer on improvements asthe project progressed. In the later efforts, as detailedlater, we were able to design on a third level to provide overall product vision (see Figure 1).Usage scenarios drove our design effort, takingthe form of linear, Shockwave-based ryboards showed how users would use a series ofcomponents, or groups of user-interface (UI) functionality (such as a browser tree, a form, or a dialogbox), to complete a task. In the storyboards, thedesign would show typical (not comprehensive)depictions of these components, just enough to gatherfeedback from users and stakeholders on the design’soverall merit. Concurrently, and upon design validation, the customer and engineering team would prioritize components for development and assign them toiterations (see Figure 2).Components chosen for an iteration were theni n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4: / 19

designed in more detail—but not complete detail.tion capabilities, designing comprehensive alternativeThese components were then assembled into a roughsystem models within the weekly release scheduleworkingtesting.was impossible. Instead (in a microcosm of how larg-Components were added in later iterations ander products evolve over much longer periods), small-changed as their designs changed.er features were added and tested one-by-one, allow-versionofthesystemforA dialog box component provides a simple exam-ing customer feedback on the design and perform-ple of this process (see Figures 3-5). The initial designance. Feedback would accumulate until the overallof a dialog box for creating and editing DVD chaptersystem design needed rethinking. To do this, onelists used a custom list display with hairline-ruledesigner would step out of the weekly release cycle.dividers. Because the effort to build this design wouldAfter awhile, the designers became frustratednot fit within an iteration, and our development toolwith fixing symptoms of larger problems that could(Visual Studio) made such custom work difficult, wenot be solved within one iteration. We felt that we’dused a more standard list control in the first pro-designed the project several times over, constantlygrammed version. The customer (and end users) likedediting, redoing, and combining elements, primarilythis so much that we abandoned the considerablebecause of requirements that were always in flux.extra work to build the original design and merelyChanging Requirementsupgraded alignments and colors—and added the button icons. We then worked on other features withThe effort to eliminate changes to requirements hasmore potential value.always been a losing battle, and always will be.This process may sound similar to a standardRequirements change because they can, and software’siterative design process. However, it was differentmutable nature (compared to other product types)(from what I have experienced) because only one low-makes its development more susceptible to (or accom-fidelity design was prepared, it was not shown tomodating of) change. Software has no raw materials orusers before being coded, and except for integrating itphysical structure to scrap, has fewer standards forwith the current build, the developer worked in isola-quality, has low manufacturing and tooling costs, andtion from other parts of the system. The result washas very rapid rates of innovation and evolution.Perhaps it is more important to realize that indeemed “good enough” and the team moved on tomany cases the project itself is the greatest influencethe next task.: / 20Although the projects were successful, the UEon the project. The more work that is done on a proj-design effort in the first project was frustrating, partlyect, the more the project context changes. Agile meth-because the designers joined the project late. Becauseods seek to benefit from the intelligence of experienc-the product featured complex navigation and interac-ing the real product’s existence, and the sooner thei n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4

better. Design, conversely, aims to predict what theentire product will be before it exists. Proponents ofFigure 3. Initial design wireframe.heavy up-front design, such as Alan Cooper [3, 7],claim that adequate product intelligence shouldreside in a specification. This can be true, but in caseswhere technology is new or untried, requirements arevolatile, the domain unfamiliar, or the complexityimmense, it can be too risky to heavily invest inassumptions without adequate “reality checks.”In summary, agile methods exist to mitigateproduct development risk. They are more empiricalthan other methods, using trial and error to reduce therisk of building the wrong thing, with the expense ofhaving more routine code rework and having toFigure 4. Initial build screenshot.maintain all development code close to release-quality. Essentially a series of very-high-fidelity designexperiments, they achieve low-level certainty byaccepting high-level uncertainty.Why Now?As a result of lowered software distribution costsmade possible by the Internet, it is economically feasible to release new software versions of incrementally greater value at a high frequency. Lower transaction costs, for both development and distribution, arenow allowing trial and error to replace some ofFigure 5. Revised design and build screenshot.design’s predictive expertise. Also, business relationships in general are becoming more transactional,meaning more deals are done, but at a smaller scale,similarly to the lean sourcing and manufacturingmovement [9]. Agile methods also reflect more of aservice model versus a product model, with valuei n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4: / 21

delivered in streams versus in bulk. In fact, commer-success of the team or project (which is perhaps thecial Web site evolution is a good example of agileessence of being interdisciplinary).methods at work en masse. Most sites have evolved as Appreciate that providing partial solutions earliera series of live experiments versus being driven bycan be more valuable than providing full solutionsmonolithic plans.later on.Another point of view, and my personal suspicion, is that XP is a reaction to a shortage of good software application designers, architects, and strategists.Software is difficult to model, and in a way, XP is justa brute-force way for engineers to get work acceptedwithout design and designers. Design solutions and work products that can easilybe changed. Learn to design the simplest possible version ofyour idea, and add to it later. Think hard about what to design first and what toleave for later. Be willing to throw out what’s done if it’s not work-Guidance for Designersing or if it was the wrong thing to do in the firstDespite the identified shortcomings, agile methodscan improve the design process. Iterative releasesbeing used by customers, even those having had lit-place. Learn to quickly jump from low-level to high-leveldesign tasks.tle design input, can serve as ongoing usability Branch out from the build iterations to sketch andtests. This arrangement also allows automatedmodel an overall vision, yet still respect the learn-usage tracking and testing tools to be brought intoings from early technical trials.play sooner and in a more relevant context. Lower-I believe that all projects and circumstances arerisk release cycles can also encourage design exper-different and require flexibility in process. Perhapsiments (albeit at low levels), and gone are the omi-agile methods are best used in cases of exotic technol-nous specification documents to write. The fastogy, volatile requirements, lack of high-level architec-release pace gives an ongoing sense of accomplish-ture expertise, or lack of high UE standards. XP-likement, and because there are closer team interaction,projects could be a good experience for entry-levelshared goals, and less solitary time invested indesigners. The fast pace, simple scope, and ability toelaborate design or engineering schemes, there aresee designs built quickly could be a good trainingless defensiveness and territoriality about individ-ground for the basics of interaction and of workingual designs.with developers.Here are some tips for designers working in an: / 22In a way, designing software is actually not tooagile environment:different from drawing. Advanced drawing instruc- Embrace a larger context and judge success by thetion, in fact, has students repeatedly create figurei n t e r a c t i o n s/j a n u a r y f e b r u a r y2 0 0 4

drawings one after another, rendered in impossiblyACKNOWLEDGMENTSshort times such as 15 seconds or less. The goal is toThe author wishes to thank Jackeliminate perfectionism, loosen the gesture, and forceHakim, Tom Spitzer, DavidThureson, and David Rowley forthe artist to keep their eye on the subject. Having atheir input to this article and theplan is good, but the best artists have a dialog with thework it describes.drawing. Agile methods can benefit design when theyREFERENCESallow the system, and customers, to talk back to the1 Beck, K., Beedle, M., vanBennekum, A., Cockburn, A.,Cunningham, W., Fowler, M.,Grenning, J., Highsmith, J., Hunt,A., Jeffries, R., Kern, J., Marick, B.,Martin, R.C., Mellor, S., Schwaber,K., Sutherland, J., and Thomas, D.The Agile Manifesto. Available athttp://agilemanifesto.orgdesigner with live experience, and afford the opportunity for the designer to respond.2. Beck, K. Extreme ProgrammingExplained. Reading, MA: AddisonWesley, 1999.3 . Cooper, A. The Inmates are Runningthe Asylum. Indianapolis, IN: SAMS,19994. Fowler, M. Is Design Dead?Available atwww.martinfowler.com/articles/designDead.html5. Fowler, M. and Taber, C. Planningan XP Iteration. Available n.html, 4-66. Gibbs, W. W. Software’s ChronicCrisis. Scientific American (Sept.1994), pp. 86-95.www.cis.gsu.edu/ mmoore/CIS3300/handouts/SciAmSept1994.html7. Nelson, E. Extreme Programmingvs. Interaction Design. FTP Online.Available atwww.fawcette.com/interviews/beck cooper/default.asp8. Nelson, T. Project Xanadu(http://xanadu.com/)9. Wheelright, S.C., Clark, K.B.Revolutionizing Product Development.New York: The Free Press, 1992.EDITORSKate EhrlichIBM Research10. Xprogramming.com:An Extreme Resource. Available atwww.xprogramming.com/xpmag/whatisxp.htmOne Rigers Street, Cambridge, MA 02142Permission to make digital or hard copies of all or617-693-1170 katee@us.ibm.compart of this work for personal or classroom use isCollaboration User Experience Groupgranted without the fee, provided that copies are notAustin Henderson, Director,made or distributed for profit or commercialSystems Laboratory Advanced Concepts & Design Pitney Bowesfull citation on the first page. To copy otherwise, to35 Waterview Drive MS 26-21, Shelton, CT 06484republish, to post on services or to redistribute to203-924-3932 austin.henderson@pb.com ACM 1072-5220/04/0100 5.00i n t e r a c t i o n s/j a n u a r yadvantage, and that copies bear this notice and the f e b r u a r ylists, requires prior specific permission and/or a fee.2 0 0 4: / 23

the design role to short-term efforts to design and redesign small, isolated elements. Less severe agile methods, however, can benefit from both the design-er’s vision and the practicalities of XP. Agile Project Experience In a series of three client-server software deve