PIT Software Development Process

A clearly defined process is vital for successful project execution. A good process results in improved productivity and quality which results in fully functional software, within stipulated budget and on time.

To this end, we have created an internal Software Engineering Process Group (SEPG), which defines, drives and constantly improves the internal process. We simply call the process the PIT Software Development Process (P-SDP) for your easy understanding and recall.

The various stages of P-SDP are:

Requirements Gathering

In most cases, clients have only a vague idea of what they want as end result. Such confusing situation is often clearned by good software engineers who gather requirements from client in a structured way. Delivering understanding documents/scope documents or Building prototypes are the 2 most efficient ways to make sure that both parties understand what they want in the end. 

Specification

Specification is the task of precisely describing the behaviour of the software to be developed, possibly in a very detailed manner. Most of the successful applications are developed with a good specification as its back. If the scope of the application is bigger, then ideally it is good to have prototypes and use cases accompanying the specification document. A use case is a description of an application's behaviour as it responds to a user request that originates from outside of that system.

Architecture

Architecture is concerned with making sure the software developed will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, make sure that it works under varying scenario eg. Varying load, different hardware or operating system etc. A good architecture ensures stability of the software to be developed.

Implementation and Testing

Implementation is the part of the process where software engineers actually program the code for the project. Software testing is an integral and important part of the software development process. This part of the process ensures that bugs are recognized as early as possible. Testing comes under the scope of Quality Assurance which is explained under a separate section in this site.

Deployment and Maintenance

Deployment is done after code is tested well and  is approved for release. Support after deployment is important because a large percentage of software projects fail because the developers fail to realize that the project is a success only if employees in the client organization is using it for their needs. If they don’t, then the project often ends up in failed category evenif the tool is bug free. So it is very important to have training classes for new clients of your software. 

Depending on the size of the projects, there is often a maintenance contract which ensures client to maintain their software well so that any issues or changes can be managed in an efficient way.