Registered: Nov, 2002
Re: Flexibility and Complexity
Posted: Nov 29, 2002 6:16 PM
> As Bill noted, the requirements gathering and high-level
> design process needs to be a conversation between the
> customer and the development team.
> But in the end, the customer is king when it comes to
> externally observable system behaviors. For all other
> behaviors, and for implementation costs, the development
> team knows best.
> Saying that the end user is not capable of describing
> desired externally observable behaviors is an
> extraordinarily arrogant attitude, and it is one that will
> be brutally punished in a capitalist marketplace.
> Nobody wants to pay your company huge amounts of money to
> employ ivory tower design practices to build software that
> makes you happy.
What we need to establish here is that there are three things involved:
1. Business requirements gathering
2. Formulating the requirements that are needed to define end-users' interaction with the system
3. Formulating requirements needed for implementing the system
Regarding the issue number 1, the development team has no business poking their heads in there. Business people can perfectly well gather their own requirements. In other words, they don't need us, nor do they need any technology in order to accomplish that.
Step number 3, on the other hand, does not require business people at all. We, the developers, can perfectly well gather our own requirements, and figure out how to implement the system in the most efficient manner. This is where methodologies such as XP have their say.
Step number 2, however, is tricky. This is where the 'externally observable system behaviors' are defined. And that's where we must be careful not to give in to what the 'king' (i.e. the customer) wants. The core problem here is that the customers have been conditioned by years of using lousy, inadequate systems. After being abused for such a long time, they grew thinking that it's the only possible way to go. Consequently, they'll always insist on having the least optimal solutions.
It is our duty here to step in and be adamant in insisting that there is a better way. We should take it on ourselves to calmly explain to the customer that they've been abused by the half-baked, incoherent products, and that they need to expect and demand more from engineered products. Instead of interpreting this as an 'extraordinarily arrogant attitude', as you say, they will most certainly appreciate our care. Evidence (in my case, ample evidence) has shown that not only is this not being brutally punished in a capitalist marketplace, it is being richly rewarded.
It all depends on your perspective, of course, but I am nevertheless adamant that we don't have to act subservient to our confused customers in order to gain their business and their respect. Customers will respect a very knowledgeable service provider who is exhibiting genuine care for customers' true needs.
Thinking otherwise exposes extraordinarily arrogant attitude, in my opinion.