Custom Development
System enhancements are any additions or changes in functionality of the base system in order for it to operate effectively in an organisations environment. System enhancements include missing system functions, additional reports, customised screens, special interfaces and conversion programs. It is not a system enhancement (in this context) where such additional functionality is achieved using the standard facilities of the package such as a report generator or screen customiser.
Software warranties are usually invalidated if any changes are made directly to a vendor’s software. They can also make implementing future releases costly and time consuming. Where possible, system enhancements should be developed around the standard system programs and should take advantage of any software user exits.
Timing should be considered when developing system changes. For instance, it is not necessary to prioritise a needed annual report prior to implementation if that report is needed for another twelve months.
Even if the programming changes are being made by the vendor or an outside contractor, it is important that the project team fully understand what actual code changes are made. This will help in pinpointing problems if processing errors occur.
Example approach
The work may encompass the following tasks:
- Prepare Program Specifications
- Prepare Programming Environment
- Program and Document System Changes
A summary of the typical skills required is as follows:
Program Specifications
On occasions, a project team will find the need to generate program specifications. If there is no specific methodology in use, the following example task list could be used:
Objectives:
- Identify precise requirements for custom programming work.
- Collect sufficient functional and technical documentation to enable the identified system changes to be correctly developed.
- Finalise the sources for developing the system changes.
Hints:
- Software warranties are usually invalidated if any changes are made directly to the vendor’s software. They can also make implementing future releases costly and time consuming. Where possible, system enhancements should be designed around the standard system programs and should take advantage of any user exits.
- Most software vendors have significant development resources and can be contracted to design and develop needed enhancements. If a contract for custom enhancements is negotiated with the vendor, it should clearly state who has ownership of the enhanced software and if the vendor will support the enhancements in future software releases.
- In some cases, the vendor will agree to support enhancements they did not develop. The stipulations usually include that they design the changes, oversee the development and have ownership of enhancements made.
- If available, the Implementation Strategy Report developed during the evaluation and selection process can provide a starting point for determining the detailed system enhancement requirements for the new system.
Steps:
Review the Organisations requirements and System Change Requests for software changes and conversion programs and finalize how the changes will be implemented. Document and agree these details in a technical Implementation Paper. Possible approaches include:
- Modify vendor software
- User exit programs
- Stand alone programs and system modules
- Report writer and report shells
- Additional data elements
If the project team are undertaking the work directly, prepare program specifications, for example:
- Program Specification Checklist
- System Change Request
- System Flow Diagram
- Program Structure Chart
- Data Element Description
- Data Base and Master File Layout
- Screen Description & Layout
- Screen Fields Worksheet
- Report Layout
- Source Document Description and Layout
- Source Document Fields Worksheet
- Summary of Test Conditions
Finalise approach and resources for developing system changes and prepare System Enhancements Worksheet
- Consultant
- Organisation's MIS
- Software vendor
- Other outside contractor
Prepare cost estimates and justification, if needed
Finalise implementation priority for change specifications
- Critical to initial implementation
- As time and staff are available
Acquire source code of vendor’s software and technical documentation, if needed and available. (Vendor’s source code will not necessarily be available unless agreed in the contract with the vendor.)
Tools:
- Example: Program Specification Checklist
- Example: System Change Request
- Example: System Flow Diagram
- Example: Program Structure Chart
- Example: Data Element Description
- Example: Data Base and Master File Layout ** Example missing
- Example: Screen Layout
- Example: Screen Fields Worksheet
- Example: Report Layout
- Example: Report Fields Worksheet
- Example: Source Document Layout
- Example: Source Document Fields Worksheet
- Example: Summary of Test Conditions
- Example: System Enhancements Worksheet
Prepare Programming Environment
Objectives:
- Make any needed preparations for developing the system enhancements
Hints:
- For consistency, if changes are being made to the software package, it is recommended that the vendor’s naming conventions and programming standards are followed.
- System development controls should be established and maintained, including:
- Separate development, testing and production libraries
- Formal procedures for moving programs between libraries
- System Error and Resolution logs
- Formal program signoffs.
Steps:
- Review the coding standards and conventions used by the vendor and establish programming standards
- Install development equipment and tools
- Create development libraries
- Load source code into development libraries
Tools:
- (None)
Deliverables:
- (None)
Program and Document System Changes
Objectives:
- Program, unit test and document the system enhancements
Hints:
- It is important to document thoroughly any changes made to provide backup and reference.
Steps:
- Conduct structured walkthroughs of program specifications with development team, revise program specifications as needed and prepare System Enhancement Checklist
- Program custom system enhancements
- Define test conditions and expected results
- Create unit test environment and prepare test data
- Execute unit tests, validate results and log program errors
- Correct program errors and retest as needed
- Document system enhancements, as needed
- Program Specification
- Interim change requests
- Final program listing
- Unit test plan
- Final test results
- Unit Test Issue log (completed)
- Update vendor documentation to reflect system enhancements
- Review System Enhancements Worksheet and note any differences in development costs or schedule
- Prepare System Enhancements Signoff Letter, if needed
- Review enhancements with client sponsor and obtain approval
- Load programs into the system test libraries
Tools:
- System Change Requests
- System Enhancements Worksheet
- Program Specifications
- Unit Test Issues Log
- System Enhancements Checklist
Deliverables:
- Enhanced application software and documentation
- System Enhancements Signoff Letter
No comments:
Post a Comment