MAP Software, Inc.

Download Report

Transcript MAP Software, Inc.

National Association for Regulatory Administration
September 13, 2011
IT’s NOT Like Building a House
Mark Parker
(800) 984-9346
[email protected]
Overview
There are many different methodologies for software development, each
describing approaches to a variety of tasks or activities that take place
throughout the software development lifecycle. Generally speaking, all
software development methodologies fall into one of two categories.

Sequential
(Waterfall, BDUF – Big Design Up Front) development that proceeds from one phase to the next in purely a
sequential manner; each phase must be completed and perfected before moving to the next phase. In a
sequential model, there is no going back to a previous phase and no overlapping of phases.

Iterative and Incremental
(XP – Extreme Programming, RAD – Rapid Application Development, UP – Unified Process, RUP – Rational
Unified Process, Spiral, Scrum) development that proceeds in repeatable iterations to iteratively and
incrementally enhance and evolve a program until it is accepted by the user. The goal for design and
development of any iteration is to be simple, straightforward and modular, supporting redesign at any time or as
tasks are added. In an iterative and incremental model, iterations may be repeated and phases may overlap.
Sequential Software
Development
Waterfall, BDUF – Big Design Up Front
Requirements
Design
Code
Test
Deploy
Iterative and Incremental
Software Development
XP – Extreme Programming, RAD – Rapid
Application Development, UP – Unified Process,
RUP – Rational Unified Process, Spiral, Scrum
Scientific Method
Scientific Method and
Iterative Development
http://en.wikipedia.org/wiki/Iterative_and_incremental_development
http://www.makeitsolar.com/science-fair-information/01-the-scientific-method.htm
•
•
•
•
•
•
•
•
Choose Your Topic
Identify Problem
Research Problem
Develop Hypothesis
Design Experiments
Test the Hypothesis
Analyze Results
Formulate Conclusions
•
•
•
•
•
•
•
•
Initial Planning
Planning
Requirements
Analysis
Design
Implementation
Testing
Evaluation
Outcomes
Experiment
Iteration
• Increased Knowledge
• Increased Knowledge
• Decision Point
• Decision Point
• Problem Solved
• Deployment
Unified Process - UP






Risk Focused
Results Oriented
Architecture Based
Use Case Driven
Developer Centric
Stakeholder Collaborative
Why Iterative?
“The fundamental reason that a project iterates
is to reduce risk.”
Project Risk Exposure
100%
Project Schedule
Sequential (Waterfall)
Iterative and Incremental
Target
Completion
Date
Unified Process Hierarchy
Evolution
Phases
Inception
Elaboration
Construction
Iterations
Transition
Evolution



Defines the deliverable
A small part or component of a larger
information system
Is a 3 to 6 month development effort
Inception Phase

Risk Focus
– Business

Questions
– Are we building the right thing?
– Is the solution feasible?
– How Much?

Outcome
– Agreement to fund
Elaboration Phase

Risk Focus
– Architectural

Questions
– What are the unknowns?
– What are the technical risks?
– How will the technical risks be mitigated?

Outcome
– A stable, proven, executable architecture
Construction Phase

Risk Focus
– Logistical

Questions
– Do our assumptions and earlier decisions hold?
– Will it be done on time?
– Are the users ready?

Outcome
– A useful, tested, deployable and documented
solution
Transition Phase

Risk Focus
– Roll-out

Questions
– Is it acceptable?
– Is it being used?
– Can the customer maintain and further enhance
the solution?

Outcome
– The solution is in “actual use”
Unified Process Summary





Reduces Risk (All Stakeholders)
Large projects are broken down into
“Mini Projects”
Multiple review and decision points
throughout the process
Based on the Scientific Method
Focuses on Delivering Business Value
The Book
Managing Iterative
Software Development
Projects
By
Kurt Bittner
Ian Spence
Thank you
Mark Parker
(800) 984-9346
[email protected]