|
First, A Simple Framework I believe in keeping things simple. A simple and complete framework for software development projects is:
Describe the solution's behavior
Build that behavior into a software product.
Each of these steps is accomplished first by analysis to understand it in detail then by synthesis to use that understanding to create a new cohesive whole. Each step informs the others, forwards and backwards. Quality Assurance and System Architecture tasks are involved in each of these steps.
Understand the Problem Of vital importance in developing a software solution to a problem is to gain a deep understanding of the problem. I help my clients to gain this understanding through the use of assessments, both formal and informal. I help my clients synthesize this information into a statement of work, focusing on developing an approach to the project's work. In this step, I work in partnership with the project manager.
Describe the Solution's Behavior I help my clients understand who the users are, what the users want help with from the software solution and what information is used and transformed. These pieces are synthesized into a behavioral specification which fully describes how the software solution must behave.
This step is sometimes referred to as Requirements Gathering or Systems Analysis. The creation of vague Use Cases or bulleted lists are sometimes the extent of the work in this step. I incorporate Use Cases and other elements of UML into my approach; I use them to create a full and detailed description of what the software solution must do.
In this step, I work with and mentor system analysts.
Build the Software Product While the solution's behavior is being described, the conceptual design, or system architecture, is created. This step creates the skeleton that is inflated by the behavioral specification. This is an art form in which the constraints from the expected solution behavior, the current technical environment, the newly selected technologies and the culture must be resolved into a workable solution.
In this step, I work with and mentor system architects.
|
|