Daddy's Technology Notes

Read, think, and write down the notes.

Monday, October 10, 2005

Customer oriented development

Notes from chapter 10 of "Rapid development" by Steve McConnell

1. Customers' importance to rapid development

Top 3 reasons of delayed projects:
  1. Lack of user input;
  2. Incomplete requirements specifications;
  3. Changing requirements and specifications.

2 main reasons that pay attention to customer relations:

  1. Good relations with customers improve the development speed;
    1. Improved efficiency
    2. Less rework
    3. Reduced risk
    4. Lack friction
  2. Good releations with customers improve preceived development speed.

2. Customer-oriented practices

  1. Planning
    1. Select an appropriate lifecycle model, keep the customer with steady, tangible progress update.
    2. Identify the real customer.
    3. Establish an efficient method for interacting with the customer (single point of contact).
    4. Create a win-win project.
    5. Manage risks.
  2. Requirement analysis
    1. The challenge is to collect the real requirements;
    2. sometimes real requirements conflict with collected requirments;
    3. More often, they are simply missing;
    4. Customer tends to interpret the requirement broadly, and the developers is opposite.
    5. Case: **visual c++ (lower the switch cost to c++) against borland c++(expert c++)
  3. Design
    1. Lack of design flexibility was the weakness of the design
    2. Employ design practices that allow customers to change their minds occasionally.
  4. Construction
    1. Write maintenable and modifiable code in order to responed to user's change;
    2. Progress monitoring practices;
    3. Select a lifecycle model allow customers with steady, tangible progress update.

3. Managing customer expectations

Many problems in software development, especially speed, arise from unstated, unrealistic expections.

  1. Customers assumes that the development is as easy as they preceive, such as drag and drop documents from one application to the other on win 3.1, it is easy to them, what about the implementation?
  2. Customers assumes that you understand all of their requirements without having to explain to you.
  3. One important task is to educate the customers during the development.
  4. With inflated expectation, developers look like losers even when they do a good job. Who inflate expectations damage their credibilit, undermine their working relationships with customers.

Further reading:

Naomi Karten, Managing expectations

0 Comments:

Post a Comment

<< Home