cooper

Journal: A blog about design, business and the world we live in.

Agile

Things I learned at Agile Up To Here

(This was originally published on Playwell, Alan's personal blog.)

Elisabeth Hendrickson has recently opened a new test-and-development training facility in Pleasanton CA called Agilistry. It’s bright and airy, well-lit and well-stocked, and it feels like home the minute you walk in. In order to publicize her new facility, she very generously hosted a week-long intensive learning exercise.

She invited eleven different people with widely varied skill sets, backgrounds, and interests. She challenged them to build a website in five days using the best practices of interaction design, agile programming, and test-driven-development. We christened it “AgileUpToHere” (#au2h) and it exceeded everyone’s expectations (you can see our results here).

Since it was my 15-year-old homophone web site that was being rebuilt, I nominally played the role of product owner, but I was an observer, an instigator, a goad, and a participant. It’s hard to remember when I had so much fun or learned so much. If you want to learn to be great, I strongly recommend Elisabeth and Agilistry.

Things I learned:


  1. After 25 years, it’s time to lose the Windows computer and get a Mac.

  2. Good agile developers are self confident; confident enough to trust interaction designers to do interaction design without distrustful oversight.

  3. There are lots of programmers who understand that relational databases are not the only approach to solving problems.

  4. It is time to build software.

  5. Test-driven-development isn’t fully understood. In fact, software testing isn’t fully understood.

  6. When even the leanest developer in the room sees really high quality BDUF (big design up front) for the first time, they get all woo-woo and want some for themselves.

  7. Getting good software built demands the contributions of many different personalities, competencies, and roles, most of which are new and as-yet ill-defined.

  8. Two programmers pairing can create more and better code in less time than one programmer can (I already knew this, but it’s always good to see it in action).

  9. Even this jaded old fart can still get excited about changing the world.

  10. There are many undiscovered and unfilled product niches on the Web, and one of them is “quality”.

  11. People want a leader with a vision.

  12. Elisabeth Hendrickson (@testobsessed) is a magical woman. To paraphrase Tom Robbins, “she’s been around the world eight times and met everybody twice.” Like a great chef or symphony conductor, Elisabeth knows how to combine the unexpected to create the sublime. She brought together a dozen people from all over the country, each with different skills, background, desires, and expectations, and then she blended them together into a cohesive, happy, effective team.

  13. The pre-written code I arrived with was called “legacy” with a grimace, and was quarantined until discarded. Moral: Non-TDD (test-driven development) code is properly regarded like a ticking time bomb.

  14. For interaction design, you can’t have too many white boards, made from porcelain-coated steel, firmly mounted to the wall. For agile development, that isn’t such a big deal.

  15. Story-mapping is a major component of the bridge between interaction design and agile development.

  16. Story-tracking software isn’t quite there yet.

Common ground

The biggest problem in software today is that programmers and designers simply don’t work well together. They certainly want to, but each craft sees the problem from their own point of view and, with the best intentions, each tries imposing their methods on the other group. But even agile developer’s sharpest tools aren’t going to work well for designers, and likewise, even the designer’s sharpest tools aren’t going to help programmers.

The solution will be to find some common ground where each craft is open to the best contributions of the other, without either side being forced to sacrifice their inherent strengths.

I believe that the solution, like most big things, will be relatively simple in concept, yet getting there from here won’t be easy.

Today, most of the pathologies of both designers and programmers can be traced to their mutual lack of experience working together. Most programmers will tell you their biggest problem is coping with rapidly changing requirements. Most designers will tell you their biggest problem is unresponsive programmers.

In the modern, agile world, programmers defend themselves against changing requirements by showing customers the program as often as possible, and by being able to make rapid changes to suit the customers expressed needs.

Interaction designers defend themselves against uncooperative programmers by doing ever more detailed design and documenting it with greater accuracy, detail, and precision.

But modern, agile programmers can work so flexibly that they don’t need all of that detailed and precisely written design. If designers could just blend into the development team, they could communicate their design directly without the overhead of documentation. They could provide a kind of just-in-time design service to the programmers.

On the other hand, interaction designers can master the driving principles of even the most complex domain so that programmers don’t need to make all of those changes. With a comparatively brief and inexpensive field study, designers can vanquish the changing requirements problem almost completely.

Ironically, the common ground for agile developers and interaction designers is one where the major problem faced by each craft separately is largely solved by the simple presence of the other craft, working collaboratively at a peer level.

That’s really good news for cost-conscious business people (now that’s redundant). Having designers and developers collaborate is very economical. Most of the cost of interaction design is incurred in the documentation and communication of that design. Similarly, most of the cost of software development is incurred in traversing blind alleys trying to elicit useful guidance from the stakeholders. Effective collaboration simultaneously discards the need for the two most expensive parts of product development, while driving quality—and user desirability—through the roof.

What do you think? Join the conversation in Comments

An Insurgency of Quality

Dave Hussman, one of the leaders of the post-agile movement, recently hosted a one-day conference on the topic of “Redesigning Agility”, and invited me to give a plenary talk. The focus of the conference and my talk were how to integrate agile development with interaction design. I was very pleased with how things went.

Here you will find the complete text of my talk, entitled “An Insurgency of Quality”, along with all of the slides I showed. I made a few ad libs, but mostly stayed with the script in order to assure that my message not be misunderstood.

The conference, called “Code Freeze” (due to it being January in Dave’s home town of Minneapolis), was sold out and the audience was razor sharp. The attendees were developers; that is, mostly programmers, but with lots of designers, coaches, testers, and managers, and not a few who wore several of those hats.

This talk is a complement to one with the same title I delivered at the IxDA's Interaction08. That one was directed at designers; this one is for developers.

What do you think? Join the conversation in Comments

My vision of Agile

Lots of ivory tower software experts cheerfully follow their own muse, but in the world of business, the dreams of money-makers are usually in conflict with the dreams of geeks.

In the business world, software developers have always been the whipping boy. In commerce, the delivered-software never matched the envisioned-software, and the technologists got the blame. Executives have always been unhappy about their inability to effectively direct and exploit software development. The only tool that seemed to get results for managers was to keep programmers on a ridiculously short leash by allocating resources in tiny increments. The results weren’t good, but they tended to prevent colossal disasters, which was, apparently, good enough for business.

Over many years, in self defense, programmers increasingly hunkered down to protect themselves. They aggressively lowered the expectations of their managers. They tried to commit to the least possible performance to avoid blame. All they really accomplished was to avoid good performance.

Blending Agile and UCD at CHIFOO

The Computer-Human Interaction Forum of Oregon (CHIFOO) hosted Lane Halley and Jeff Patton for a talk and workshop on blending agile practices and user-centered design. On Wednesday night, May 6th, Lane and Jeff presented a talk titled “Making Sense of User-Centered Design and Agile.” Thursday, May 7th, Lane and Jeff taught a full-day workshop titled “All Together Now: Blending Interaction Design and Agile Development Techniques.”

2009.05.07.CHIFOO.png

The slides from the May 6th talk are available on SlideShare. Pictures of the May 7th workshop are available on Flickr.

Is Interaction Design a dead-end job?

IDEO’s Bill Moggridge made a comment last week after a screening of Objectified that hit close to home. To paraphrase, he said interaction design has become pervasive, that anyone and everyone can be an interaction designer, and so the role of professional interaction designer is (or is becoming) unnecessary.

So, is Interaction Design a dead-end job?

As an expertise, no. But as a discrete service offering or a career path, I say absolutely.

This position has not made me any new friends around the office, but to be clear, I'm not suggesting our profession is akin to flipping burgers at the mall. Instead, it's that interaction design has reached a point of maturity where growth is constrained. I see three major factors behind this and hope that by acknowledging them we can find a way forward.

Hey, Oregon! Cooper talk and workshop at CHIFOO

The Computer-Human Interaction Forum of Oregon (CHIFOO) hosts Lane Halley and Jeff Patton in Portland for a talk and workshop on blending agile and user-centered design. On Wednesday night, May 6th, Lane and Jeff present a talk titled “Making Sense of User-Centered Design and Agile.” On Thursday, May 7th, they'll teach a full-day workshop titled “All Together Now: Blending Interaction Design and Agile Development Techniques.” Here's more information about the course and registration details. We hope to see you there!

What do you think? Join the conversation in Comments

Software is a movie, not a building

In a previous post I suggested that film making is a good analogue for discussing software design and development, that lessons learned there could help us think about better ways to approach our own projects. I established the similarities like this:

stages.png

Much beer has been spilled over comparisons of software to physical architecture, and while the analogy is interesting it is inherently flawed. For the industrial-age activities of designing and constructing a physical building are vastly different than the post-industrial process of designing and building a digital artifact of conceptual ideas, where cost is measured by time rather than materials and success measured by consumption and desirability.

Alan Cooper video: "Similarities Between Interaction Designers and Agile Programmers"

alansmiling.png

During the Agile 2008 conference, Amr Elssamadisy interviewed Alan Cooper on the topic "Similarities Between Interaction Designers and Agile Programmers." During their conversation, Alan provides additional context for his talk, "The Wisdom of Experience" and explains why he believes the adoption of Agile methods by developers is a positive development for interaction designers.

What do you think? Join the conversation in Comments

Is incremental design the wave of the future?

An old friend and former client — let's call him "Paul L." — sent me an email question the other day, asking “Is incremental design the wave of the future, or just a flash in the pan?”

When I finished my response, I thought that it might be of interest to a wider audience. Here is the exchange.

Alan,

My wife teaches computer science at Menlo College. She has been teaching software engineering based upon the traditional cycle of specification, design, development, testing.

I have seen some Research Channel TV shows that talk about Incremental design. Google and Inuit are two companies that seem to be having some success with ID.

My wife and I have been talking about ID as compared to the traditional methods. During the discussion I thought about my friend, the Design Guru. I am wondering if you have any thoughts on ID. Is it the wave of the future or just another flash in the pan?

Thanks,
Paul

Paul,

As agile methods take over the programming world (and they will), EVERYONE else will adjust accordingly. The old paradigm of everyone hunkering down and protecting their turf from everyone else is what gave rise to the "traditional cycle" (which is, by the way, uniquely ill-suited to software construction and design).

The new (agile) paradigm isn't at all defined yet, but it characteristically includes a) Generation Y programmers; b) a refreshing belief in the potential for change; c) the understanding that satisfying human users requires special efforts and probably special skills; d) a belief that software should be built in continuous increments; e) a corresponding belief that everything else in the world relating to software would benefit from such continuous increments; f) that building software is a team endeavor; and g) that nobody has solved these problems before.

Interaction design for startups: A conversation with Andrew Hoag, founder of inviteme.to

inviteme.to is an early stage startup that allows people to coordinate offline social activities with their friends. Founder Andrew Hoag, tired of organizing the "goat rodeo" preceding any event with his friends, found a niche desperately in need of attention, and decided to do something about it. He approached Cooper in April 2008 to work on the design and user interaction for his web-based product.

inviteme.to

The people behind inviteme.to

Andrew: We got started 8 months ago and have two full time people and a couple of contractors and outside staff helping us. As for background, I come from the business side, working in enterprise, security and software for 7 years. Most recently I’ve been advising consumer internet startups before launching inviteme.to. My technical co-founder is a developer that came from a large travel site, Sidestep, which you may have heard of. For now it’s just the two of us working full time with a bunch of people helping us out.

Cooper hosts Innovation Games class

Luke Hohmann, author of Innovation Games: Creating Breakthrough Products Through Collaborative Play will be here at Cooper to teach an intensive, two-day class about Innovation Games, March 30-31, 2009.

When: March 30th-31st, 2009
Where: Cooper, 100 First Street, 26th Floor, San Francisco
Price: $995 per person, $895 per person for two or more attendees
To register:
visit the registration site. For group discounts, send email to info@enthiosys.com

I was intrigued by the Enthiosys display at the Agile 2008 conference. Every time I passed by, the booth was filled with folks filling out colorful stickies and pasting them on posters containing grids and trees. Once I overheard a group of people engaged in passionate discussion about the relative benefits of different kinds of sunglasses. I asked what was going on, and learned that this was an Innovation Game called "Buy a Feature."

Because I am somewhat skeptical about feature-collection as a product design mechanism, I asked Rich Mironov to explain this to me. Did he really believe that you could ask people what features should be in a product and use that information with any confidence? Rich explained that you didn't listen just to what people said they wanted, you need to encourage discussion about why those features would be valuable, and how they would be used if they were available. At last, I suspected I'd found an ally in the product management world who understood that you needed to get behind feature requests to the human needs those features serve.

After I read Innovation Games: Creating Breakthrough Products Through Collaborative Play, I began to see potential for new ways to engage with my clients in a more fun and collaborative way. Several of the techniques described are similar to the techniques I use in my research: Me and my Shadow, The Apprentice and Show and Tell. Another set seemed to be new ways to collect some of the information I collected through direct research, but in a new way: Start your day, Spider web, Remember the future, Give them a hot tub.

As an experiment in trying new things, and to build better understanding between the Agile Product Management community and the Interaction Design community, Cooper has invited Luke Hohmann to come teach a session of his Innovation Games workshop at Cooper. We hope you can come join us!

Cooper's Q&A "Integrating User Experience and Agile" on video

agile_pivotal_video_2.png

Alan Cooper, David Fore, Lane Halley and Tim McCoy were invited by Pivotal Labs to present a tech talk on Agile and User Experience Design on December 10, 2008. Rather than present a prepared presentation, we took questions from the audience and engaged in an hour of interesting conversation about the challenges of integrating User Experience Design and Agile.

The video is available here.

What do you think? Join the conversation in Comments

Agile '09 Call for Submissions

Agile09logo.png


Cooper is a proud co-producer of the User Experience stage at Agile 2009, the annual Agile Alliance conference. We look forward to hearing your stories about how User Experience techniques enhance Agile projects. Visit the User Experience section to learn more, and to submit a proposal. The deadline is March 3rd, 2009.

The conference will be in Chicago, August 24 to 28, 2009. We hope to see you there!

What do you think? Join the conversation in Comments

Agile interaction design for startups: A conversation with Cameron Koczon, Co-founder, Border Stylo

Recently I’ve been trying to figure out how interaction design can be blended with Agile development techniques. William Pietri and I have been working closely with Border Stylo, a web-based startup located in Beverly Hills. Through a series of short workshops, we’ve been helping them find the appropriate blend of Agile and interaction design techniques for their team, and evolve those methods as their needs change.

Cameron Koczon and Eduardo Prats were at Cooper October 27-29, 2008 for a series of collaborative design sessions. I took the opportunity to chat with Cameron about his experiences working with a design consultancy as his small startup interleaves product definition, development and interaction design in a nimble fashion, without losing ownership if the vision and end results. Lane: Please introduce us to your company, Border Stylo.

Cameron: Border Stylo is about five months old. Our founding team is a group of very good friends from way back. Myself, Diego and Oscar went to high school together, Eduardo is Diego’s little brother, and Evan and I were college roommates. We raised a little money to build a proof of concept of a Firefox extension. Based on our proof of concept, we raised some series A funding and that took us to where we are now, constructing our Alpha release.

Lane: What is the composition of your team? How many people and what are their skill sets?

Cameron: We all wear a lot of hats. Diego, our CEO does investor relations and makes sure we stay the course in terms of our vision. We’re going to do a lot of data mining and analysis and his educational background will help us with that.

Oscar, our COO, is in charge of developing and implementing our marketing strategy. Because many of our investors are international, we plan on conducting an international release of our product. He also does a lot of the work that has to get done at a startup but is not very glamorous. He makes sure the rent and bills are paid. He handles legal, accounting and is involved in hiring. I actually don’t know how he keeps track of it all.

Eduardo and I do visual design, UI design, product definition and some of the implementation associated with that. That’s not sustainable, so we have to bring on some more people to do that.

We have a development team of three people. One, our CTO Ian, is a badass Rails developer and does a great job of keeping our team on track. Another, Evan, does all our front-end/plug in development. The third guy, Thomas is focused on the back end, making our product scalable. Again, we are in the process of expanding the team to a more sustainable size, but for now that is the full dev team.

The missing piece: How interaction design can add to Agile

Since Alan and I attended Agile 08 last August, I’ve had conversations with a lot of people about their impressions of Agile. I’ve talked with people working in a variety of settings, from scrappy startups who are iteratively defining their product and market to large companies with complex business problems working with internationally distributed teams. In each of these settings, some folks are strong advocates of Agile, some are still skeptics. It’s a broad field, and I’m still very much formulating my opinions, but I’d like to share some thoughts and observations I’ve had along the way. I also have a few ideas about how Agile and interaction design might be able to work in concert.

Uncle Bob, craftsmen and the Agile Manifesto

Bob Martin’s rousing keynote speech at the Agile08 conference in Toronto entitled “Quintessence” proposed a small but significant addition to the Agile Manifesto, a seminal document in the programming world. Uncle Bob, as he is affectionately called, proposed adding the assertion that we value “Craftsmanship over crap” to the manifesto. The idea is excellent, and the wording bold, but it isn’t quite a complete sentiment, and Uncle Bob addressed this issue in his blog.

Bob Martin at Agile 2008

Shortly after delivering his speech, Uncle Bob stated in his blog,

The problem with my proposal is that it is not a balanced value statement. In the other four statements we value the second item. We just value the first item more. But in my proposed addition, we simply don’t value crap at all.

He goes on to propose rewording it as “Craftsmanship over Execution,” but admits that it still doesn’t capture his meaning precisely. He then asks the blogosphere for help. My response follows.

Pull and Push Communication

A friend recently told me that she was challenged by information management in the design process. "I'm looking for anything to facilitate faster communication…[it's hard to] remember all the people I have to contact to update about something. Sometimes I'll send out an email and forget the developer, or forget the QA person - and this happens vice-versa…not intentional for anyone. It's just hard to remember everyone in a fast moving environment. "

Communication is tricky. I have to say that face-to-face has advantages over other methods because you can tailor the communication, but it is time consuming. When face-to-face won't do, consider these questions:

  • What are the most essential elements you’re trying to communicate and to whom?
  • What are your objectives for the communication?
  • What are the most effective methods to achieve that?

I’ve been hearing a lot about “visibility” at the Agile '08 conference. Development teams keep card walls that describe the work they are doing. Anyone can mosey up and see what’s happening. Designers can do a similar thing, by posting a timeline, and work product related to each step. Project wiki’s are also good for the running stream of work done. This is all “pull” communication that people can check in on when they are curious, or need reassurance about what your team is doing.

In my experience, “push” communication should be used sparingly, and should contain summaries and action items. People are busy and don’t have time to process a lot of email. Make your moments with them count.

What do you think? What works for you?

What do you think? Join the conversation in Comments

Why I read my speech at Agile08

Some attendees at the recent Agile08 conference were put off when it appeared that I was reading my speech rather than delivering it offhand. (If you're interested, you can find my slides and speakers notes here.)

It’s true; I was reading my speech.

When I speak to groups of interaction designers or business people I often address them extemporaneously. It’s a style I enjoy very much and feel that I can do well.

However, the Agile08 audience demanded special treatment. Not only was it large, but it consisted primarily of programmers, agile coaches, and product managers. These professionals are bright, knowledgeable, critical, and opinionated. They do not suffer fools lightly. I was coming to them as something of an outsider; not having programmed for a living for years, and never having programmed in a canonically agile shop.

Alan's keynote at Agile 2008

I was asked by the leadership of the Agile 2008 Conference to give the closing keynote address at their annual conference in Toronto. The audience at Agile08 consisted of about 1500 programmers, engineers, product managers, and others involved in the creation and deployment of software primarily using Agile methods.

My belief in the value of detailed written design has often led enthusiasts of Agile to assume that I am an adherent of the obsolete, and justly maligned, waterfall method of software construction. I was pleased to have this opportunity to state my position with clarity and precision, not to mention making the case for effective collaboration between interaction designers and Agile programmers.

Here are the slides and accompanying speaker's notes for my talk. Some in the audience noticed that I was reading from my notes during the presentation. If you're interested in why I chose to do this, read this Journal entry.

If you would like to discuss this presentation with me, either post a comment to the Cooper Journal blog or email me directly at alan@cooper.com.

What do you think? Join the conversation in Comments

Collaboration with development is a handshake, not a handoff

We recently spent 14 months designing an investment platform for traders and portfolio managers. As you might imagine, this was a large and complex application that required a tremendous amount of collaboration with the client. Our team consisted of a design communicator, an interaction designer, two visual designers and an engagement lead. We spent many hours with subject matter experts (SMEs), business analysts (BAs) and developers, crafting a solution that satisfied the needs and goals of seven user personas (and because their real-world counterparts were also employees of our client, actual users reviewed our work every step of the way). This article describes some of the key techniques we employed to ensure that the interaction design was something our client's development team could implement (I'll focus on our collaboration about interaction design; visual design was a key component of this highly visual interface, and deserves its own article).

Sign Up

Want to know more about what we're thinking and doing? Tell us about yourself, and we'll be happy to share.

+

Required

+

Optional

contact

Contact

To work with us

tel: +1 415.267.3500
Talk to the man
Want a direct line to the big guy? Here's your conduit. Alan Cooper:

+ Careers

Cooper is always on the lookout for the best and brightest talent. Feel free to take a look at our current career opportunities.

+ Site

To send feedback about our site, drop a note to our web team. An actual human will respond.

+ Cooper

100 First Street
26th Floor
San Francisco, CA 94105
tel: +1 415.267.3500
fax: +1 415.267.3501