Brian has successfully managed software development teams and developed custom software systems professionally for over 21 years. In that time Brian has honed the methodology described below. The methodology is
critical because software development is very expensive and without a proper understanding of the objectives and the problems it will solve, definately not worth the cost. Brian
emphasises the importance of working directly with customers to fully describe and build a detailed understanding of how the expensive software development will pay for itself, and hopefully
reallize profits many times the cost. Brian follows the methodology below because it has a series of processes and deliverables which minimize wasted efforts and maximize the chance of
100% success.
Phase 1 -Survey Project Scope and Feasibility |
Deliverables |
The purpose of this phase is to estimate the size and feasibility of the project. First, the Problem Statement summarizes what the customer expects the system to
achieve for them from a pure business perspective. For example, the Problem Statement should describe exacly what problems the system is expected to solve. In addition the
problem statement should describe how solving the problems will directly increase profits, lower costs, increase quality or speed up production. This Problem Statement should
quantify the performance expectations such as how many dollars profits should increase, how many dollars costs should be lowered or how many minutes it will take for a widget
to be produced after the problems are solved by the new system. Once the business problems and objectives are defined, the Scope and Feasibily Assessment examines the basic system
level requirements, estimates the available resources and from that determes if the objectives are feasible with given technology and resources. Still, premature commitments to
budgets, expectation and solutions shall be avoided at this stage.
|
- Problem Statement
- Scope and Feasibility Assessment
- Project Plan
|
Phase 2 - Study Current System |
Deliverables |
The purpose of this phase is to analyze the current system. Brian recommends that adequate time is invested to study the current system, or lack of a system,
to properly describe the business entities, processes and data flowing through in detail. After an understanding of the existing system, along with it's associated entities,
inputs, outputs and operations is accomplished, the causes, effects, opportunities, and directives shall be addressed. The findings of the Study
Phase are documented in very detailed system diagrams and descriptions which are in themselves assets which benefit the customers. Premature commitments to budgets, expectations and
solutions shall be avoided at this stage. |
- Updated Scope and Feasibility Assessment
- Updated Problem Statement
- Updated Project Plan
- Overview of Existing System
- Existing System Architecture Diagrams
- Existing System Data Flow Diagrams
- Existing System Process Descriptions
- Existing System Data Dictionary
- Existing System Flow Charts
- Existing Database Entity Relatioship Diagram
|
Phase 3 - Propose New System |
Deliverables |
Once the existing system and the associated problems are understood, solutions can be explored and presented in the
New System Proposal. The New System Proposal typically describes three or more solutions, one of which is the recommended solution.
The New System Proposal is often accompanied by a Executive Presentation in which a prototype of the recommended solution is demonstrated if possible.
Following the executive presentation, the customers are asked to select which solution is preferred. Once the solution is selected the project
Budget and Resource Aquisition should be set.
|
- New System Proposal
- New System Architecture Diagram
- Executive Presentation
- Budget and Resource Aquisition
- Updated Project Plan
|
Phase 4 - Requirements and Design Definition |
Deliverables |
In this phase the detailed requirements of the new system are written into the System Requirements Specification (SRS). These
SRS is written like a users guide of the new system which describes each system feature and how the users shall interact. Once the SRS is accepted
by the customers, the System Design Specification (SDS) is written. The SDS is filled with technical diagrams and descriptions of the hardware and software components of the system.
The SDS shall also include a preliminary, step by step, Implementation Plan describing how, who, what, where and when the new production system is installed.
The Implementation Plan may also describe running the old system and the new system in parallel for some time period.
These diagrams and descritpions sometimes reveal un-foreseen expenses in the form of more specific hardware, software and resource requirements. These may prompt changes to
Project Plan and Budget. In other cases, the design may answer questions which enable some costs to be reduced. Before proceeding, these Project Plan
and Budget updates must be presented to the customers.
|
- System Requirements Specification
- System Design Specification
- Implementation Plan
- Updated Project Plan
- Updated Budget and Resource Acquisition
- Overview of New System
- New System Architecture Diagrams
- New System Data Flow Diagrams
- New System Process Descriptions
- New System Data Dictionary
- New System Flow Charts
- New Database Entity Relatioship Diagram
- Requirements and Design Phase Presentation
|
Phase 5 - Hardware and Software Acquisition |
Deliverables |
Hardware and Software Acquisition usually requires purchasing Commercial Off The Shelf Software (COTS), new computer equipment, Internet domains and SSL certificates.
Of course, "Cloud" venders offer other alternatives such as renting complete hosting solutions and COTS software applications. When COTS solutions fall short, customers may often
recquire supplemental
custom software development and database development. Brian specializes in managing teams of software developers and mentoring them through the software development process. This
is accomplished by splitting the system into subsystems and assigning responsibility of the subsystems to the appropriate team members. Next, the team members are asked to produce
a Subsystem Design Specification before proceding to develop the software. Brian reviews each subsystem design with the software development team. Once the software subsystems
are adequately designed, the software development team is provided the Custom Software Development Process standards the team shall follow. The standards also define the use
of a common Source Code Control System. Once these designs and standards are established the Software Source Code Development activities can begin.
|
- Commecial Off the Shelf Software (COTS)
- Computer Equipment
- Internet Domains and SSL Cerificates
- Cloud Computer and Software Resources
- Custom Software
- Subsystem Design Specifications
- Custom Software Development Process Standards
- Source Code Control System
- Source Code Development
- Software Development Team Management
- Developer and Tester Job Descriptions
- New Developers and Testers
- Development Team Software Licensing
- Daily Development and Test Duty Matrix
- Administration of Cloud Services, Etc...
- Release Notes Standards
|
Phase 6 - System Testing |
Deliverables |
Proper System Testing is essential, with or without custom software development. The System Test Cases, derived from the System Requirements Definition,
describes how to test each feature of the system and then measure the results to determine if they fall within acceptable performance parameters. These test results
are described within Testing Instance Reports. Brian typically establishes the test system, installs the COTS and custom software subsystems, manages the persons who
peform the tests and monitors the testing results.
|
- System Test Cases
- Bug Tracking System
- Test Standards
- Test System Integration Testing
- Develop Training Materials
|
Phase 7 - System Implementation |
Deliverables |
Brian executes the Implementation Plan to establish the Production System and begins Production System Integration Testing AKA Alfa Testing.
Once the Production System Intergration Testing is successful, the beta testing is scheduled with a select group of users.
|
- Production System Integration Testing
- Production System Beta Testing
- Production System Rollout and Training
|
Phase 8 - System Sustainment and Operations |
Deliverables |
Production system sustainment usually requires sofware development to continue, but not with a traditional sofware development life cycle with
long design, develop, release cycles. Rather, once the system is in production, Brian switches the developers and testers to a faster "Continuous Release" process.
This process provides for incremental changes to the system, often on a daily basis. This proces shortens the design, develop, test and release cycle to provide a responsive system
which progress rapidly.
|
- Continuous Release Procedures
- Administrator / Operator Training Materials
- Operators Duty Matrix
- Operators Job Descriptions
- Hire and Train Operators
|