Products and Services

We established a formal approach to application development prior to the availability of modern "drag & drop" development tools. We still use the same approach, with modern tools, when developing Client Server or Internet applications and believe in doing everything properly the first time.

The results are well designed, maintainable, applications which meet, or exceed, the expectations of our customers.

The fundamental steps in our software engineering process are described below.

Consultation

This is a service which is frequently of value on it's own. Many customers have internal resources they prefer to use for development projects but still find value in discussing possible architecture and strategies with us.

We also have significant experience providing mentoring to customer-employed development teams and have assisted customers in recruiting and establishing new development teams.

We pride ourselves on the satisfaction we have delivered to customers who recognized that they had a problem that could not be solved without automation, but had no idea how to proceed, or had been told that what they wanted was not possible.

Project Management

Every project requires management. We are expert developers and pride ourselves in our ability to complete projects on-time and within budget.

We believe that projects with multiple, small, easily obtainable milestones are the most successful.

Early identification of the critical path and frequent reporting of all key resources is vital.

Projects based on poor architecture or which attempt to meet unrealistic management or end-user expectations are doomed to failure.

Requirements Analysis

The first step in the development of any system is to establish and document the requirements of the system and scope of the system.

Feasibility Study

A feasibility study should be undertaken for large projects. This will typically consist of determining and quantifying the anticipated financial benefits of implementing the system, be they reduced overheads or increased revenue.

This anticipated benefit is used to establish a project budget. A project will typically be abandoned if the implementation costs far exceed the cost benefit.

Functional Design

This consists of the formal documentation of the requirements. Modern development tools make it possible to include prototypes of screen and report layouts in this document.

We usually make use of Joint Application Design (JAD) sessions where we meet with the design team (typically a department manager and several future users of the system) and present our current revision of the Functional Design.

Procedures and principals are explained, sometimes with the help of small on-screen demos. Revisions and suggestions are documented.

We then prepare a more accurate version of the Functional Design and repeat the process.

An estimate (for large projects) or fixed price quotation will be prepared based on the Functional Design. We require formal written acceptance of the Functional Design from our customer before proceeding.

Physical Design

When a team of developers is used or when our customer wishes to play an active role in the physical implementation of a system we will prepare a Physical Design.

This document describes the proposed objects, interfaces and other physical elements of the system.

Development

Obviously the actual development is a mandatory portion of any project.

Testing

We prefer our customers to establish a test team (or person) for each project.

Each revision is tested by the developer prior to being release to the team.

We recommend, and provide, formal load testing for applications which are expected to support a large number of concurrent users.

Documentation

We usually provide both user documentation and maintenance programmer documentation. Some or all of the following may be included:

  • User Documentation
  • User Manual
  • On-line Context Sensitive Help
  • Maintenance Programmer Documentation
  • Architecture Overview
  • Data Dictionary
  • Object Model
  • Flow Diagrams
  • Maintenance Procedures

Training

We usually train a designated team of users empowering them to train any future users of the system.

We can meet any training requirements.

Implementation

The implementation of a new system involves not only the installation of hardware and software but also the revision of company or departmental policy and procedures to ensure that the maximum benefits are derived.

During the Functional Design we will recommend performance indicators that will be used during implementation to measure the effectiveness of the system.

Maintenance

Requirements and business rules change. This leads to on-going maintenance and improvements on all useful systems.

We design our systems to be as open and flexible as possible, making maintenance as easy as possible.

The importance of a sound design becomes apparent when it is time to make changes.

Support

Unfortunately things do not always work the way they should. We are available to assist with the recovery of damaged databases and other catastrophes.

We also provide on-going end-user support as well as administrative functions, via remote access, for many of our customers.