rapid development part 2 mihail v. mihaylov (mike ramm) ceo, rammsoft mihail v. mihaylov (mike...

Post on 02-Jan-2016

221 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Rapid DevelopmentPart 2

Rapid DevelopmentPart 2

Mihail V. Mihaylov (Mike Ramm)CEO, RammSoft

www.rammsoft.com

Mihail V. Mihaylov (Mike Ramm)CEO, RammSoft

www.rammsoft.com

February 20, 2008February 20, 2008

RammSoftRammSoft

The KeyTo Your Success

The KeyTo Your Success

2

Ram

mS

oft

Ram

mS

oft

What Is Rapid Development?What Is Rapid Development?

• Speedy development

• Shorter schedules

• Developing software faster than you do now

3

Ram

mS

oft

Ram

mS

oft

Who Invented It?Who Invented It?

Steve McConnell

http://www.stevemcconnell.com/

http://www.construx.com/

http://blogs.construx.com/blogs/

4

Ram

mS

oft

Ram

mS

oft

Steve McConnell’s BooksSteve McConnell’s Books

• Code Complete (1993) / (2004)

• Rapid Development (1996)

• Software Project Survival Guide (1997)

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

• Software Estimation: Demystifying the Black Art (2006)

5

Ram

mS

oft

Ram

mS

oft

Rapid-Development StrategyRapid-Development Strategy

• Avoid classic mistakes

• Apply development fundamentals

• Manage risks to avoid catastrophic setbacks

• Apply schedule-oriented practices

6

Ram

mS

oft

Ram

mS

oft

The Four Pillars of RDThe Four Pillars of RD

7

Ram

mS

oft

Ram

mS

oft

Efficient DevelopmentEfficient Development

Efficient Development

8

Ram

mS

oft

Ram

mS

oft

The Four Pillars of RDThe Four Pillars of RD

9

Ram

mS

oft

Ram

mS

oft

Efficient DevelopmentEfficient Development

Risk Management

Development Fundamentals

Classic Mistakes Avoidance

10

Ram

mS

oft

Ram

mS

oft

Software-Development FundamentalsSoftware-Development Fundamentals

• Management fundamentals

• Technical fundamentals

• Quality-assurance fundamentals

11

Ram

mS

oft

Ram

mS

oft

Management FundamentalsManagement Fundamentals

Classic Trade-off Triangle

Schedule Resources

Scope

12

Ram

mS

oft

Ram

mS

oft

Management FundamentalsManagement Fundamentals

• Planning

• Analyzing the scope

• Acquiring resources

• Planning the work

• Tracking

• Monitoring and directing the resources

• Measurement

13

Ram

mS

oft

Ram

mS

oft

PlanningPlanning

• Determining the size of the product

• Functionality, complexity, etc.

• Allocating resources

• Estimation and scheduling

• Organizing the team

• Managing risk

• Making strategic decisions

14

Ram

mS

oft

Ram

mS

oft

TrackingTracking

• Management-level controls

• Task lists, status meetings, status reports, milestone reviews, budget reports, management by walking around

• Technical-level controls

• Technical audits, technical reviews, quality gates

15

Ram

mS

oft

Ram

mS

oft

MeasurementMeasurement

• Collecting metrics

• How much?

• How often?

• Comparing with past projects

16

Ram

mS

oft

Ram

mS

oft

Software-Development FundamentalsSoftware-Development Fundamentals

• Management fundamentals

• Technical fundamentals

• Quality-assurance fundamentals

17

Ram

mS

oft

Ram

mS

oft

Technical FundamentalsTechnical Fundamentals

• Requirements management

• Design fundamentals

• Construction fundamentals

• Configuration management

18

Ram

mS

oft

Ram

mS

oft

Requirements ManagementRequirements Management

• Gathering requirements

• Recording them

• In a document, email, UI storyboard, prototype, RM software, etc

• Tracking the design and code against them

• Managing changes

19

Ram

mS

oft

Ram

mS

oft

Requirements ManagementRequirements Management

• Lack of user input

• Incomplete requirements

• Changing requirements

The top 3 reasons that projects fail:

20

Ram

mS

oft

Ram

mS

oft

Requirements FundamentalsRequirements Fundamentals

• Requirements-analysis methodologies

• Structured analysis

• Object-oriented analysis

• System-modeling practices

• Communication practices

21

Ram

mS

oft

Ram

mS

oft

Requirements-Analysis MethodologiesRequirements-Analysis Methodologies

• Structured analysis

• Functional view (DF diagrams)

• Data view (ER diagrams)

• Dynamic view (ST diagrams)

• Object-oriented analysis

• The things in the system (objects), the things outside the system (actors, data), their relationships

• Class diagrams, UML

22

Ram

mS

oft

Ram

mS

oft

System-modeling practicesSystem-modeling practices

• Class diagram

23

Ram

mS

oft

Ram

mS

oft

System-modeling practicesSystem-modeling practices

• Data-flow diagram

24

Ram

mS

oft

Ram

mS

oft

System-modeling practicesSystem-modeling practices

• Database diagram

25

Ram

mS

oft

Ram

mS

oft

System-modeling practicesSystem-modeling practices

• State-flow diagram

26

Ram

mS

oft

Ram

mS

oft

Communication PracticesCommunication Practices

• Joint Application Development (JAD)

• UI prototyping

• General interview practices

• Observation by walking around

27

Ram

mS

oft

Ram

mS

oft

Technical FundamentalsTechnical Fundamentals

• Requirements management

• Design fundamentals

• Construction fundamentals

• Configuration management

28

Ram

mS

oft

Ram

mS

oft

Architecture and Design FundamentalsArchitecture and Design Fundamentals

• Major design styles

• Foundational design concepts

• Standard design approaches

• Domain-specific design considerations

• Use of design tools

29

Ram

mS

oft

Ram

mS

oft

Major Design StylesMajor Design Styles

• Structured design

• Every program can be created with a limited number of structural elements

• Object-oriented design

• OOD elaborates the analysis models to produce implementation specifications

• OOA focuses on what the system does, OOD on how the system does it

30

Ram

mS

oft

Ram

mS

oft

Object-oriented PradigmObject-oriented Pradigm

31

Ram

mS

oft

Ram

mS

oft

Foundational Design ConceptsFoundational Design Concepts

• Information hiding

• Modularity

• Abstraction

• Encapsulation

• Inheritance

• Polymorphism

• Basic algorithms and data structures

• Design patterns

32

Ram

mS

oft

Ram

mS

oft

Standard Design Approaches Standard Design Approaches

• Exception handling

• Internationalization and localization

• Portability

• Input / output

• Memory management

• Floating-point arithmetic

• Database design

• Reuse

33

Ram

mS

oft

Ram

mS

oft

Domain-Specific Design ConsiderationsDomain-Specific Design Considerations• Financial applications

• Scientific applications

• Embedded systems

• Real-time systems

34

Ram

mS

oft

Ram

mS

oft

Technical FundamentalsTechnical Fundamentals

• Requirements management

• Design fundamentals

• Construction fundamentals

• Configuration management

35

Ram

mS

oft

Ram

mS

oft

Construction Fundamentals (1)Construction Fundamentals (1)

• Coding practices

• Variable and function naming, layout, documentation

• Data-related concepts

• Scope, persistence, binding time

• Guidelines for using types of data

• Enumerated types

• Arrays

• Pointers

36

Ram

mS

oft

Ram

mS

oft

Construction Fundamentals (2)Construction Fundamentals (2)

• Control-related concepts

• Conditionals

• Unusual structures - goto and return

• Recursive procedures

• Error-detection practices

• Assertions

• Rules for packaging code into routines, modules, classes, and files

37

Ram

mS

oft

Ram

mS

oft

Construction Fundamentals (3)Construction Fundamentals (3)

• Unit-testing and debugging practices

• Integration strategies

• Incremental integration, big-bang integration, evolutionary development

• Code-tuning strategies and practices

• Use of construction tools

• IDEs, source-code control, code libraries, code generators

38

Ram

mS

oft

Ram

mS

oft

Technical FundamentalsTechnical Fundamentals

• Requirements management

• Design fundamentals

• Construction fundamentals

• Configuration management

39

Ram

mS

oft

Ram

mS

oft

Software Configuration ManagementSoftware Configuration Management

Practices for managing project artifacts

• Evaluating proposed changes

• Tracking changes

• Handling multiple versions

• Keeping copies of project artifacts through time

40

Ram

mS

oft

Ram

mS

oft

Software Configuration ManagementSoftware Configuration Management

• Most often used to manage source code

• Can be applied to

• Requirements

• Plans and Designs

• Test cases

• User documentation

• Data

41

Ram

mS

oft

Ram

mS

oft

Software-Development FundamentalsSoftware-Development Fundamentals

• Management fundamentals

• Technical fundamentals

• Quality-assurance fundamentals

42

Ram

mS

oft

Ram

mS

oft

QA FundamentalsQA Fundamentals

• Reworking defective requirements, design, and code consumes 40-50% of the total cost of the development

• 1 hour spent on defect prevention reduces repair time 3 to 10 hours

• Reworking a requirements problem in operation stage costs 50 to 200 times more than in requirements stage

• About 60% of all defects exist at design time

43

Ram

mS

oft

Ram

mS

oft

Classic MistakesClassic Mistakes

• Reducing the time on design and code reviews

• Compressing the test schedule

44

Ram

mS

oft

Ram

mS

oft

Why QA practices are important?Why QA practices are important?

• Software quality and software schedules are related

• Poor quality is one of the most common reasons for schedule overruns

• 95% of defect addressed is the optimal value

45

Ram

mS

oft

Ram

mS

oft

Best Possible ScheduleBest Possible Schedule

46

Ram

mS

oft

Ram

mS

oft

QA PracticesQA Practices

• Error-prone modules analysis

• Testing

• Technical reviews

• Walkthroughs

• Code reading

• Inspections

• Find 60-90% of the defects

47

Ram

mS

oft

Ram

mS

oft

Thank You!Thank You!

• Email: mikeramm@rammsoft.com

• Official website:

• http://www.rammsoft.com

• Professional blogs:

• http://pmstories.com

• http://spriipomisli.blogspot.com

top related