Despite the availability of good canned software packages, many organizations develop their own software because their requirements dare unique or their size and complexity necessitate a custom package. Developing custom software is difficult and error-prone, and it consumes a great deal of time and resources. The most difficult hurdles a company must overcome to develop quality software are lack of time, the complexity of the desired system, poor requirement and systems planning, inadequate communication and cooperation between affected departments and users, lack of qualified staff, and poor senior executive support.