| |
Quality System

Software development is often misconceived as an art to effectively capture the requirements of
the user and try to produce the program in due time. The methods used can be quite
haphazard, lacking in well-defined procedures. Although, many other developers continue to
produce software in this non-professional manner, we at Genesys InfoCAD follow
very strict software engineering principles in our development
processes. The development life cycle can be viewed as several
software engineering processes: requirements analysis, detailed design, program
development, program testing, implementation and training. Each process
has its required quality control, document control, and other project
management and scheduling requirements. Since these steps of software
production are very similar to the manufacturing or engineering of other
products, the term software engineering has been used to describe the
use of engineering principles in the development of software. We at
Genesys take pride in providing "Custom Engineered Software".
To ensure a quality
software product, Genesys strictly adheres to software engineering
principles for each software development process. We place a strong emphasis on quality assurance by
exercising stringent testing and review procedures for each of our
software and work products. Our customers can, therefore, count on a
quality, well-designed, user-friendly product done right and delivered
in due time.
A description of the method to achieve a
quality product in each of our business functions or processes is
described below:
-
Quotation and
Proposal Process. In this process we try
to get the requirements of the customer and provide a detailed
proposal with the following information:
-
Requirements Specification a list of
the forms, reports, and features required by the client.
-
Rough Design this will show some of
the important functions screens. We usually capture forms similar
to our previous customers for the client to see.
-
Project Completion Timetable a
schedule for each phase of development.
-
Price Quotation a list of the
functions and price.
-
Terms and Conditions this will
include the licensing information and payment terms.
-
Analysis and Design
Process. This is the first development
process for the custom software where we study individual
requirements of each client. While most other software companies do
not give much attention to the analysis and design phase, we
consider it the most important one. We prepare a detailed document
summarizing the following for our clients to capture their exact
requirements:
-
Requirements Specification contains
the points covered in the contract usually and the features of the
software to be delivered. Both functional and non-functional
requirements are listed
-
Use Case description this captures
what steps are done by each department in order to get the work
accomplished in plain language so that it is easy to understand.
-
Screen Design shows the menu, each
data entry screen design, report design. We believe this is the
information our clients understand very clearly and we focus on
this.
-
Process Diagram - shows the processes and, thus, forms to be done by
each department.
-
E/R Diagram with each screen design
we show the tables involved and their relationships via the
entity-relationship diagram.
-
Software
Development (programming) Process.
This process is often the most time consuming because it involves
the actual programming of the software. We divide a project into
small tasks consisting of a form or a report for just 1 programmer
to work on. The procedures we use for quality assurance in this step
are:
-
Task Cover Sheet this sheet
is prepared by the project manager with a designated
developer for each task and a tester for that task. This
sheet includes the special points to test the software task
which could be a special attachment if too long. It also
includes the time log for the task, so that the total hours
spent on that task can be logged.
-
Task Schedule. A project
schedule is made up scheduling each task (a form or a
report) in the project. We maintain a complete schedule of
the project in a form as shown below to keep track of the
deadlines
-
Daily Work Hours Registry
Sheet summarizes the daily work of each person. This
information is used to update the project schedule as well,
since it provides the project manager with a revised start
and completion time (resource requirement) for each task
-
Standard Coding Guide Book
we have developed a standard coding for languages including
Visual Basic, Delphi, and ASP. The first step we take when
we must develop in a new programming language is to setup
this standard coding guide. We make sure that each
programmer closely follows this programming scheme so that
we have a uniform source code that all our programmers can
understand. This assures that in the future when changes may
be needed for the software, we can let any of our
programmers do it, since all can read each others code in
standard form. Issues covered include variable naming
convention, table field naming convention, required
functions in each type of form, using template forms (simple
form, 1 line item, multiple tabs/ line items),and required
user interface. To our customers this ensures a uniform
interface and software that has all the desired features
every time
-
Standard Test Sheet this
is a test sheet containing the standard points to test for
every form and report. It covers both the features visible
to the customer and the programming information. For
example, it covers examining that the table field names are
appropriate, variable names are long, function names are
correct. Thus, we also check that the programmer adheres to
the Standard Coding Guide Book
-
Task Test Sheet this test
sheet is specifically for the current task. It may include a
test case if the form is complex to ensure that the software
programmer does the testing first. If the form is simple
enough the tester does the testing without a specific test
case.
-
Configuration Management (CM)
Sheet. Here all the software components (usually forms
and reports) that have been tested are kept with versions.
All our modules must have pass the configuration management
before delivery to the customer, which means a tester has
approved it and it is ready for release. New software
as well as change requests must go through the CM procedure.
-
Development Status Report
for Customer. We prepare a monthly status summary for the
project to the customer. This is done after the software
development work has begun until the software is completely
delivered.
-
Project Management Process.
We have developed software for our own use to cover our project
management needs. This project includes the project information
entry, each task entry, project scheduling, project costs,
invoicing, receipt, and payments. It provides us with information on
the exact project cost so we can monitor our bottom line. This
software is summarized in the next section.
-
Software Implementation and Maintenance Process
-
Site Visit Form this form is
completed each time we visit the customer site. It requires the
customer signature as well.
-
Work Request / Bug Report Form we
fill this form when we get a bug report or a change request. The
exact format of the form is not necessary, since we often do this
electronically. However, it is important that the form number be
logged and tracked for progress.
-
Change Request Attachment Form
after receiving a change request, some analysis of the needed
changes may be needed and a task description form is generated.
Sometimes, the change request is summarized in the attachment form
as well.
-
Customer Communication Form all our
communication with the customer is also logged and filed. Each memo
and minutes of meetings are sent out after any important
development.
-
User Training Manual this includes
a short manual describing a training session with sample training
data set up just for the training and implementation phase of the
software.
-
User Manual this describes the
entire software with the interface description, menu, each form, and
answers to questions on "how do I".
-
Technical Manual this describes the
software for the programmer. We include a screen dump of each form
along with the tables in that form and their relationship expressed
as E-R Diagram. At the end of this is the data dictionary for the
entire projects database. We maintain this manual all along as the
software may have changes during the implementation and maintenance
phases. When this document has too many hand-written changes, for
example, due to many added fields by the user, we print a new
version.
-
Project Completion Document - This is
the same as the Project Status Document shown above, but used to
close the project.
-
Maintenance Contract This is a
contract detailing the start and end dates of the maintenance. It
also shows the price and the servers covered in the maintenance
agreement.
|
|
|