Planning
A successful project begins with proper planning. One aspect of
planning is identifying the process for software development that is right for your
organization and project. The process may vary based upon factors such as the type of
software system (E-Commerce, real-time, information support system), the size and location
of the user community, the size and experience of the development team, and the various
technologies (operating systems, networks, development tools). |
|
"Plans fail for lack of counsel, but with many advisers
they succeed." - Proverbs 15:22 |
|
At ATC, we embrace
the Rational Unified Process (RUP) which builds upon the Unified Modeling Language (UML).
The common phases and activities of a software development process are: |
|
a)
Inception |
|
(1) Establish the
business rationale for the project
(2) Decide on the scope of the project
(3) Determine a preliminary cost estimate and the probable returns (financial, customer
requirement)
(4) Identify a project sponsor
(5) Determine that it is worth proceeding to the next phase |
|
|
b)
Elaboration |
|
(1) Identify and
document detailed requirements
(2) Perform high-level functional analysis and design
(3) Produce a project plan document that includes detailed estimates
(4) Determine that it is worth to proceed to the next phase |
|
|
c)
Construction |
|
(1) Analysis and
Design (Class Diagrams)
(2) Identify Design Patterns
(3) Implementation (Coding)
(4) Unit Testing
(5) Code Reviews
(6) System Testing |
|
|
|
d)
Transition |
|
(1) User
Documentation
(2) Installation Procedures
(3) Beta Site Release
(4) Training
(5) Deployment to all Users |
|
|
Based upon the
software development process, a project plan must be developed. A good
plan identifies the tasks, resources, costs, time frame and risks associated with the
project. The plan also becomes a blueprint for managing and tracking the progress of the
project. ATC offers a comprehensive array of project
planning and assessment services. Our planning services help clients understand the key
elements of the software development process. Based upon the process, we help our clients
organize the activities and team members required to produce object-oriented software
systems. In addition to our planning services, we offer various project assessment
services aimed at improving the software development process and the resulting software
systems. |
|
a) Team and
Organization Planning - This type of planning helps clients set up and organize
the software development team: |
|
(1) Identify roles
and responsibilities
(2) Training and mentoring programs
(3) Communication |
|
|
b) Design
and Architecture Assessments |
|
Design and
architecture assessments provide important insight into the quality of the software system
being developed. The purpose of this activity is to understand the level to which the
software system takes advantage of software reuse. We evaluate the structure of the
software system and its ability to handle new or changing requirements. In addition, we
consider how maintainable the software system is by team members other than the original
author. |
|
|
c) Software
Development Process Assessments
|
(1) We want to
always consider how we can improve the software development process. In other words, we
want to learn from our mistakes. In an encouraging environment, we want to ask questions
that will make the team and the development process better. Based upon this evaluation, we
can formally make changes to the software development process.
(2) We want to identify elements of the software development process that have been
difficult or tedious and evaluate whether new procedures or tools can be utilized to
improve the process (design and development tools, testing tools, debuggers). |
|
|
d) Project
Metrics Evaluations |
|
Without the proper
metrics, it is very difficult to know the progress of the project. In addition, metrics
are needed in order to focus attention on areas of the development process that need
improvement. If the last project was 20% over budget, do you have the proper statistics to
know why? As part of the planning process, we help our clients capture the proper metrics
to assist in knowing the progress and quality of the software system. The metrics can
provide invaluable statistics that aid in determining future estimates. In addition,
tracking the right metrics provides valuable insight into the project without impeding
progress. |
|
|
Architecture Definition | Development Frameworks
| Planning
Requirements | Construction | Training | Mentoring |