Organically Grown Software ™
Home | About Us | Grown Software | Links
The software growth cycle is a circular process which involves a number of phases. These phases include planning, design, implementation, testing, deployment, and evaluation. Each cycle of activity involves all of these phases, and produces a release. Each phase provides feedback for the previous phase and may require updates to the previous phase. We find that many short cycles work better than a few longer cycles for most projects.
This is where it all begins. Our first task is to find the problem, to figure out what the stakeholders would like to accomplish. (Stakeholders are owners, managers, and employees who will use the solution). The result will be recorded in the form of business goals for the system. We then explore strategies for meeting the business goals with the stakeholders. With these business goals in mind and the assistance of the stakeholders, we can define how a solution will interact with users. Defining how a solution will interact with users is called a use case. These use cases are the software constraints around which we design solutions.
In design, we take the use cases and fit them into a simple model to help us identify major objects in the system. This simple model is called an analysis model. The analysis model gets refined into a more complete object model, separating responsibilities and adding objects and interactions. Constraints on objects and pre and post conditions for interactions are also nailed down here.
Implementation is largely the art of mapping a chosen programming language into a design and applying appropriate hardware. Any deficiencies or mistakes in the design are often caught here. A preliminary computerized form of testing called unit testing is done with implementation.
Testing involves checking to insure that all use cases are implemented and to insure that the system is stable, responsive, and complete. Once the system passes testing, it can be deployed.
Deploying a system may involve many procedures, and culminates with a live system in the business environment. Everyone should know what to expect of the live system before it is deployed. It takes a highly coordinated effort to put a new solution in place and minimize the impact of the change. Deployment may involve training a number of employees to use and maintain the system.
Feedback is one of the most essential ingredients in a successful software project. The value of a technology solution is tightly tied to how well the stakeholders like the solution after using it. Each project offers new challenges. The successful project will enhance the stakeholders' awareness of their own business processes and help them meet business objectives. Bit Garden is continuously striving to enhance customer satisfaction and learn from our customers' feedback.