CARVIEW |
December 19, 2005
Client vs. Developer Wars
The 69 page e-book Client vs. Developer Wars documents one web design company's struggle to formulate a rational development process:
Up until the middle of 2000, Newfangled?s development process was much like that of every other web development company. The process started with the ?planning/strategy phase,? followed by ?design,? then ?programming/testing,? and finally ?launch/maintenance.? Like most web developers, we thought our process was carefully thought out and logical. However, while the process seemed to make sense, it didn?t work. No matter how hard we planned, our projects would slowly degrade and unravel.The downward path of our projects was not due to lack of effort. At one point we were creating generic screen illustrations prior to development that showed how all the proposed content, features, and functionality of a site would fit together. These documents were usually 20-40 pages long even for relatively simple sites. They took a long time to write and even more time to review with clients. In fact, we were investing so much time in planning that clients often grew impatient, wanting to ?see something? instead of just discussing the site and reviewing specifications. Yet we knew that if we rushed the planning stages, we would pay for it later. Unfortunately, even when we thoroughly completed the planning stages, problems would still surface, usually in the final stages of the project.
This, to me, is another indictment of dysfunctional specifications. I learned long ago that clients won't listen to what you say, and they certainly won't read what you write. You're much better off putting that wasted effort into a working model and setting it in front of the client. Let them play with it for a while. Refine the working model based on that feedback, then keep turning the crank on this cycle until you run out of resources.
And that's exactly what Eric Holter proposes in this e-book:
Our first prototype was a desperate attempt to document our projects more effectively. We had already been writing information architectures in order to provide our clients with site details. Using an HTML model of the site instead of a printed document was simply an effort to more effectively communicate the details of a site. As we started to use this HTML prototyping method, we discovered that it was doing so much more than documenting. It was enhancing our ability to communicate with our clients.When they had questions about how something was supposed to work we reviewed the prototype and discussed the issue in its context. It was during these interactions around the prototype that we began to realize that our clients were able to give me much more detailed feedback about how they wanted a site to work. If they had an expectation about how a particular feature would function, it would generally be discovered at this early stage. We could then deal with the expectation appropriately. If there were technical limitations or cost issues discovered, we could work them out and provide viable alternatives before they became crises and before they had already been developed differently.
We found that building a comprehensive, simple HTML model of the site helped to solve many of my problems. The prototype also performed the function of a technical specification (we began to add programmer notes to the pages) that accurately described the structure, content, and features of our sites.
Yet because we translated the specification into a familiar HTML model, it was something our clients could grasp. Additionally, clients spent more time looking at prototypes. They considered them more carefully than paper documents, because they understood what they were looking at. We were able to get the kind of detailed feedback that we used to get only after a site was almost complete. This solved many of the problems that stemmed from our clients? exaggerated expectations. By using the prototype to define and specify sites, we were able to communicate and educate our clients in an effective proactive manner. This improved the overall flow of information, which resulted in positive relational dynamics with our clients.
Yes, some of the advice will be old news to agilists, but give the guy a break: this was written five years ago. They call it grayscreen prototyping. I think it's a reference to the old default gray background color of Netscape 4.7x. So the implication is that we're talking about low-fidelity HTML layouts -- so basic that they don't even specify a background color.
There's nothing magical about the solution proposed here, but it's solid advice written well. Recommended. And if you're not into the whole reading thing, you can even download a 16 minute video presentation that covers the whole shebang.
Another approach that's useful, and is applicable to more than just web site design, is paper prototyping (perfectly described and documented in Carolyn Snyder's book). Paper prototypes go deeper sooner with less effort and help discover aspects of an application that would get overlooked otherways. Like other participative design techniques suchs as CRC cards, paper prototyping helps trigger everyone's insight and crytical thinking, which is much better than having the users/customer agree on a specification that they don't really understand anyway. Greenscreen prototyping is great, but IMHO learning how to do paper prototypes is a better investment since it can be leveraged for all kinds of systems and applications.
Ramon Bosch Smit on December 20, 2005 06:43 PM> Paper prototypes go deeper sooner with less effort and help discover aspects of an application that would get overlooked otherways.
I agree that paper prototyping is certainly a good thing. But there are definitely conceptual differences between paper prototyping and HTML prototyping. It can be difficult to convey non-linear navigation with a stack of paper, for example, and that makes it hard for a client to grok the structure of a site.
Jeff Atwood on December 20, 2005 07:50 PMahh... to grok...
the better the client groks, the easier the developers can be made to grok, and then all grokked, and saw that what was grokked by all, was good...
Tim Erickson on December 20, 2005 08:02 PMAnother advantage that an HTML prototype has is the ability to deploy and have clients that are off-site (or in the case of one project I did, out of province) play with it at their leisure. You still get a lot of great feedback, even if you aren't "there" 100% of the time.
Nathan Smith on December 21, 2005 01:58 PMI definitely think it is better to get a working prototype up and running and get feedback early on the proto. Forces the client to give feedback from a demo and can make them feel more involved. Many times (ok, almost always) the prototype becomes the final product so it is good to get that early feedback and adjust as necessary when necessary. I never felt paper mockups were much use especially if the person doing the mock up doesn't know much about what can/cannot be done by the implementer.
If anyone has read the extreme programming books, that is a good place to start. A problem I have my company is taht many of our clients are not actually present and we have technical marketing people in their place and they have very little time to give meaningful feedback and make suggestions that are many times not feasible, too costly (time to implement) or just plain dumb.
Louis Duran on December 29, 2005 08:09 PMHi Jeff, thanks for the post - for those who still stumble upon it, our site has changed and the new link for the book is - https://www.newfangled.com/client_vs_developer_wars. Also the video described is no longer there but there is a new one called "Avoid the Illusion of Communication." Thanks again!
Eric Holter
CEO - Newfangled Web Factory
www.newfangled.com
Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |