HomeProductsServicesContact*Specials*
The Software Development Process

We have spent a significant amount of time over the last eight years refining our software development process. On this page, we will briefly explain how we organize our work and some of the resources we utilize to get projects done on time and within budget.

First Step: Create a Plan

    No one would begin building a house based on a sketch on the back of a cocktail napkin, but it is surprising how many software projects begin with almost no forethought. As a result, many software projects are late, more expensive than planned, and out of sync with users' needs.

    Thus, our first step is to create a set of detailed specifications and a thorough implementation plan. When we begin work on a new project, one of our senior systems analysts meets with the client to get a feel for the nature and scope of the project. He or she then assembles a team to create the specifications and implementation plan. Once the client has accepted the specifications, we begin programming.

The Development Groups
    Our company's staff is divided into five groups:

    1. The Analysis/Design Group
    2. The Interface Group
    3. The Internals Group
    4. The Documentation Group
    5. The Testing Group

    When we begin a project, we evaluate the experience of our available staff members and assign to the project those with the most relevant experience (both for the type of software and the industry). We create one team from each group, and the five teams work together to finish the project on time and within budget.
The Analysis/Design Team

    This team creates the specifications for the project and, with input from the other teams, develops the implementation plan. They are responsible for ensuring that the project meets the client's business needs, and they work with the client to revise the plan if any changes need to be made while the work is in progress.
The Interface Team
    This team designs and programs the software interface, including screen layouts, menu structures, reports, etc. The staff members normally selected for this team live in the country in which the software will be used and are native speakers of the end users' language.
The Internals Team
    This team designs and programs database structures, software algorithms, data processing, and the rest of the "behind-the-scenes" work that the program does. This team is usually staffed by our most experienced programmers.
The Documentation Team
    This team writes the user manual, online help, and the text of any dialog boxes or error messages displayed to the end users. Let's face it: programmers usually make very poor technical writers, so we employ experienced technical writers. Most of them have non-technical degrees, such as English or Journalism. Although they don't write code, they are much better suited to write the manuals. This team is usually staffed by native speakers of the end users' language.
The Testing Team
    This team is responsible for designing a test plan, creating test data, and conducting complete testing of the software. Testing is a critical part of the development process, but end users never really notice high quality testing. They only notice its absence, as they curse the flaws in the software that were not discovered by the developers.
Resources
    Our most important resource is our employees. To make the most effective use of their talents, we use version control software (which helps us manage the source code in a multi-developer project), project management software (to keep all aspects of a project moving at a steady pace), and a defect tracking system (which helps the testers document flaws and helps the programmers to correct them).
©2000 Information Management Systems, Inc. All rights reserved. Send questions and suggestions to webmaster@infoms.com.