Download presentation
Presentation is loading. Please wait.
Published byLauren Eaton Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.