Presentation is loading. Please wait.

Presentation is loading. Please wait.

Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com February.

Similar presentations


Presentation on theme: "Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com February."— Presentation transcript:

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

2 RammSoft 2 What Is Rapid Development? Speedy development Shorter schedules Developing software faster than you do now Speedy development Shorter schedules Developing software faster than you do now

3 RammSoft 3 Who Invented It? Steve McConnell http://www.stevemcconnell.com/ http://www.construx.com/ http://blogs.construx.com/blogs/ Steve McConnell http://www.stevemcconnell.com/ http://www.construx.com/ http://blogs.construx.com/blogs/

4 RammSoft 4 Steve 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) 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 RammSoft 5 Rapid-Development Strategy Avoid classic mistakes Apply development fundamentals Manage risks to avoid catastrophic setbacks Apply schedule-oriented practices Avoid classic mistakes Apply development fundamentals Manage risks to avoid catastrophic setbacks Apply schedule-oriented practices

6 RammSoft 6 The Four Pillars of RD

7 RammSoft 7 Efficient Development

8 RammSoft 8 The Four Pillars of RD

9 RammSoft 9 Efficient Development Risk Management Development Fundamentals Classic Mistakes Avoidance

10 RammSoft 10 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

11 RammSoft 11 Management Fundamentals Classic Trade-off Triangle ScheduleResources Scope

12 RammSoft 12 Management Fundamentals Planning Analyzing the scope Acquiring resources Planning the work Tracking Monitoring and directing the resources Measurement Planning Analyzing the scope Acquiring resources Planning the work Tracking Monitoring and directing the resources Measurement

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

14 RammSoft 14 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 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 RammSoft 15 Measurement Collecting metrics How much? How often? Comparing with past projects Collecting metrics How much? How often? Comparing with past projects

16 RammSoft 16 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

17 RammSoft 17 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

18 RammSoft 18 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 Gathering requirements Recording them In a document, email, UI storyboard, prototype, RM software, etc Tracking the design and code against them Managing changes

19 RammSoft 19 Requirements Management Lack of user input Incomplete requirements Changing requirements Lack of user input Incomplete requirements Changing requirements The top 3 reasons that projects fail:

20 RammSoft 20 Requirements Fundamentals Requirements-analysis methodologies Structured analysis Object-oriented analysis System-modeling practices Communication practices Requirements-analysis methodologies Structured analysis Object-oriented analysis System-modeling practices Communication practices

21 RammSoft 21 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 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 RammSoft 22 System-modeling practices Class diagram

23 RammSoft 23 System-modeling practices Data-flow diagram

24 RammSoft 24 System-modeling practices Database diagram

25 RammSoft 25 System-modeling practices State-flow diagram

26 RammSoft 26 Communication Practices Joint Application Development (JAD) UI prototyping General interview practices Observation by walking around Joint Application Development (JAD) UI prototyping General interview practices Observation by walking around

27 RammSoft 27 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

28 RammSoft 28 Architecture and Design Fundamentals Major design styles Foundational design concepts Standard design approaches Domain-specific design considerations Use of design tools Major design styles Foundational design concepts Standard design approaches Domain-specific design considerations Use of design tools

29 RammSoft 29 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 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 RammSoft 30 Object-oriented Pradigm

31 RammSoft 31 Foundational Design Concepts Information hiding Modularity Abstraction Encapsulation Inheritance Polymorphism Basic algorithms and data structures Design patterns Information hiding Modularity Abstraction Encapsulation Inheritance Polymorphism Basic algorithms and data structures Design patterns

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

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

34 RammSoft 34 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

35 RammSoft 35 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 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 RammSoft 36 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 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 RammSoft 37 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 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 RammSoft 38 Technical Fundamentals Requirements management Design fundamentals Construction fundamentals Configuration management Requirements management Design fundamentals Construction fundamentals Configuration management

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

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

41 RammSoft 41 Software-Development Fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals Management fundamentals Technical fundamentals Quality-assurance fundamentals

42 RammSoft 42 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 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 RammSoft 43 Classic Mistakes Reducing the time on design and code reviews Compressing the test schedule Reducing the time on design and code reviews Compressing the test schedule

44 RammSoft 44 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 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 RammSoft 45 Best Possible Schedule

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

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


Download ppt "Rapid Development Part 2 Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com Mihail V. Mihaylov (Mike Ramm) CEO, RammSoft www.rammsoft.com February."

Similar presentations


Ads by Google