Full Life Cycle Software Projects


full-life-cycle-software-projectsProject Management

This is not so much a phase as an on-going activity throughout the project life cycle. The project manager has the responsibility to ensure that communications with both the customer as well as the project team members is occurring on a regularly scheduled basis. Examples of this communication are:

  • Bi-weekly status meetings
  • Peer code reviews
  • Execution of acceptance test plans, etc.

Another responsibility of the project manager is to ensure that any project milestones are mutually identified and tested for completion with the customer. A milestone completion signoff sheet will be provided for both parties to confirm completion.

The byproduct(s) of this activity include:

  • Project status reports
  • Signed Requirements document
  • Signed Design document
  • Signed Acceptance Test Plan
  • Signed Milestone Completion Sheet(s) – if project milestones exist

Document and Code Management

Throughout the project life cycle, various documents and code modules will be created that need to be managed. Versona Systems uses Microsoft’s Visual SourceSafe for both version control and as a single repository for such documents. This server is located behind Versona Systems’ corporate firewall (Cisco PIX) and only remotely accessible via a secured VPN connection.

Each project team member must ensure that every piece of code/documentation that they are working on is properly checked into/out of the SourceSafe repository.

Requirements Definition / Functional Specification (if not completed by customer)

This is the first step in the construction of a software system. The main purpose of this phase is to define what the system will do. Also important in this phase is to establish the overall goals and objectives for the system, bearing in mind that requirements should be testable and traceable in later development stages.

The byproduct(s) of this phase include:

  • Functional Spec (or could be Proposal if requirements are known and can be documented in the timeframe necessary for proposal submission)

System Design

This next step in the construction of a software system establishes how the system will accomplish what the Functional Specification defines. It is here that the overall vision for the system is established, including hardware selection, system software selection, network design, interface specifications, and database design.

The byproduct(s) of this phase are:

  • Design Spec
  • Architecture Definition Diagram(s)
  • Process Flow Diagram(s)
  • Database Design (ERD, Annotated Data Dictionary)

Module Software Development and Test

Here is where we begin to develop the individual software modules that make up the system. Each developer is responsible for thoroughly testing his/her module when completed. Also performed at this time are peer code reviews. The project lead is responsible for defining the various test scenarios. It is the job of the support staff to actually perform code reviews on each developer(s) module before final system integration can begin.

The byproduct(s) of this phase include:

  • Completed software modules
  • Peer code reviews of each software module
  • System Integration

In this phase we put everything together to perform large-scale, system-wide testing. This is where we look for incompatibilities between hardware and software, network throughput, database issues, etc. At the conclusion of this phase, we will have completed a Systems Acceptance Test to verify each of the requirements as specified in the Functional Specification.

The byproduct(s) of this phase include:

  • Completed (Signed) Acceptance Test Plan

System Regression Testing

This type of testing is performed on enhancements to existing programs. It is performed to ensure that no existing functionality is inadvertently compromised while implementing the upgrade. We are trying to flush out any system deficiencies due to memory leaks, processing bottlenecks, network limitations, etc. It also has the benefit of providing the support staff with “hands on” experience with new code prior to any installations in the field.

The byproduct(s) of this phase include:

  • A thoroughly tested system

System Deployment

This phase is where project management and customer communication skills are needed most. The project manager, while busy managing customer expectations throughout the project’s life cycle, must really shine here. Now he/she becomes a logistics magician, teacher, coach and cheerleader all in one.

Deployment of large-scale systems typically includes geographical issues (and sometimes cultural, if international in scope), delivery issues, training issues, scheduling issues, installation issues, etc. The key success factor here is constant communication with the customer. The deployment team (Versona Systems and customer personnel) must act as one unified team. Everyone must always be on the same page for each aspect of the deployment.

The byproduct(s) of this phase include:

  • User Training
  • User Documentation
  • Remote System Staging (if required)
  • Installation
  • Optional On-site Startup Services

On-Going System Maintenance

Versona Systems can work with your team well into the system’s life cycle to help provide on-going support. This support staff, which is typically separate from the development community, can manifest itself in any of several ways: round-the-clock support personnel to assist the user community, formal help desk creation, change order and system enhancement processes, etc. We can do as little or as much as makes sense to you!

The byproduct(s) of this phase include (all are optional):

  • Enhancements and Change Order Procedures
  • Bug-Fixes
  • Help Desk

If you’d like to know more about Versona Systems capabilities in project life cylce, please contact 713-654-8200 or Sales@VersonaSystems.com.