Call The Consultant considers the software development process as naturally partitioning into several stages, including:

 

  • Requirements Analysis — establishing the business rules of the project, determining the project scope and initial requirements, logical database design, obtaining management signoff.

  • Design and Prototyping — refining the project requirements, physical database design, prototyping, establishing priorities, determining the risks involved and investigating approaches, setting a project schedule.

  • Implementation — an iterative process of designing, building, and testing small chunks of code that implements progressively larger subsets of the project requirements, while refining the requirements to reflect increased understanding and refactoring the existing code as needed to preserve a clean object structure.

  • Testing — an area oftened ignored by software developers, we feel that adequate system testing is a must for delivering a quality product. As such, every project, without exception, has a defined amount of time designated as system testing. This time is used by our teams to make sure that the project does everything it is intended to do, and also to make sure that everything is working correctly. After all, a product that doesn't work isn't much good to anyone, is it?

  • Delivery — user acceptance testing is done at this stage, and minor modifications, cosmetics and other user driven changes are completed in a relatively short time period.

These stages are not exclusive, and often overlap to some extent. They also may be repeated during the course of a larger project. The last three stages, in particular, may be repeated several times over the lifespan of an application.

Various tools are available to assist with the different stages of the project, specifically in the case of designing and reworking the data model to fit the project requirements. Data Modelling Tools are used to assist in this process. Call The Consultant advocates the use of these tools whenever possible, as they are incredible time savers and assist in catching logical inconsistencies in the requirements.

During the Implementation stage, design patterns also become extremely useful. These distillations of common approaches to problem solving in software provide conceptual building blocks which can be plugged directly into designs. Besides aiding the clean structuring of the design, they allow complex concepts to be clearly communicated to others involved in the project. Call The Consultant strongly believes in the utility of design patterns and requires that all developers become familiar with at least the basic set of these procedures.

Refactoring, the process of modifying existing code to give a cleaner structure, plays an extremely important role throughout the Implementation stage. Proper use of refactoring is essential to quality code, and needs to be done continuously as new code is written. Internal documentation, that is, documentation from within the code itself, is also something that we practice religiously. This practice makes it much easier to pass the code from analyst to analyst with a minimal learning curve. These practices pay off in dramatically reduced costs for maintenance and enhancement efforts.

HomeServicesSoftware Design ApproachDevelopment ProcessDevelopment EnvironmentBackground and SkillsSample ProjectsAbout UsCareer OpportunitiesContact Us

 

© 2003 CallTheConsultant.com. All rights reserved.