Software development best practices
One form of documentation that sometimes gets neglected is impact analysis. A new application doesn't just sit in pristine isolation from all of the software. It's important to know, or at least have a pretty good idea, how the application under development may impact established software as well as business operations.
Documentation blends into goal setting. Things such as timescales, budget and functionality must be planned out clearly to enable software development to begin. The most important goal being to meet the needs of stakeholders within the framework of resources and time. This is where development can sometimes fail through over-optimism, or goals that range outside of budget constraints.
Managing expectations is an important part of software development. Goals which cannot be attained with the budget and timeframe available, should be renegotiated and additional features may have to be put off to later versions.
Change is inevitable, even with good documentation and goal setting. So it's important to be flexible. Changes in stakeholder requirement or changes in resources can cause delays and cost overruns. The best way to handle these is to keep the development process incremental so that modules can be frequently tested, then assembled and tested again. This also has the advantage of maintaining good contact with stakeholders as new portions of the application become available for test and comment.
Above all, the best software development practice is to keep all the various individuals and stakeholders in good communication, so that agreement can be maintained. Without good communication you cannot measure success or cope with problems. You can’t even maintain agreement on the software under development.
Building the best software requires a well organized team where every subgroup understands what it needs to do and can carry out those actions.