• No results found

The 10 Best Ideas in Software Development

N/A
N/A
Protected

Academic year: 2021

Share "The 10 Best Ideas in Software Development"

Copied!
29
0
0

Loading.... (view fulltext now)

Full text

(1)

Special Bonus:

© 2006 Construx Software Builders, Inc. All Rights Reserved.

www.construx.com

The 10 Best Ideas in

Software Development

The 8 Worst

Ideas!

Most Key Ideas Are Not New

Q: What are the most exciting/promising software engineering ideas or techniques on the horizon?

A: I don’t think that the most promising ideas are on the horizon. They are already here and have been here for years but are not being used properly.

(2)

#1

Software Development

Work is Performed by

Human Beings

Architecture and Risk Resolution Platform Experience Database Size Language and Tools Experience Process Maturity

Cocomo II’s View of Software Project

Influences

1.38 1.40 1.42 1.43 1.43 1.46 1.49 1.50 1.51 1.52 1.54 1.56 1.59 1.63 1.76 2.00 2.38 Storage Constraint Platform Volatility Use of Software Tools Applications Experience Documentation Match to Lifecycle Needs Required Software Reliability Multi-site Development Personnel Continuity Time Constraint Programmer Capability (general) Analyst Capability (general) Product Complexity

(3)

“Delivering Software Project Success” 5

Importance of Human Influences

™Human Influences make a 14x

difference in total project effort & cost, according to Cocomo II

™Capability factors alone make a 3.5x difference

™Experience factors alone make a 3.0x difference

™Consensus of studies is that similarly-experienced developers vary by about 20x in productivity and quality of work

Where do Variations Exist?

Researchers have found 20:1 variations in:

™ Coding speed

™ Debugging speed

™ Defect-finding speed

™ Percentage of defects found

™ Bad-fix injection rate

™ Design quality

™ Amount of code generated from a design

™ Teamwork

(4)

“Delivering Software Project Success” 7

Some Implications

™Success of Google, Amazon, Microsoft, etc.

™Matching workers and workstyles ™Value of retention programs

™Importance of staff development

Creating software practices

based on the assumption

that developers are

omniscient…

(5)

“Delivering Software Project Success” 9

… i.e., the Waterfall Model

Software Concept System Testing Architectural Design Requirements Analysis Detailed Design Coding and Debugging

What About This?

From the Agile Manifesto

We value individuals and

interactions over

(6)

#2

Iteration & Incrementalism

are Essential

Incrementalism

™Definition: “The use of a series of regular additions or contributions”

™An “incremental” approach is one that is done a little bit at a time.

™The final result may be completely mapped out in advance

(7)

“Delivering Software Project Success” 13

Iteration

™Definition: “Recital or performance a second time; repetition”

™An “iterative” approach is one that

converges to a solution a little bit at a time

™The result is not known in advance

Iteration & Incrementalism

™ Iterative approaches are incremental

™ Incremental approaches are not necessarily

iterative

™ The waterfall model is neither incremental nor iterative

™ Staged delivery is incremental but not iterative

™ Evolutionary prototyping is both incremental and iterative

™ Some practices derive their power from

iteration, some from incrementalism, and some from both

(8)

“Delivering Software Project Success” 15

Examples of Iteration &

Incrementalism

Iterative Approaches

™ Short development cycles (e.g., XP, Scrum)

™ UI prototyping ™ Evolutionary prototyping ™ Requirements reviews ™ Design reviews ™ Project estimation ™ Project planning Incremental Approaches ™ Staged delivery ™ Design to schedule ™ Incremental integration ™ Daily builds ™ Project planning

The only two development options in existence are “Iterate Everything” and “Iterate Nothing” (i.e., the Waterfall Model).

System Testing Architecture

Requirements Construction

(9)

“Delivering Software Project Success” 17

Iteration is a More Flexible Concept

™You can iterate within phases...

System Testing Architecture

Requirements Construction

Iteration is a More Flexible Concept

™You can iterate across phases...

System Testing Architecture

(10)

“Delivering Software Project Success” 19

Iteration is a More Flexible Concept

™You can iterate across entire dev cycles

Iteration Applies Both in the Large and

in the Small

™The degree of iteration can vary from practically 0-100% either within or

(11)

#3

The Cost To Fix A Defect

Increases Over Time

Defect Cost Increase (DCI)

Requirements Architecture

Construction

System test

Requirements Architecture Construction Post-Release

Average Cost to Correct Activity in which a Defect Is Introduced

(12)

Agile projects are immune to

DCI dynamics.

Worst Idea

Fortunately, Some Agile Advocates

Recognize DCI

“DCI is one of the few

empirically verified truths

about software development:

the sooner you find a defect,

the cheaper it is to fix.”

(13)

“Delivering Software Project Success” 25

General Principle

™ Defect creation is a function of effort

™ Defect detection is a function of QA activities

™ Goal is to minimize gap between defect

insertion and defect detection/correction

Time Cumulative Defects Risk of Extra Cost Defect creation Defect removal Typical Project Risk of Extra Cost Time Extra Development Capacity Well-Run Project One Solution:

Fix Defects Earlier!

Requirements Architecture

Construction

System test

Requirements Architecture Construction Post-Release

Average Cost to Correct Activity in which a Defect Is Introduced

Activity in Which a Defect Is Detected

Fix Here Don’t Wait to Fix Here

(14)

“Delivering Software Project Success” 27

Another Solution:

Reduce Defect Cost Increase!

Requirements Architecture

Construction

System test

Requirements Architecture Construction Post-Release

Average Cost to Correct Activity in which a Defect Is Introduced

Activity in Which a Defect Is Detected

#4

Software Projects Tend to

Follow a Predictable

Intellectual Flow

(15)

“Delivering Software Project Success” 29

Intellectual Phases

Schedule Focus

Discovery Invention Construction

Schedule Focus

Discovery Invention Construction

Cost of Overlapping Intellectual

Phases

™ Overlap = ‹ Dependencies ‹ Uncertainty ‹ Risk ‹ Rework ‹ Higher costs ‹ Longer schedules ‹ Lower quality

(16)

Since software projects are

“wicked problems,” we just

have to accept that

wickedness.

Worst Idea

Requirements are always

changing, and our

development practices

should be based on

the inevitablity

(17)

Requirements can be

“gathered” (or they just drop

out of the sky like manna

from heaven)

Worst Idea

A Successful Approach to

Requirements

™Active approaches to requirements are

active not passive

‹“Elicitation” ‹“Discovery” ‹“Investigation”

™The fact that it is possible to discover good requirements does not mean that it’s easy

(18)

#5

Ability to Create Accurate

Software Estimates Can

be Improved Over Time

(The Cone Of Uncertainty)

Cone of Uncertainty

0.67x 0.8x 1.0x 0.5x 2x 4x 1.5x 1.25x Project Scope (effort, cost, or features)

(19)

“Delivering Software Project Success” 37

Implications of the Cone of

Uncertainty

™Estimation must be iterative

™Project planning must be incremental ™Estimates should contain descriptions of

their inaccuracy

#6

The Most Powerful Form

of Reuse is Full Reuse

(20)

“Delivering Software Project Success” 39

History of Reuse

™First idea was to reuse code

™Later idea was to reuse code + design ™Current idea is to reuse as much as

possible, including processes and plans

Effect of Adding Process the First Time (What I Wrote in Software Project Survival Guide)

Percent of Effort 100% Thrashing Process Overhead Productive Work

(21)

“Delivering Software Project Success” 41

Effect of Adding Process the First

Time (What I Think Now)

Percent of Effort 0% 100% Time Thrashing Process Overhead Productive Work

Effect of Adding Reused

Processes

Percent of Effort 0% 100% Time Thrashing Process Overhead Productive Work

(22)

“Delivering Software Project Success” 43

What All Can Be Reused?

™ Coding standards

™ Change control policies

™ Estimation procedures

™ Formats & outlines of project plan,

requirements doc, design docs, QA plan, test plan, etc.

™ Checklists for plans, estimates, change control, inspections, QA, etc.

™ Roles & responsibilities

™ Training

™ What are the most prominent current

examples of process reuse?

#7

Risk Management

Provides Critical Insights

into Many Core Software

(23)

“Delivering Software Project Success” 45

Risk Management Type 1: Extrinsic

™Added on to the project primarily for purposes of risk management

™Examples of Extrinsic Risk Management

‹Top 10 Risks list

‹Risk management plans

‹Risk officer ‹Etc.

Risk Management Type 2: Intrinsic

™Built into the project for other reasons; risk reduction is an additional benefit ™Examples of intrinsic risk management

‹Active project tracking ‹UI Prototyping

‹End-user involvement

‹Incremental delivery

‹Upstream technical reviews

(24)

“Delivering Software Project Success” 47

Risk Insights

™Risk is the key to many tough decisions in project management:

‹What is the best lifecycle model?

‹How much requirements work is enough?

‹How much design work is enough?

‹Can you use junior staff instead of senior

staff?

‹Should you do design reviews? Code

reviews?

‹How much schedule buffer do you need?

A View of Software Risk Reduction

Planned Work

Typical Relationship between Planned Work and Variable Work:

Unplanned, Variable Work (typically >50% of total)

(25)

Entrepreneurial companies

can’t be afraid of risk.

Worst Idea

#8

Different Kinds of Software

Call For Different Kinds of

Software Development

(26)

There is one single

development approach that

will work best for all

projects.

Worst Idea

How Could Any One Development

Approach Possibly Work?

Extent of Distribution 777 flight-control software embedded pacemaker control, embedded fuel-injector system website (brochure-ware) card game In-house insurance quote program desktop operating-system Personal Custom, In-House Vertical market Horizontal market commercial website, spreadsheet, tax program desktop publishing software device driver realtime race-track betting system, single race track mailing-label printer management information system Web search tool

(27)

#9

Software Engineering

Body of Knowledge

(SWEBOK)

The SWEBOK

(Software Engineering Body of Knowledge)

™ Software Configuration Management

™ Software Construction

™ Software Design

™ Software Engineering Management

™ Software Engineering Process

™ Software Maintenance

™ Software Quality

™ Software Requirements

™ Software Testing

(28)

“Delivering Software Project Success” 55

What SWEBOK Supports

™Defined, reusable software development processes

™Academic curriculums ™Career development ™Professional certification ™Employment interviewing ™Technical skills inventory

And we’re just getting started!

Is the SWEBOK the Ultimate Answer?

To organize something is to understand it.

– Aristotle

“Truth will sooner come out of error than from confusion.”

(29)

Conclusions

™Training

™Consulting

™Tools

[email protected] www.construx.com +1 (425) 636-0100

References

Related documents

 Transportation  activities  include  personnel  and   freight  movements  and  mobile  plant  activities..  Intertwined  with  these  BMPs  are  enforceable

Specifically, we tested whether emotional responses would be less positive, and more negative, toward wearers of any Muslim veil compared with those wearing no veil (Hypothesis 1);

Printed by ARC-ISCW on semi-transparent matt film without topo-cadastral background; relevant topo- cadastral 1:50 000 map (obtainable from Government Printer) should be used as

• High Anxiety • Denial • Anger • Shame • Guilt • Remorse • Grief • Reconciliation • High Anxiety • Denial • Anger • Shame • Guilt • Remorse • Grief • Reconciliation Order May

Most students support the involvement of an online instructor in the online discussion, and faculty members involved in these discussions function as helpers in the development

In view of the present satisfactory level of computerisation in commercial bank branches, it is proposed that, ‘‘payment of interest on savings bank accounts by scheduled

No.3 IP Fixed Mobile All-IP based FMC Single Platform Box Module Site or Central Office One Cabinet One Site 9KW 3×3KW Smart modularized power management 2KW

College Mathematics (3 Credits) Biology (6 Credits) Arts and Humanities 3 Arts and Humanities 3 TOTAL 35 20 8.00 **Total up RED # ** Excess credits 0.00 8.00 Analyzing and