In the "Venus and Mars" series of mainstream relationship books, author John Gray attests that differences in outlook and inherited traits account for relationship problems between genders. His position is that men and women come from inherently different places and therefore approach things from inherently different perspectives. In this week's column, Carol Dekkers explores how some of the issues in software development might be similarly rooted in differences between the software development and customer communities.
For the sake of discussion, let's take the viewpoint that there are human issues (beyond issues with tools and processes) that create obstacles between the customer and systems development communities. What's the fundamental difference in project vision between these two groups? It is said that before you can empathize with another human being you have to walk a mile in his shoes. Not having the luxury of cross-training today, let's explore the respective roles of customers and systems developers.
IT Customers Are from Venus
End users and business managers (we'll call them the IT customers) all share common goals-to keep the business running efficiently and effectively and to satisfy their external customers-and to do both at a profit. Because they deal with day-to-day external customer issues, IT customers are most concerned with day-to-day business continuity , and it is from this perspective that they prioritize and approach non-mission-critical projects, including software development.
Developers Are from Mars
Software developers also share a common vision-providing computer resources, facilities, and software applications needed by the business. In this supporting role, the primary focus of developers' activities is satisfying the IT customers by delivering customized software designed specifically to their needs.
In short, IT customers focus on the running of the business and its external customers, while developers focus on the delivery of software tools to the IT customers. This difference gives rise to interesting-and challenging-behaviors on software projects.
How Do These Differences Affect a Software Project?
Here are a few project activities where such fundamental differences emerge:
- Software Requirements
- Venus Perspective: Activities that will enable us to do our business better in the future (such as software projects) are secondary to the day-to-day running of the business. The software developers often tell us that they know our business and our priorities, so why are they surprised when given a choice between satisfying a customer and missing a software project meeting, we choose to satisfy our customer first?
- Mars Perspective: Since it is the IT customers who want the software, it should be up to them to drive the project. Without solid requirements articulated clearly by our IT customers, there is no way that we can "guess" what the problems are that the software is intended to solve. If the software project is important, then IT customers must allocate the necessary time to properly articulate the requirements.
- Achieving Venus/Mars Harmony: As with any relationship, understanding the other's viewpoint is critical. When developers say that they already "know the business" it means that they are familiar with the general processes and procedures, not that they know the detailed requirements to be supported by particular software. Early, targeted conversations to clarify and confirm requirements are fundamental to ensuring the software will support the activities intended.
- User Acceptance Testing
- Venus Viewpoint: User acceptance testing is really a misnomer-we're the "users" and yet the developers keep all the rules about what they perceive to be a "good" user acceptance test plan. We've had a series of meetings among ourselves to find out what they might really be after, but it always seems that we come up short-and then the business priorities get in the way.
- Mars Viewpoint: The project activities were clearly laid out at the beginning of the project and the IT customers assured us that they would allocate the time and resources to properly "test drive" the system before it goes into production. However, when we took a look at their acceptance test plans, they were a bit of a joke-there are going to be a lot of latent defects if they don't get more