What are five common solutions to software development problems?
1) Solid requirements - clear, complete, detailed, cohesive, attainable, testable
requirements that are agreed to by all players. Use prototypes to help nail
2) Realistic schedules - allow adequate time for planning, design, testing, bug
fixing, re-testing, changes, and documentation; personnel should be able to
complete the project without burning out.
3) Adequate testing - start testing early on, re-test after fixes or changes, plan for
adequate time for testing and bug fixing.
4) Stick to initial requirements as much as possible - be prepared to defend
against changes and additions once development has begun, and be
prepared to explain consequences. If changes are necessary, they should be
adequately reflected in related schedule changes. If possible, use rapid
prototyping during the design phase so that customers can see what to
expect. This will provide a higher comfort level with their requirement
decisions and will minimize changes later on.
5) Communication - require walkthroughs and inspections when appropriate;
make extensive use of group communication tools - e-mail, groupware,
networked bug-tracking tools and change management tools, intranet
capabilities, etc.; insure documentation is available and up-to-date - preferably
electronic, not paper; promote teamwork and cooperation; use prototypes
early on so customers' expectations are clarified.