This section will provide an overview of each of the four stages in the project cycle. The following diagram depicts the four phases arranged into such a cycle.
During this first phase, the entire system is defined, and vision and scope statements are created. A vision statement states the goals of the entire system and provides a direction for all of the products that are needed to create the system. The scope defines the limits of each individual project. Thus, the vision may be to create a revised order entry application (either for use internally or for an external customer) that works on the Internet, an intranet, over the network, is capable of increasing sales by 100%, and able to provide detailed information on sales for management. The scope of the first project might be to create the network and intranet components of the application and increase sales by 40%. Future projects may exist that will fulfill the complete vision statement and additional features can be added at a later date.
Vision and scope statements make sure that the right problem is being solved, which will allows the company to properly plan the rest of the project. Without knowing what the project is supposed to be doing, and why the project is doing this, it is impossible to design or build the project. While this may seem obvious, projects often begin without any clear definition of what they are supposed to be doing, and end up moving haphazardly until either a clear definition is created or the project fails. A project without a clear scope will also suffer from feature creep - features being added throughout the development of the project, rather than being part of a new project. A clear scope freezes the features of the project at the very beginning.
To be able to identify the vision and scope, this phase must go through the following steps:
> Identify and meet with the project's sponsors
> Have a consensus meeting
> Identify the project's goals
> Make an assessment of the resources
> Determine the deliverables of the project
> Assess the benefits of the proposed outline solution
Each of these phases is detailed in a Vision/Scope document.
A Vision/Scope document is alternatively referred to as a business case - essentially an analysis and solution document that is drafted when a proposal is made for a product or service.
The sponsors, who are the people who will provide funding for the project, must be involved from the beginning. It is important to understand their vision and scope of the project, and to make sure that they are committed to the project. Standards for the project must also be defined. If the sponsor is unwilling to get involved or is not interested in the project, there is virtually no possibility the project will succeed. If the sponsor does not feel the project you are building is the correct project for the system being created, it is also likely to fail.
A consensus meeting is where all members of the team are brought together to discuss the project. It is essential that these meetings involve the entire team, including the end users. If possible, the sponsors and the stakeholders should also attend. If the sponsors and stakeholders cannot attend, a summary of the meeting should be presented to them to review and approve the results of the meeting.
A consensus meeting should be held at the beginning of the phase to discuss what the vision and scope should be. Goals, resource availability and deliverables are part of this discussion. Another meeting would be held once the vision and scope documents are complete to make sure all team members agree with the contents of the document. If all members of the team agree with the vision and scope documents at the second meeting, this phase is complete.
The primary purpose of the envisionment phase is to reach a vision and scope that all members have agreed upon. The vision will describe what will be in the entire application. The scope will put limitations on the project vision, and define what part of the vision this project will create. There should also be a clear explanation of why the project is being built. The reasons should be focused on the business processes and goals of the corporation.
The Vision/Scope Approved milestone is achieved when the team and the customer reach an agreement on what is expected of the project. When this agreement is reached, the project is approved for go-ahead. This milestone is associated with the following deliverables:
Enterprise Architecture Document: Before the project can begin, you must take a look at the current status of the enterprise. This document will detail what the enterprise consists of before the project is undertaken. This will determine if there are the financial, technological, and people resources for the project.
The primary deliverable is the vision and scope document. The vision document should contain the following sections:
The vision statement of the project: The vision should be stated in terms of goals of the project.
The scope statement of the project: The goals that will be accomplished by this project, that is, this cycle. This should define what will be done in this project and what will be delivered at the end of this project.
Team Responsibilities: A list of responsibilities of all the team members should be created during this phase. The list should detail when specific responsibilities need to be completed, (a list of important deadlines) and provide a list of risks to the project that may occur if each team member does not complete their agreed upon responsibilities.
Risk Assessment: A complete list of all risks to the completion of the project should be carefully documented. Examples of some major risks are:
> Critical resources not being provided
> Little support from high level management
> Unrealistic expectations meaning that the project is too difficult to undertake
The vision and scope document represent a view of what the goals of the project are, why the system is being developed, and how these goals will be reached. These documents must be accepted and signed off by the entire team, including end users and sponsors.
This phase consists of creating a set of documents that define the user requirements, defining the components and services that are required to meet these requirements, and documenting a detailed design of these components. The design phase will make sure that we have properly defined the solution.
We know from our earlier discussion that we must be able to create reusable components, build one part of the system at one time and build another part either in parallel or later. The system must also be able to be upgraded so that it can include future changes that we cannot predict. The way to do this is to build object-oriented projects: We will now discuss the special design considerations of such a project.
Object-Oriented Project Design During the Design Phase
An enterprise Visual Basic project must be designed so that it can help the corporation be competitive in a constantly changing marketplace and help the corporation function as a cohesive unit. This enterprise solution is a combination of software and hardware that works together to run the business processes and also provides the information required to run the corporation.
This enterprise solution will be built from components. If, at some later time, a component of the system is found to be based on an outdated form of technology and needs to be upgraded, this component can be redesigned and replaced without redesigning and rebuilding the entire system. If a new component needs to be added, it needs to be added to the project design, built, and added to the project without affecting the existing components.
Parts of the system that are critical for the corporation can be built in the first project cycles (as defined in the envisionment phase). Less critical components can be added to the system in later cycles. As new business requirements evolve, new components can be designed and added to the system, but always as part of a well-defined cycle with carefully analyzes goals. This type of enterprise solution can adapt to any changes in the market place or technology. As we have said, the best way to build a project with components is to create an object-oriented project.
Visual Basic object-oriented enterprise projects can be designed in three stages during the design phase. The three stages are: conceptual, logical, and physical design stages. During the conceptual design stage, the needs of the users are analyzed and defined. A detailed description of users' goals is used as a basis for the generation of a detailed solution for the users and the corporation In the logical design stage we create a more detailed description of the developers' goals and represents a solution for the overall project team. The users' needs are transformed into a set of services that the project must perform to meet the requirements of the users. The detailed design of the components that will actually perform these services is carried out in the physical design stage. This turns the user, development and management goals into a detailed set of design documents for all the system's components, and represents a solution for the developers
This type of design will result in a user-centric approach that means that the project takes advantage of all of the available technology and will be built from components. The most critical components can be built first, and more than one component can be built at any given time (as each component is a separate entity). This will also create a design that takes into consideration the needs of the users, the needs of the developers, and the possibilities and limitations of the technology.
The stages of the design phase will build the project using an iterative process. Each iteration will refine the project's design. Initially, in the conceptual phase, the developers will meet with the users and get a rough concept of the project. The developers will then map out their understanding of the project using diagrams, which will be reviewed by the users, who will then add or subtract from the conceptual design. It may take several reviews by the users before the conceptual design fulfills the users' requirements.
Once the conceptual design reaches a point where it seems to meet all of the users' requirements, the design of the project moves into the logical design stage. It is possible that during the physical design stage a user requirement will be discovered that was overlooked in the conceptual design phase. These missed requirements must be added to the conceptual design, refining it even more.
The logical design phase will consist of mapping out all of the services the components must perform. Each service can be traced to one or more business needs. The initial logical design may only include some high level services for the users, such as getting customer or product information. The logical design stage can then be refined by adding the services that will not be visible to the users, such as retrieving data from a customer object. The logical design will also be subject to much refinement.
When the logical design seems complete, the physical design begins. A thorough review of the current technology is made. The technology solutions that will create components that will perform the services efficiently must be chosen. Often, several small test applications will be created to find the best technology for a particular project. Test applications can also determine the most efficient way to use the best technology. An initial concept of the physical design is created and numerous tests will refine and define the physical design. It is likely that there will be missed services that will have to be added to the logical design during the physical design stage.
As should be clear from the previous discussion, when the end of design phase milestone has been achieved the user, development and management goals will have been transformed into a detailed set of design documents for all the system's components. Once the design has been approved, it will be frozen and represents a solution for the developers.
The completion of each stage of the design phase represents an interim milestone: a measurable, definable point in the project. When the conceptual design milestone has been reached there will be a clearly defined non-technical description of the product, the functionality it will include and the manner in which the users will interact with the system. The deliverables for the conceptual stage will include a set of documents describing the users' goals for the project, which will most likely be a set of UML use cases.
Use cases are documents that explain how a particular group of users, called actors, will use the system to perform a particular task. You will see examples of these in chapter six.
When the logical stage milestone is reached, the deliverables will include a set of documents that identify the components, and the services the components will need to perform, to fulfill the users' goals for the project.
Since it is the goal of the developer to actually build the components, and it is also the developer who will fill in the details of these diagrams, it is important to remember that such diagrams define the developer's goals.
The most common way to document these goals is with UML Sequence diagrams. Sequence diagrams show the requests for services between the users and the system and between one component in the system to another component in the system, over time. Sequence diagrams convert the verbal Use Case into a visual diagram. You will see more of these in chapter seven.
In addition to these documents, the following deliverables may also be part of the logical stage:
> A user interface prototype (how the user will use the system)
> An evaluation of the user interface prototype
> A user interface specification
> Small test applications to test new technology and new solutions
> An evaluation of the test applications
When the physical design stage milestone is reached we will know exactly what components are required and how the components will be coded, built, and distributed. These components should fulfill the goals of all members of the project. The deliverables of this stage will be a set of documents detailing this information. The usual method of documenting this is by using UML class and activity diagrams:
> Activity diagrams can be used to map out the code steps a component must take to fulfill a request to perform a service. The steps are written in pseudo-code (each step is described in plain English rather than actual code).
> Class diagrams are a set of diagrams that provide a pictorial description of a set of objects with the same attributes, operations and relationships. You will see more on these in Chapter 8.
In addition, another possible deliverable for the physical stage is a document analyzing which components should be built in-house, and which items should come from a third party.
At each stage in the design process the following additional deliverables will be developed and refined:
> A set of risk documents
> A detailed schedule for the current stage and the upcoming stage
> A document showing the distribution of resources and the current responsibilities of all of the team members. It will include the skills required, and assignments in the project
The end of design phase milestone, most importantly, should encompass a fully integrated design that reflects the needs of the users, fulfills essential business requirements of the corporation, and puts reasonable demands on the developers. The design must fit into the existing enterprise solution as well as being able to help create the future enterprise solution. The design must also result in a system that is scalable and extensible
At the end of the design phase all team members should have a clear sense of purpose. There should be a common understanding of what is required of the product, what their responsibilities will be, what resources are required and on what timescale they are expected to complete their work (a realistic project schedule should be in place). Each of these issues will be discussed in detail in the corresponding chapters.
I would like to stress again at this stage that good communication will be the most essential ingredient for success of the project. Communication will have to flow between managers, developers and users. A set of documents that include design specifications and UML documents can form the basis of good communication. Communication also includes learning certain skills. Some important communication skills include: interviewing users, explaining the conceptual design to the users, and getting management involved in the project. All of these skills will be required to be a team member of an object-oriented project. We will discuss team characteristics later in this chapter.
The development phase consists of the building and initial testing of the components and the assembly of these components into a final, compiled application. This phase is complete when all new development is complete. This phase will allow you to implement the best possible solution. After this phase is complete, any additions to the product will result in a new project (a new cycle beginning). It is likely that there will be future additions, as the vision statement extends beyond this project, which is limited by the scope statement. In this way, there are many cycles as the product evolves.
This phase will consist of building the components based on the design made in the design phase. Components will be built at the same time or sequentially. After each component is complete, it will be tested by itself (unit testing), and then within part or all of the system (system testing). The testing will be based on a careful plan made by the testers based on standards created by Quality Assurance. Before the components can be built, the design of the system, the schema for any database, and the design of the user interfaces must be frozen. This will prevent feature creep, and also prevent rebuilding entire components. Changes that are made once the coding has started are more expensive than making changes before any components are actually built. It is fairly easy to change a design document. The further along you are in coding a component, the more expensive any changes become. This is why it is essential that all team members sign off the design before coding begins.
The development milestone is reached (often referred to as scope complete or first use milestone) when the team has reached a consensus that the product meets the specifications set out in the Vision/Scope document and the product has been tested in a production environment.
There are many interim milestones and associated deliverables in this phase, including:
> All features are complete
> Testing of individual components complete
> Testing of systems complete
> Internal releases
> Versioned source code complete
> Compiled versions of the code complete
In the development phase developers must put to good use the design documents that reflect the goals of the entire team and must find the most effective and efficient way of building the project within the limitations of the current technology. It will be important that standards created in the conceptual design phase are followed, especially coding and user interface standards. The development phase is where the project is actually coded and built. The bottom line is that the final outcome of this phase must be a project that reflects the best possible solution to improve the business process.
When the development stage is finished the project moves into what is termed a "stabilization" phase as the team works toward the release milestone when the product will be shipped and deployed. The deployment phase is where the final testing is completed. The developers fix any problems with the project as they are discovered. Thus, the primary focus of this phase is finding and fixing bugs. Debuggers, and possibly the end-users, will be testing the project, and the developers will be fixing any problems they find with the product. As the release milestone approaches all training aids and help files must be completed and the infrastructure for the new product must be in place.
When the project is complete, stable and there are no longer any problems with it, the project is turned over to the end-users and to the operations and support groups. The completed project is the final deliverable for this phase. It is sometimes called the golden release, essentially being the master copy of the final solution.
There are several deliverables that will occur in this phase. A few of them, not listed in the order they will be completed, are as follows:
> Final release notes
> All project documentation
> Final source code and executables
> Training manuals
> Help Files
> A completed bug database
> Installation plan/instructions
Was this article helpful?
What you need to know about… Project Management Made Easy! Project management consists of more than just a large building project and can encompass small projects as well. No matter what the size of your project, you need to have some sort of project management. How you manage your project has everything to do with its outcome.