Ramm Soft The Key To Your Success Rapid

  • Slides: 47
Download presentation
Ramm. Soft The Key To Your Success Rapid Development Part 2 February 20, 2008

Ramm. Soft The Key To Your Success Rapid Development Part 2 February 20, 2008 Mihail V. Mihaylov (Mike Ramm) CEO, Ramm. Soft www. rammsoft. com

Ramm. Soft What Is Rapid Development? • Speedy development • Shorter schedules • Developing

Ramm. Soft What Is Rapid Development? • Speedy development • Shorter schedules • Developing software faster than you do now 2

Who Invented It? Steve Mc. Connell http: //www. stevemcconnell. com/ http: //www. construx. com/

Who Invented It? Steve Mc. Connell http: //www. stevemcconnell. com/ http: //www. construx. com/ Ramm. Soft http: //blogs. construx. com/blogs/ 3

Ramm. Soft Steve Mc. Connell’s Books • Code Complete (1993) / (2004) • Rapid

Ramm. Soft Steve Mc. Connell’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) 4

Rapid-Development Strategy • Avoid classic mistakes • Apply development fundamentals • Manage risks to

Rapid-Development Strategy • Avoid classic mistakes • Apply development fundamentals • Manage risks to avoid catastrophic setbacks Ramm. Soft • Apply schedule-oriented practices 5

Ramm. Soft The Four Pillars of RD 6

Ramm. Soft The Four Pillars of RD 6

Ramm. Soft Efficient Development 7

Ramm. Soft Efficient Development 7

Ramm. Soft The Four Pillars of RD 8

Ramm. Soft The Four Pillars of RD 8

Ramm. Soft Efficient Development Risk Management Development Fundamentals Classic Mistakes Avoidance 9

Ramm. Soft Efficient Development Risk Management Development Fundamentals Classic Mistakes Avoidance 9

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 10

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 10

Ramm. Soft Management Fundamentals Scope Classic Trade-off Triangle Schedule Resources 11

Ramm. Soft Management Fundamentals Scope Classic Trade-off Triangle Schedule Resources 11

Ramm. Soft Management Fundamentals • Planning • Analyzing the scope • Acquiring resources •

Ramm. Soft Management Fundamentals • Planning • Analyzing the scope • Acquiring resources • Planning the work • Tracking • • Monitoring and directing the resources Measurement 12

Ramm. Soft Planning • Determining the size of the product • Functionality, complexity, etc.

Ramm. Soft Planning • Determining the size of the product • Functionality, complexity, etc. • Allocating resources • Estimation and scheduling • Organizing the team • Managing risk • Making strategic decisions 13

Ramm. Soft Tracking • Management-level controls • • Task lists, status meetings, status reports,

Ramm. Soft Tracking • 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 14

Measurement • • How much? • How often? Comparing with past projects Ramm. Soft

Measurement • • How much? • How often? Comparing with past projects Ramm. Soft • Collecting metrics 15

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 16

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 16

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm.

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm. Soft • 17

Ramm. Soft Requirements Management • Gathering requirements • Recording them • In a document,

Ramm. Soft Requirements Management • Gathering requirements • Recording them • In a document, email, UI storyboard, prototype, RM software, etc • Tracking the design and code against them • Managing changes 18

Requirements Management The top 3 reasons that projects fail: Lack of user input •

Requirements Management The top 3 reasons that projects fail: Lack of user input • Incomplete requirements • Changing requirements Ramm. Soft • 19

Ramm. Soft Requirements Fundamentals • Requirements-analysis methodologies • Structured analysis • Object-oriented analysis •

Ramm. Soft Requirements Fundamentals • Requirements-analysis methodologies • Structured analysis • Object-oriented analysis • System-modeling practices • Communication practices 20

Ramm. Soft Requirements-Analysis Methodologies • Structured analysis • Functional view (DF diagrams) • Data

Ramm. Soft Requirements-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 21

System-modeling practices Class diagram Ramm. Soft • 22

System-modeling practices Class diagram Ramm. Soft • 22

System-modeling practices Data-flow diagram Ramm. Soft • 23

System-modeling practices Data-flow diagram Ramm. Soft • 23

System-modeling practices Database diagram Ramm. Soft • 24

System-modeling practices Database diagram Ramm. Soft • 24

System-modeling practices State-flow diagram Ramm. Soft • 25

System-modeling practices State-flow diagram Ramm. Soft • 25

Communication Practices Joint Application Development (JAD) • UI prototyping • General interview practices •

Communication Practices Joint Application Development (JAD) • UI prototyping • General interview practices • Observation by walking around Ramm. Soft • 26

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm.

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm. Soft • 27

Ramm. Soft Architecture and Design Fundamentals • Major design styles • Foundational design concepts

Ramm. Soft Architecture and Design Fundamentals • Major design styles • Foundational design concepts • Standard design approaches • Domain-specific design considerations • Use of design tools 28

Ramm. Soft Major Design Styles • Structured design • • Every program can be

Ramm. Soft Major 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 29

Ramm. Soft Object-oriented Pradigm 30

Ramm. Soft Object-oriented Pradigm 30

Ramm. Soft Foundational Design Concepts • Information hiding • Modularity • Abstraction • Encapsulation

Ramm. Soft Foundational Design Concepts • Information hiding • Modularity • Abstraction • Encapsulation • Inheritance • Polymorphism • Basic algorithms and data structures • Design patterns 31

Ramm. Soft Standard Design Approaches • Exception handling • Internationalization and localization • Portability

Ramm. Soft Standard Design Approaches • Exception handling • Internationalization and localization • Portability • Input / output • Memory management • Floating-point arithmetic • Database design • Reuse 32

Domain-Specific Design Considerations Financial applications • Scientific applications • Embedded systems • Real-time systems

Domain-Specific Design Considerations Financial applications • Scientific applications • Embedded systems • Real-time systems Ramm. Soft • 33

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm.

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm. Soft • 34

Ramm. Soft Construction Fundamentals (1) • Coding practices • • Variable and function naming,

Ramm. Soft 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 35

Ramm. Soft Construction Fundamentals (2) • Control-related concepts • Conditionals • Unusual structures -

Ramm. Soft 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 36

Ramm. Soft Construction Fundamentals (3) • Unit-testing and debugging practices • Integration strategies •

Ramm. Soft 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 37

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm.

Technical Fundamentals Requirements management • Design fundamentals • Construction fundamentals • Configuration management Ramm. Soft • 38

Ramm. Software Configuration Management Practices for managing project artifacts • Evaluating proposed changes •

Ramm. Software Configuration Management Practices for managing project artifacts • Evaluating proposed changes • Tracking changes • Handling multiple versions • Keeping copies of project artifacts through time 39

Ramm. Software Configuration Management • Most often used to manage source code • Can

Ramm. Software Configuration Management • Most often used to manage source code • Can be applied to • Requirements • Plans and Designs • Test cases • User documentation • Data 40

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 41

Software-Development Fundamentals Management fundamentals • Technical fundamentals • Quality-assurance fundamentals Ramm. Soft • 41

Ramm. Soft QA Fundamentals • Reworking defective requirements, design, and code consumes 40 -50%

Ramm. Soft QA 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 42

Classic Mistakes Reducing the time on design and code reviews • Compressing the test

Classic Mistakes Reducing the time on design and code reviews • Compressing the test schedule Ramm. Soft • 43

Ramm. Soft Why QA practices are important? • Software quality and software schedules are

Ramm. Soft 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 44

Ramm. Soft Best Possible Schedule 45

Ramm. Soft Best Possible Schedule 45

Ramm. Soft QA Practices • Error-prone modules analysis • Testing • Technical reviews •

Ramm. Soft QA Practices • Error-prone modules analysis • Testing • Technical reviews • Walkthroughs • Code reading • Inspections • Find 60 -90% of the defects 46

Ramm. Soft Thank You! • Email: mikeramm@rammsoft. com • Official website: • http: //www.

Ramm. Soft Thank You! • Email: mikeramm@rammsoft. com • Official website: • http: //www. rammsoft. com • Professional blogs: • http: //pmstories. com • http: //spriipomisli. blogspot. com 47