Friday, August 26, 2005

DevSource: Essential Weapons in the Negotiating Arsenal

-------- DEVSOURCE --------
August 26, 2005
Essential Weapons in the Negotiating Arsenal

A few weeks ago, for the first time in several years, I
found myself in the position of interviewing a user to find
out what she wanted her application to do. I'd forgotten how
much I like the experience of learning about someone else's
daily problems, and determining what I can do to write
software that solves them. I'd also forgotten how
frustrating this process can be. Elayne could easily show me
what she didn't like about the existing forms, but she
seemed surprised to be asked to draw up an example of what
she'd _like_ to see.

Programmers tend to be linear thinkers, or at least we're
goal oriented. We know that we won't succeed unless we know
the result is we're working towards. I realize that sounds
obvious, but there are a lot of professions which are much,
well, mushier. Salespeople think of themselves as
constantly-marketing, but they don't draw up process
diagrams. Doctors put their attention on helping people, and
they don't think much about workflow.

So when we come in to ask them about software requirements,
both sides are a little stunned at the process. The user
thinks, "You mean, I have to tell you what the end result
should look like? How should *I* know? You're the expert!"
The developer thinks, "You said you wanted to improve this.
Why don't you know what you want?" It's your job to extract
from the client what she wants, even if she isn't sure what
that is.

This is an age-old problem, encountered by anyone in a
consulting role (and here, even if you're a salaried
employee, you're also a consultant). Nor is it limited to
computer jockeys; I think it affects any craftsperson who
must serve the needs of a non-artist, who grows more certain
of his desires as the result approaches fruition.

If this sometimes gets on your nerves, you may be relieved
(or discouraged?) to learn that it affects even the best
artists. In 1904, the architect Charles Greene built a house
for the widow of President Garfield in South Pasadena, amid
a constant barrage of change requests, from extending a wall
to changing the number of windows. As one biographer wrote,
"Both Mrs. Garfield and Charles Greene were knowingly
engaged in a friendly battle of the wills to get what they
wanted out of the project. Each recognized that compromise,
flattery, and the threat of higher costs (or lack of funds)
were essential weapons in the negotiating arsenal." (Greene
& Greene, by Edward Bosley)

Compromise, flattery, and the threat of budget overruns
worked for Charles Greene. What do _you_ do to extract user
requirements that actually reflect what the user requires?

Esther Schindler
DevSource Editor

Incorporating Classes with Master Pages

John Mueller is continuing his exploration of the Master
Pages feature in Visual Studio 2005, which we both think is
pretty darnd exciting. This time, he shows how to extend the
flexibility that master pages provide by adding classes to
perform specific tasks common to all Web pages.

Using the DataTable Object to Return Records

Learn how to optimize your C# Web applications using
ADO.NET's DataTable object. Doing so will address some of
those persnickity performance problems with Web apps.

There's Gold in Them Thar Conference DVDs

Julie Lerman shuffled through the TechEd Conference DVDs
that just arrived, and is paying particular attention to the
material from the sessions she _couldn't_ get to. Such as
"DAT421: Client and Middle Tier Data Caching with SQL Server
2005," by Pablo Castro and Steve Lasker. "One of the gems in
there," she says, "is this slide by Pablo, who is the PM on
the ADO.NET team." (You'll have to visit her Weblog to look
at it -- isn't that clever of me?) The result is that
querying the DataSet and refreshing it from the original
data source becomes extremely fast.

Tip of the week: Easy Thumbnails

When working with bitmap images it is common to want to
create thumbnails, small versions of the images that are
easy to display and view. The .Net Framework's Image class,
and the derived Bitmap class, provide a method for just this

Microsoft CTP Madness Strikes

Microsoft is releasing previews of more of its technologies
via Community Technology Preview builds. But mixing and
matching CTPs is turning into a full-time occupation.

Intel Preps Mac OS X Developer Tools

Intel announces it will port its software developer tools to
Mac OS X and will ship its first beta later this year.

eNewsletter Information
You are subscribed to the DevSource
newsletter with the e-mail address

To change your HTML/text preferences, change your e-mail
address or subscribe to other eNewsletters from Ziff Davis
Media, click here:

To unsubscribe, click here:

Copyright 2005 Ziff Davis Media Inc. All Rights Reserved.
Ziff Davis Media Inc., 28 East 28th Street, New York, NY 10016