At my company I have seen a lot of bad software development practices over the years, so I have created a set of software development guidelines to help establish a set of best practices and baseline software requirements. I am publishing a series of experts from those guidelines here so that I might get some useful feedback that will help improve them.
Platform Specification
The platform specification, sometimes referred to as system requirements, should clearly describe all of the technologies that will be utilized in order to implement the solution. The specification should include the programming language, the development tools to be used and the client and server systems to be developed for.

If there is any client side requirement that falls outside of the existing standards then the client services group needs to be consulted prior to implementation. And, likewise, if there is a server requirement outside of the established standards then the server group must be consulted. The client and server groups have final judgment on which technologies are allowed on their respective systems.

Software Packaging Requirements
The software deployment requirements must be specified, approved, and implemented by the client services group.

External Software Requirements
All external software dependencies, such as required APIs, frameworks, controls, libraries, or web browsers, must be detailed. If separate installation packages are required then these need to be discussed with the client services group.

The license agreement and cost of these dependencies must be fully explained. The client services group of IT may refuse to deploy any piece of software if it has concerns about the software’s legality.

Hardware Requirements
The minimum and recommended hardware requirements should be documented, and should include such details as: architecture, processing power, memory, secondary storage, and display adapters.

All of these hardware requirements should fall within the existing Company standards. A software application cannot require the use of hardware that is beyond the capabilities of the current standard hardware without express written approval from the client services group. Furthermore, if a software application will not run on hardware less capable than the current standard, the client services group must be consulted to evaluate the impact on older deployed systems.

Tags: Blogger Guidelines Programming

Published: 2008-05-12