38
Rapid Development Rapid Development (Part 1) (Part 1) Mihail V. Mihaylov Mihail V. Mihaylov RammSoft RammSoft

Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

Embed Size (px)

Citation preview

Page 1: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

Rapid DevelopmentRapid Development(Part 1)(Part 1)

Mihail V. MihaylovMihail V. Mihaylov

RammSoftRammSoft

Page 2: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

22

In The Beginning Was…In The Beginning Was…The TriangleThe Triangle

Time Cost

Scope

Page 3: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

33

The Holy Triangle of PMThe Holy Triangle of PM

QA

RM

Time Cost

Scope

Page 4: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

44

The Holy Triangle of PMThe Holy Triangle of PM

Page 5: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

55

The Holy Triangle of PMThe Holy Triangle of PM

QA

RM

Time Cost

Scope

Page 6: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

66

In Software Development Time In Software Development Time Is the Most Critical FactorIs the Most Critical Factor

QA

RM

Time Cost

Scope

Page 7: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

77

What Rapid Development What Rapid Development is not?is not?

It isn't Rapid Development™ —a It isn't Rapid Development™ —a magic phrase or buzzwordmagic phrase or buzzword

It isn't a glitzy Blaze-O-Matic® or It isn't a glitzy Blaze-O-Matic® or Gung-HO-OO™ rapid-development Gung-HO-OO™ rapid-development methodologymethodology

Page 8: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

88

What is Rapid Development?What is Rapid Development?

It is a generic term that means It is a generic term that means "speedy development" or "shorter "speedy development" or "shorter schedules"schedules"

It means developing software faster It means developing software faster than you do nowthan you do now

Page 9: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

99

QuotesQuotes I wish I had a simple solution to the I wish I had a simple solution to the

development-speed problem. I also wish development-speed problem. I also wish I had five million dollars.I had five million dollars.

But simple solutions tend to work only But simple solutions tend to work only for simple problems, and software for simple problems, and software development isn't a simple problem.development isn't a simple problem.

Rapid development of software is even Rapid development of software is even less simple. (Steve McConnell)less simple. (Steve McConnell)

For every complex problem, there is an For every complex problem, there is an answer that is short, simple, and wrong. answer that is short, simple, and wrong. (H. L. Mencken)(H. L. Mencken)

Page 10: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1010

Who Invented it?Who Invented it?

Steve McConnellSteve McConnell

http://www.stevemcconnell.com/http://www.stevemcconnell.com/

Page 11: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1111

Who Is Steve McConnell?Who Is Steve McConnell?

CEO and Chief Software Engineer CEO and Chief Software Engineer at Construx Software at Construx Software ((http://www.construx.com/http://www.construx.com/))

Technical book writerTechnical book writer

Editor in Chief Emeritus of IEEE Editor in Chief Emeritus of IEEE Software magazineSoftware magazine

Page 12: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1212

Steve McConnell’s BooksSteve McConnell’s Books

Code Complete (1993) / (2004)Code Complete (1993) / (2004)

Rapid Development (1996)Rapid Development (1996)

Software Project Survival Guide (1997)Software Project Survival Guide (1997)

After The Gold Rush (1999) / Professional After The Gold Rush (1999) / Professional Software Development (2003)Software Development (2003)

Software Estimation: Demystifying the Software Estimation: Demystifying the Black Art (2006)Black Art (2006)

Page 13: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1313

More Steve McConnell FactsMore Steve McConnell Facts

In 1998 named one of the 3 most In 1998 named one of the 3 most influential people in the software influential people in the software industryindustry

Won twice Software Development Won twice Software Development magazine's Jolt Excellence award for magazine's Jolt Excellence award for outstanding SD book of the yearoutstanding SD book of the year

Page 14: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1414

Rapid-Development StrategyRapid-Development Strategy

Avoid classic mistakesAvoid classic mistakes

Apply development fundamentalsApply development fundamentals

Manage risks to avoid catastrophic Manage risks to avoid catastrophic setbackssetbacks

Apply schedule-oriented practicesApply schedule-oriented practices

Page 15: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1515

The Four Pillars Of RDThe Four Pillars Of RD

Page 16: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1616

Efficient DevelopmentEfficient Development

Efficient Development

Page 17: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1717

The Four Pillars Of RDThe Four Pillars Of RD

Page 18: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1818

Efficient DevelopmentEfficient Development

Risk Management

Development Fundamentals

Classic Mistakes Avoidance

Page 19: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

1919

Software-Development Software-Development FundamentalsFundamentals

Management fundamentalsManagement fundamentals

Technical fundamentalsTechnical fundamentals

Quality-assurance fundamentalsQuality-assurance fundamentals

Page 20: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2020

Management FundamentalsManagement Fundamentals

PlanningPlanning

TrackingTracking

MeasurementMeasurement

Page 21: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2121

Technical FundamentalsTechnical Fundamentals

Requirements managementRequirements management

DesignDesign

ConstructionConstruction

Configuration managementConfiguration management

Page 22: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2222

QA PracticesQA Practices

Error-prone modules analysisError-prone modules analysis

TestingTesting

Technical reviewsTechnical reviews

– Walkthroughs, Code reading, Inspections (find 60-90% of the defects)

Page 23: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2323

Risk ManagementRisk Management

Levels of risk managementLevels of risk management

– Crisis management (Fire-fighting)Crisis management (Fire-fighting)

– Risk mitigationRisk mitigation

– PreventionPrevention

– Elimination of root causesElimination of root causes

Page 24: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2424

Four Dimensions of Four Dimensions of DevelopmentDevelopment

PeoplePeople

ProcessProcess

ProductProduct

TechnologyTechnology

Page 25: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2525

PeoplePeople

Peopleware issues have the biggest Peopleware issues have the biggest impact on software productivity and impact on software productivity and software qualitysoftware quality

10-to-1 difference in productivity 10-to-1 difference in productivity among developersamong developers

5-to-1 difference in productivity 5-to-1 difference in productivity among teamsamong teams

Page 26: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2626

Ways to MaximizeWays to MaximizeHuman PotentialHuman Potential

Staff selectionStaff selection

– Top talent, Job matching, Career Top talent, Job matching, Career progression, Team balance, Misfit progression, Team balance, Misfit eliminationelimination

Team organizationTeam organization

MotivationMotivation

Page 27: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2727

ProcessProcess Includes management and technical Includes management and technical

methodologiesmethodologies

– Development fundamentalsDevelopment fundamentals

– Risk managementRisk management

Quality assuranceQuality assurance

– Rework avoidanceRework avoidance

Customer orientationCustomer orientation

Page 28: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2828

ProductProduct

Product size and complexityProduct size and complexity

Product’s business areaProduct’s business area

Product goalsProduct goals

Page 29: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

2929

TechnologyTechnology

Programming languagesProgramming languages

FrameworksFrameworks

IDE’sIDE’s

Other toolsOther tools

– DesignersDesigners

– DebuggersDebuggers

Page 30: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3030

Which Dimension Matters Which Dimension Matters The Most?The Most?

It dependsIt depends

Page 31: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3131

Classic MistakesClassic Mistakes

What is so “classic” in them?What is so “classic” in them?

What are the reasons for them?What are the reasons for them?

Page 32: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3232

People-Related MistakesPeople-Related Mistakes1.1. Undermined motivationUndermined motivation

2.2. Weak personnelWeak personnel

3.3. Uncontrolled problem employeesUncontrolled problem employees

4.4. Heroics (Wishful thinking)Heroics (Wishful thinking)

5.5. Adding people to a late projectAdding people to a late project

6.6. Noisy, crowded officesNoisy, crowded offices

Page 33: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3333

People-Related MistakesPeople-Related Mistakes7.7. Friction between developers and Friction between developers and

customerscustomers

8.8. Unrealistic expectationsUnrealistic expectations

9.9. Lack ofLack of

– effective project sponsorshipeffective project sponsorship

– stakeholder buy-instakeholder buy-in

– user inputuser input

10.10. Politics placed over substancePolitics placed over substance

Page 34: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3434

Process-Related MistakesProcess-Related Mistakes

1.1. Overly optimistic schedulesOverly optimistic schedules

2.2. Insufficient risk managementInsufficient risk management

3.3. Abandonment of planning under Abandonment of planning under pressurepressure

4.4. Wasted time during the fuzzy front endWasted time during the fuzzy front end

5.5. Insufficient management controlsInsufficient management controls

6.6. Planning to catch up laterPlanning to catch up later

Page 35: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3535

Product-Related MistakesProduct-Related Mistakes

1.1. Requirements gold-platingRequirements gold-plating

2.2. Feature creepFeature creep

3.3. Developer gold-platingDeveloper gold-plating

4.4. Push-me, pull-me negotiationPush-me, pull-me negotiation

5.5. Research-oriented developmentResearch-oriented development

Page 36: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3636

Technology-Related MistakesTechnology-Related Mistakes

1.1. Silver-bullet syndromeSilver-bullet syndrome

2.2. Overestimated savings from new Overestimated savings from new tools or methodstools or methods

3.3. Switching tools in the middle of a Switching tools in the middle of a projectproject

4.4. Lack of automated source-code Lack of automated source-code controlcontrol

Page 37: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3737

ConclusionConclusion

Avoid classic mistakes if possibleAvoid classic mistakes if possible

Explain the potential threat when Explain the potential threat when forced to make classic mistakesforced to make classic mistakes

Actively manage the risksActively manage the risks

QuitQuit

Page 38: Rapid Development (Part 1) Mihail V. Mihaylov RammSoft

3838

Thank You!Thank You!

Google: Google: Спри и помисли!Спри и помисли!

Email: Email: [email protected]@gmail.com

Personal blogs:Personal blogs:

– http://mikeramm.blogspot.comhttp://mikeramm.blogspot.com

– http://http://spriipomisli.blogspot.comspriipomisli.blogspot.com