Introduction
First of all it is necessary to distinguish between commercial and
custom software. Commercial software is that which you would
purchase in a shrink wrapped package from a software development
company. Custom software on the other hand is written for you by
a professional programming staff to address needs that are unique
to your business.
In the area of software development and software engineering, it
is essential to establish a common approach for building
information systems. This will ultimately result in lower
development and maintenance cost and yield higher quality
software. In order to establish this common approach, there are
many obstacles to overcome in terms of the Business, Technology,
Tools, Technique and other system development issues.
In an effort to address the most pertinent data processing
concerns, Netmation adheres to a software development methodology.
The results of any software development effort should produce at a
minimum the following:
- A product that satisfies User requirements
- A product that was developed at an acceptable cost
within a reasonable schedule
- A product that is maintainable at a reasonable cost
- A product that does not produce erroneous results
- A product that operates within an acceptable set of
specifications, such as performance and ease of use
- Documentation describing the design and operation of
the software.
There are numerous approaches which may be employed when
establishing a common approach for system building throughout the
entire methodology. Four of the most frequently used approaches
are:
- Information Engineered Approach
- Data-Driven Approach
- Process-Driven Approach
- Traditional Structured Approach
Information Engineered Approach
Information Engineering is an approach to systems development in
which an interlocking set of formal modeling techniques and CASE
tools are used to develop a comprehensive business Knowledge Base
which contains the information needed to develop and maintain
computer systems. The primary characteristics of an Information
Engineered Approach are:
- Strong Emphasis on Data Sharing
- User Driven Approach
- Emphasis on Business Analysis
- Emphasis on Automation
- Graphics Orientation
- Strategic Foundation
- Focuses on Developing a comprehensive Knowledge Base
- Utilizes the Divide and Conquer Approach.
Data-Driven Approach
A Data-Driven Approach is one in which data and their inherent
structure are analyzed independently from the application and are
used to drive system development efforts. Data Models are used to
define Business data in a manner that satisfies Enterprise-wide
Data requirements and promotes data sharing.
The most important aspect of a Data-Driven approach is that the
Data is used to structure or drive all development work. This
approach is considered to be feasible by many because the data and
their relationships are more stagnant and less susceptible to
change. The definitions of data as represented in the data model
forms the foundation for stable data bases and system integration.
Process-Driven Approach
The Process-Driven approach is functionally oriented which
inevitably leads to systems and files that are biased toward
specific business problems. This approach may be desired in
certain business scenarios, however it usually offers limited
flexibility and/or integration capabilities.
Traditional Structured Approach
The Traditional Structured approach may be categorized as a "Top-
Down" approach for system development. This approach usually
breaks complex loosely-defined projects into well-defined
controllable projects. Some of the Key characteristics of the
Traditional Structured Approach are:
- Larger Project Teams
- Longer Project Duration
- Typically, one large project with complex scope
- Programmers Translate Business Needs into System
Specifications
- Paper-based specifications and manual documentation
- More emphasis on Coding and Testing
- Technology Driven
- Volumes of Narratives, few diagrams
Maintenance
Another area of ongoing concern is Maintenance. IBM Systems
Journal reports that the industry is becoming increasingly more
concerned with uncontrollable Maintenance Problems. They further
reported the results of a survey in which 149 managers with
programming staffs ranging from 25 - 800 indicated that
Maintenance Tasks (program fixes/modifications) represented 55 to
95 percent of their work load. IBM System Journal also reported
estimates of $30 billion are spent each year on maintenance ($10
billion in the United States), with 50 percent of the DP budgets
of most companies going to maintenance and that 50 - 80 percent of
one million programmers or programming manager's time are spent on
maintenance.
A Massachusetts Institute of Technology study indicated that for
every $1 allocated for a new development project, $9 will be spent
on maintenance for the life cycle of the project. Most
organizations have come to the conclusion that these statistics
are unacceptable and that a solution must be found.
A System Development Methodology supported by Software tools (e.g.
CASE), significant promise in alleviating many of the Maintenance
Problems. Datamation (July 1989) reported that Using
Methodology/Case tends to result in a shift in development time to
the front-end (e.g. Planning, Analysis & Design) of the
development cycle. Moreover, its use significantly lowers the
time spent on writing code and maintaining software.
Project Work Plan
All Netmation development project adhere to specific detailed work
plans. This supports the work breakdown structure and scheduling
requirements. The work plan will include estimates and budgets and
the work breakdown structure. The work plan will have access to
historical project costs and estimates which will support the
estimating functions. Moreover, by utilizing standard estimating
bases and costs, the ability to generate accurate control
estimates and budgets will be possible.
Several of the key objectives and benefits of Project Planning and
Work Plan creation are as follows:
- Improving capabilities to provide more accurate
estimates and budgets to minimize cost overruns and improve
client satisfaction.
- Decreasing the time and cost of defining a project
through utilization of historical project/design data and
standardized information such as activities, procedures and
deliverables.
- Decreasing the time and cost of planning a project by
providing application systems and integrated data bases
which support the business functions and improve the overall
work flow.
- Improving scheduling and estimating capabilities
through enhanced information on vendors' prices and lead
times. Access to vendor information will not only benefit
the planning effort, but will also pay-off during the
construction phase.
Phased Approach Overview
Quality Assurance is a review process which is performed in each
phase of a project. The reviews take place at the front-end and at
key check points and deliverables to verify that quality is built
into each step of the development project. The establishment and
monitoring of milestones for these projects will ensure successful
and timely implementation of these systems. Once the methodology
is selected, the specific activities and milestones can be
finalized.
Each design, implementation and installation project of
applications systems development will have the following major
activities/milestones.
Phase 1 - Data Integration Requirements
Define Data Requirements
Define integration requirements for related applications.
Review Present Systems
Review the current application systems identified in the project
descriptions. This allows for a more detailed analysis of the
applications to ensure/confirm decisions made during the Long
Range Information Systems Plan. Involves defining the functional,
technical and operational requirements.
Construct Logical Model
Depict the new systems' functions and the flow of data between
them.
Design Logical Relationships
Develop relationships that are required to support the functions
of the new systems data base.
Evaluate and Select Software
The current systems will be evaluated against third party software
and a final decision made whether to custom build the new system,
acquire a software package or enhance the system.
Functional Specifications Report
Summarization of the overall design effort which is carried over
into the detail design and programming tasks of the Implementation
phase. Prototyping the proposed system may be used to help
develop a specification report or serve as the preliminary version
of the implemented system.
Short Term Improvements
Will be defined and implemented as appropriate.
Quality Assurance
Review the logical data model including data definitions and
relationships between data for correctness, completeness, and
consistency. This can be best achieved through prototyping with
end-user participation and review.
Phase 2 - Design
General Systems Design
Evaluate the technical design and implementation alternatives and
select the best approach for the new system. Develop a user view
of the system that includes the preliminary design of screens,
reports, controls and procedures.
Define Process Functions
Provides a view of the processing requirements to support the
design. Determine strategies for implementing the new system in
the client's organization.
Issue Technical Design Report
Summarizes the overall technical design including the technical
architecture, data base, testing and conversion approach and
resource requirements.
Security/Control Requirements
Defined for all applications and data bases.
Implementation Schedule
This is a work plan and schedule for installation which includes
benefits and cost estimates. This plan is presented for executive
review for approval to proceed with system implementation.
Quality Assurance
Verify and validate the physical systems architecture, external
design (data base, screens, reports), and the implementation
strategies. Validation of performance requirements of the new
system will also be done.
Phase 3 - Implementation
Detail Design
This includes finalizing the user view of the system and designing
in detail the required telecommunications, the system controls and
procedures, and the physical architecture of the data base. Also
includes constructing a mid-level structure chart of the system's
internal architecture to help identify major programs or program
groups.
Programming
This is performed utilizing the detail design output.
Develop Procedures
This provides support on user procedures, training materials and
program documentation.
Conversion Preparation
This is performed to plan for the conversion of data and
information to be maintained in the integrated data bases.
Systems Testing
This ensures that the complete application systems and integration
requirements have been tested, including user testing and
procedures.
Quality Assurance
Verify and validate the systems test plan, acceptance test plan,
training plan, data conversion plan, and operations plan for
correctness, completeness, and consistency.
Phase 4 - Installation
Training
This includes coordinating and conducting the necessary training
for engineers and support personnel for each installation.
Data Conversion
This creates and/or converts all data necessary for the new
system. Validates the data and maintains it until the system is
placed in production.
Post Conversion Review
This allows the systems developers to review the effectiveness of
the implementation effort.
Quality Assurance
Ensure all implementation plans have been executed and any client
concerns have been addressed.