How involved must we be in the business to gaurentee (in some cases
just to understand) what it means to be a successful project?
Following the Challenger example, are we only responsible for the
failure of a project. The failure of the Challenger was the failure
of the engineers, because they knew the o-rings would not hold (or at
least the risk was beyond an acceptable level).
Sometimes I get a feature the customer wants and think, "There is no
way this is useful to the user. In fact, this is a waste of my time
and their money." Or even worse, "This feature will be destructive to
the usability/functioning of the rest of the system without adding
value." I will raise an objection, but continue down the path of
cognitive dissonance if they persist. It is not my job to tell them
how to spend their money; or is it? When they hire a team of
craftsman, where does this line of accountability start for the
software craftsman?
I'd say, "as involved as possible". I think too many of us distance
ourselves from our customers' businesses. It easier to focus on
purely technical topics than focus on the messy realities of business.
In my experience it takes time to get involved in the the business,
so the beginning of your relationship with your customer might have a
very sharp distinction between your knowledge and hers. But over
months, years, and successive deliveries, you should be growing your
domain and business knowledge, just as a smart customer will grow her
technical skills through interacting with you.
Dave Hoover
//obtiva: Agility applied. Software delivered.
I don't think the Challenger is a fair comparison here. Lives were
lost. Noboby's going to die if I implement a crappy user interface.