 |  |
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:
- The Analysis/Design Group
- The Interface Group
- The Internals Group
- The Documentation Group
- 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.
|