Modern Methods

Download Report

Transcript Modern Methods

Dramatically Improving
SE’s Cost Effectiveness
Paul G. Bassett
APEGGA PD Days
April, 2003
SE’s Notorious Track Record
Studies by Standish Group & KPMG
– project mismanagement is rampant & chronic
– 31% of all projects fail, costing $billions
– of the projects that do finish:
53% exceed their budget by at least 189%
92% exceed their schedule
– in other words, < 6% of all software projects
deliver on time and within budget!!
Why?
SE is immature: experimental, undisciplined
– in transition from a craft to true engineering
Most “experts” fail to grasp how software’s
strengths can/should offset its weaknesses
The Results?
– late, over budget, non-compliant systems
– “maintenance” still consumes 80% of IT costs
– “off-shoring” is the latest desperation move
Myth: Software is a kind of Hardware!
Are cars horseless carriages?
Can the same fender fit every car?
Fact: Unlike hardware, software is soft
The ultimate modeling medium
Each part can be automatically adapted to
fit an ∞ of different programs
Fact: Two Simple Yet Profound
HARDWARE
SOFTWARE
Differences
SYSTEM SPECIFICATION
SYSTEM CONSTRUCTION
{
{
Precise
Well known
Objective
Can’t Break
Vague
Unshared
Subjective
Always Changing
LOWER RISK
HIGH RISK
Different Media
Transduction
Expensive
Slow
Can’t Rework
Unscaleable
HIGH RISK
The Same Media
Translation
Cheap
Fast
Reworkable
Scaleable
LOWER RISK
 Our job is to build
Software &
well-defined solutions to
Hardware
ill-defined problems
are
Have Opposite  requirements
misunderstood, in conflict, and
always changing
Strengths &
 hardware solutions are simply
Risks
infeasible
Precise
Well known
Objective
Can’t Break
Vague
Unshared
Subjective
Always Changing
LOWER RISK
HIGH RISK
Different
Transduction
Expensive
Slow
Can’t Rework
Unscaleable
HIGH RISK
The Same
Translation
Cheap
Fast
Reworkable
Scaleable
LOWER RISK

Why engineer Software for
softness?


automate what programmers
do badly
solve ill-defined problems by
constructing dynamic models
Automated Adaptability
Myth: Only programmers can modify code intelligently
Fact: Expensive, slow, tedious, very error prone work
– coherence degrades over time
– eventually systems gets so brittle they must be frozen
Fact: Most changes are logically entailed!
– machines routinely make them much faster, cheaper, better
– programmers retain control over every source code symbol
Result: huge gains in productivity and quality
– gains span software’s entire life cycle
– software is engineered to evolve, remaining soft indefinitely
A Cost-Effective SE Paradigm
(beyond Object Orientation)
Manufacturing Technology
– 100% of each program comes from adaptable parts,
called frames (solutions are expressible in any language)
Iterative Refinement Processes
– frames and application systems co-evolve,
each arising from the other
Asset-centric Infrastructure
– reusable frames are assets,
each with a measured return on investment (ROI)
– all projects share a common asset base of frames
Software Engineers
– a central group of frame engineers support
application engineers co-located within user communities.
Manufacturing
a Program
SensFrom Frames itive
Legend:
Orange = adaptable details
Green = adapt commands
adaptable,
reusable
frames
specification
frame
C
O
N
T
E
X
T
Free
• Each frame is the root of a sub-assembly; it seamlessly integrates its sub-assembly frames.
•A frame can customize any detail of its sub-assembly frames unless overridden from above.
Types of Frames and their
Organization
Custom layer:
Unique business rules
Application Architecture:
Generic business rules
Technical Architecture:
Corporate standards
Enterprise Architecture:
I/O, Interoperability
The layers may be further subdivided.
Layering localizes the impact of changes, such as switching between
monolithic and distributed-processing architectures at run-time.
Application
Requirements
Domain
Analysis
IDR requires
Adaptive
Components
Part
Design &
Develop’t
Software Engineering
Standards
Iterative
Design
Refinement
All tasks are
time-boxed
Application
Design &
Develop’t
(Pre/Post) production
Releases
Iterative design refinement is a RAAD approach to software development. IDR is scaleable.
If a project’s deltas are small then IDR scales down to the Waterfall approach.
How to Implement the Paradigm
1. Learn the concepts and technology
a. candidate developers and managers take courses
 frame technology is free-ware: http://sourceforge.net/projects/fxvcl
 select suitable staff based on course results
b. do a pilot project using familiar project processes
 consulting frame engineer helps design initial frames
 measure results (time, effort, defects, reuse)
2. Transition to the new paradigm
a. reuse frames in new projects
 widely adopt the iterative design refinement process
b. set up the infrastructure
 frame engineering support group, co-location, metrics, ...
 start managing frame ROIs across the whole organization
Putting it all together
QSM Associates audits software projects
– has a database of thousands of projects,
measured for duration, staff-cost, defects
includes all manner of technologies, processes, and
infrastructures, including object-oriented projects
– has developed a productivity index which
gauges software productivity by industry, and
overall
– audited 29 projects that used frame technology
published a formal study …
QSM
Back to the Bottom Line
Schedule Comparison
Sample Average PI Vs. Industry Average PI
5.3
Sample Average
(PI - 26.2)
Industry Average
(PI - 16.9)
18
0
2
4
6
8
10
12
14
16
18
Months
Time-to-Market Reduction: 70%
 @$1M/mo.  $12.7M in extra revenues

Copyright QSM, Inc. All Rights Reserved
QSM
QSM
Back to the Bottom Line
Effort Comparison
Sample Average PI Vs. Industry Average PI
27.9
Sample Average
(PI - 26.2)
Industry Average
(PI - 16.9)
179.5
0
20
40
60
80
100 120 140 160 180
Person-Months
Project Cost Reduction: 84%
 $1M life-cycle cost  $840K saved

Copyright QSM, Inc. All Rights Reserved
April 25, 2003
Pilot project: summary
• Command and control (C2) system
• Developed in C# on Microsoft .NET platform
• The scope of experiment:
– GUI, service / entity / DB classes
– 13 domain entities (User, Task, Resource, etc.)
– COTS/libraries not included (40% of the system)
• Results: we eliminated 68% of code
SES Systems Pte Ltd
CAP
Singapore Technologies
Electronics
April 25, 2003
Conclusions
• XVCL was easier to apply than expected
• we got encouraging results:
– 68% code reduction in a system with 13 domain entities
– to add a new domain entity to the system:
with XVCL
without XVCL
133 LOC
1440 LOC
2 man/hours
16 man/hours
• integration with IDEs would be very useful!
SES Systems Pte Ltd
CAP
Singapore Technologies
Electronics
Next Steps
Visit http://sourceforge.net/projects/fxvcl
– read the documentation and white papers
– download XVCL, an XML based frame processor
– experts are available to answer questions
Conduct a feasibility study
– Develop an education and business plan
Start the technology transfer process
THANK YOU!