What are five problems in software development process:
- poor requirements - if requirements are unclear, incomplete,
too general, and not testable, there will be problems.
- unrealistic schedule - if too much work is crammed in too little
time, problems are inevitable.
- inadequate testing - no one will know whether or not the program is
any good until the customer complains or systems crash.
- featuritis - requests to pile on new features after development
is underway; extremely common.
- miscommunication - if developers don't know what's needed or customer's
have erroneous expectations, problems are guaranteed.
What are five solutions to software development process:
- solid requirements - clear, complete, detailed, cohesive, attainable,
testable requirements that are agreed to by all players. Use prototypes
to help nail down requirements. In 'agile'-type environments,
continuous close coordination with customers/end-users is necessary.
- 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.
- adequate testing - start testing early on, re-test after fixes or
changes, plan for adequate time for testing and bug-fixing.
'Early' testing ideally includes unit testing by developers
and built-in testing and diagnostic capabilities.
- stick to initial requirements as much as possible - be prepared to
defend against excessive 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, work closely with customers/end-users to
manage expectations. This will provide them a higher comfort
level with their requirements decisions and minimize excessive
changes later on.
- communication - require walkthroughs and inspections when
appropriate; make extensive use of group communication tools -
groupware, wiki's, bug-tracking tools and change
management tools, intranet capabilities, etc.; insure that
information/documentation is available and up-to-date - preferably
electronic, not paper; promote teamwork and cooperation; use
protoypes and/or continuous communication with end-users if possible
to clarify expectations.
Edited by moderator - 06May2007 at 10:17pm
Post Resume: Click here to Upload your Resume & Apply for Jobs |