780 likes | 938 Views
Trainers: Pierre LE FEVERE DE TEN HOVE Richard WALKER. Altran CIS O bject- O riented A nalysis and D esign. Session 1 – Introduction Software Development Processes. Objectives and Agenda. Objectives Overview of the software development evolution
E N D
Trainers: Pierre LE FEVERE DE TEN HOVE Richard WALKER Altran CISObject-Oriented Analysis and Design Session 1 – Introduction Software Development Processes OOAD Training
Objectives and Agenda Objectives Overview of the software development evolution Detailed presentation of the Unified Process Agenda Software development evolution Facts Conventional development Iterative development Agile Unified Process Introduction Rational Unified Process Phases and Iterations Risk Management Course structure (Kick off inception phase)
Software engineering evolutionWhy? OOAD Training
Impaired: 24% Successful: 32% Challenged: 44% Software development evolutionFACTS Standish Group International • Analyse the application development projects in government and commercial organisations (no vendors, no suppliers, no consultants) • Analysis of over 50,000 IT projects in 12 years Current situation (2009) • US annual expenditure for software development: $255 Billions • Successful:on budget, on time, with all requirements fulfilled • Challenged:over budget, delayed, with fewer requirements fulfilled • Impaired: cancelled in development or finished but not used OOAD Training
Software development evolutionFACTS Reasons of success (from 2006 report) OOAD Training
Software development evolutionFACTS Reasons of failure (from 2006 report) ~ 50% due to requirements OOAD Training
Requirements: 56 % Other: 10% Code: 7% Design: 27% Software development evolutionFACTS Distribution of defects in the Software engineering lifecycle OOAD Training
Software development evolutionFACTS • Average percentage ofcost overrun • Average percentage oftime overrun Evolution since 1994 • Successful: on budget, on time, with all requirements fulfilled • Challenged: over budget, delayed, with fewer requirements fulfilled • Impaired: cancelled development or finished but not used • Reasons of improvement: • Better project management • Iterative development • Emerging Web infrastructure OOAD Training
Software development evolutionFACTS • Most popular programming language by TIOBE index October 2009 • Ratings based on world-wide availability of skilled engineers, courses and third party vendors (using Google, MSN and Yahoo! search engines) OOAD Training
Software development evolutionConventional Development • Winston W. Royce (1970) • Big design up-front • Coding = little fraction of the overall process (<15%) OOAD Training
Software development evolutionV-Model Requirements Acceptance tests prepare validate Analysis System tests Design Integration tests Coding Unit tests OOAD Training Project time line
Software development evolutionV-Model – Test categories Unit Testing Make sure all tests are fully automatic and that they check there own results A suite of tests is a powerful bug detector that decapitates the time it takes to find bugs Run your tests frequently. Every test at least everyday When you get a bug report, start by writing a unit test that exposes the bug It is better to write and run incomplete tests than not to run tests Integration Testing To ensure that all parts developed separately fit together Interfaces System Testing The system as a whole Features Developer focused Acceptance Testing The system as a whole also Requirements Customer focused Non-regression Testing Before migration to operation, verify that previously delivered software still works OOAD Training 12
Software development evolutionConventional Development Advantages • Easy to understand • Big effort up front minimizes risk of discovering problems later • Emphasis on documentation => easier take over for a new member • Possibility to manage independant & specialised teams Issues • Plan & estimate too much in advance is difficult • Impossible to go back • No continuous process improvement (during the project) • No intermediate validation => late risk resolution • No requirements rework nor customer feedback • Close to change Great when requirements are stable OOAD Training
100% Development progress (% coded) Time Original target date Production Project Start Integration Software development evolutionConventional Development OOAD Training
Software development evolutionConventional Development Risk curve Risk Waterfall process Requirements Analysis Design Coding Testing Time OOAD Training
Software development evolutionIterative development Evolutions • Requirements are more and more complex • System and technologies complexity increasing • Business is evolving faster Consequences • Requirements are never frozen and may evolve during the project • Change is inevitable • Changes to the makeup of the project team or in stakeholders • Changes in the technology being used • Changes to any external systems with which the new software must interact • More and more interfaces between systems have to be defined OOAD Training
Software development evolutionIterative Development Need of an "evolutionary" model • Open to change • Progressive resolution of risks • Architecture centric • Continuous integration Iterative models: • Iterative (repetitions on the V-model) • Incremental • Assess highest risks in first iterations • Requirements driven: • Req. are elements of planning • Customer is regularly involved • Multi-views architecture OOAD Training
Risk Waterfall development Time Software development evolutionIterative Development Risk curve Iterative development OOAD Training
Objectives and Agenda Objectives Overview of the software development evolution Detailed presentation of the Unified Process Agenda Software development evolution Facts Conventional development Iterative development Agile Unified Process Introduction Rational Unified Process Phases and Iterations Risk Management Course structure
Agile Agile is a philosophy: “Agile is an iterative software development style centered on the stakeholders and focusing on customer satisfaction through a continuous software integration.” Agile principles from the Manifesto (http://agilemanifesto.org/) • Customer satisfaction first • All change requests are welcomed • Frequent software delivery (in weeks rather than in months) • Business and software engineers working together • Working software is the primary measure of progress • Technical excellence and good design • and six others ... OOAD Training
Agile A matter of tipping the balance on the good side… OOAD Training
Agile A question of commitment… "Pigs" and "chickens" are the two types of roles in the Scrum method ... or a question of fun? OOAD Training
Agile Scrum (www.controlchaos.com) • By Ken Schwaber (inspired by Japanese emergency plans) • Rugby Strategy for HR • Iterative process • No development practice • Management process for software engineering • Self organized team • 30-days iterations • Daily meetings • Transparency at all levels: • High level burndown (Backlog) • Iteration burndown (Sprint) • Daily meeting • Less formalized than UP • To be used in conjunction with XP OOAD Training
Software development approachesSCRUM OOAD Training
Software development approachesSCRUM OOAD Training
Software development approachesSCRUM facilitates Scrum process, insures Scrum best practices usage is committed to perform a sprint (without any defined sub-roles) describes and prioritizes the items of the Product Backlog master list of all functionality desired in the product list of tasks that has to be completed in the current sprint team progress vs release plan updated at the end of each sprint OOAD Training
Agile Agile methodologies: • Scrum (www.controlchaos.com) • X-Treme Programming (http://www.extremeprogramming.org/) • Feature-Driven Development (www.featuredrivendevelopment.com) • Unified Process • Rational Unified Process? OOAD Training
Agile Daily Scrum meeting • Max 15 minutes • Stand-up meeting • Only pigs allowed to speak • 3 questions: • What did you do yesterday? • What will you do today? • Are there any impediments in your way? (ex: I can't get the ____ group to give me any time and I need to meet with them.) • The Scrum Master role is to help resolve impediments offline. • Transparency is key in order to: • Maintain quality(developers usually tend to drop quality without telling when asked to do more) • Help management take appropriate decision early(managers usually believe in magic: they just have to ask for more it and it will be done) OOAD Training
Objectives and Agenda Objectives Overview of the software development evolution Detailed presentation of the Unified Process Agenda Software development evolution Facts Conventional development Iterative development Agile Unified Process Introduction Rational Unified Process Phases and Iterations Risk Management Course structure
Unified ProcessIntroduction a Software Engineering Process • Defining tasks & responsibilities • Ensuring high-quality within schedule & budget • Focused on content a Software Development Method • Iterative • Incremental • Use case driven • Focused on architecture <> project management methodology OOAD Training
Unified ProcessRational Unified Process Iterative software development process • Created by Rational Software corp. (now IBM) • Based on Unified Process Software process product: Rational Method Composer • Customizable process framework • Knowledgebase • Template and artifacts library • Published on the web OOAD Training
Unified ProcessRational Unified Process Iterative software development process OOAD Training
Unified ProcessRational Unified Process RUP and PM (1/2) Prince2 & PMI • Broad Project Management usage • Main deliverables are business case, project plans, changes requests, corrective actions, lessons learned, risk plan… • Project management disciplines • Integration and Scope management • Risk and Quality management • HR and Communication management (hiring, training, coaching…) • Time and Cost management • Procurement management (with suppliers, sponsors, ...) • Do not contain development method best practices RUP • Limited to software engineering • Focus on content: main deliverables are business case, iteration plans, SRS, SAD, implemented components, iteration evaluations… • Project management is a discipline of RUP • Planning (iterations & phases) • In terms of risk, time and people (tasks & responsibilities allocation) • Contain development method best practices OOAD Training
In RUP all disciplines are expressed in terms of roles, activities and artifacts A unit of work with a clear purpose that a worker will perform Activity = element of planning & progress The behaviour and responsibilities of a (group of) individual(s). An individual can have many hats Worker = role A piece of information produced, modified or used by a process Artifact = Input & Output of activities Unified ProcessRational Unified Process Static aspect OOAD Training
Unified ProcessRational Unified ProcessDynamic aspect A project is broken into 4 phases Each phase can have several iterations Major Milestones Inception Elaboration Construction Transition time OOAD Training
Unified ProcessRational Unified ProcessRational Method Composer First aim of RMC: • Content management system providing a common management structure for all of content development practitioners. OOAD Training
Requirements workflow in RUP Unified ProcessRational Unified ProcessRational Method Composer Second aim of RMC: • Provide process engineering capabilities for supporting process engineers and project managers for their development projects. OOAD Training
Unified ProcessRational Unified ProcessRational Method Composer Illustration: • Requirements workflow with RUP OOAD Training
Unified ProcessPhases and IterationsSequential Phases (1/2) 4 sequential phases • Inception • Approximate the vision • Define the scope of the project • Build the business case (Go – No-Go ?) • Capture high-level requirements • 1st bid (rough planning estimates) • Usually last a few days for small projects or a week for medium projects • Elaboration • Refine the vision • Iterative implementation of core architecture • High risks resolution • Use cases description • Development plan and realistic estimates • Construction • Transition OOAD Training
Resources Inception Elaboration Construction Transition Effort 65% Lifecycle Objectives Milestone Lifecycle Architecture Milestone Initial Operational Capability Milestone Project Release Milestone 10% 20% 5% Time Inception Elaboration Construction Transition Time 10% 30% 50% 10% Unified ProcessPhases and IterationsSequential Phases (2/2) 4 sequential phases • Inception • Elaboration • Construction • Iterative implementation of software components • Internal releases • First external release • Transition • Beta-tests • Performance tuning • End-user training and appropriation OOAD Training
Inception Elaboration Construction Transition Preliminary IT_1 IT_2 IT_m IT_m+1 IT_m+2 IT_n-1 IT_n Iteration(s) First internal release (Conceptual prototype) Internal Release First external release (beta) Final Release (Delivery) Internal release (Architecture baseline) 4% 5% 20% 35% 20% 4% 5% 5% 3% Unified ProcessPhases and Iterationsn iterations n Iterations • Each iteration is a complete development process resulting in an executable but incomplete system • Iterations could exist in each phase • 2 to 8 weeks duration • In each iteration a V-schema OOAD Training
Unified ProcessPhases and Iterations Approach Iterative development • Quick-wins with lessons-learned of each iteration • Review the scheduling strategy to review and revise parts of the system • Early feedbacks • Early risks handling Incremental development • Development and delivery in stage • Divide complexity to conquer • More and more functionalities from iterations to iterations OOAD Training
Unified ProcessPhases and Iterations Approach Types of feedback • In early developments • From programmers trying to read specifications • From clients using the demos refine requirements • In project progress • From team workers to refine schedule and estimates • From clients to re-prioritize the features to be tackled in next iteration • In late developments and tests • From developers and testers to refine designs or models OOAD Training
Unified ProcessPhases and Iterationsn iterations Number of iterations • Depends on the phase • Depends on the project size • Generally from 1 to 4 for one phase Duration of an iteration • Depends on the project size • Generally from 2 to 8 weeks Time-boxing • Deadlines fixed length-fixed • Date slippage is forbidden • If needed: reduce scope (but not quality!) OOAD Training
Unified ProcessPhases and Iterationsn iterations Time-boxing or content-boxing? • Aim: reduce risks & keep meeting reservations • Not able to do scope during time frame? too many issues? each iteration aims to reduce risks do not face too many risks at once reduce scope • It’s fine to not release the software at the end of an iteration (YAGRI principle) • You can increase the number of iterations OOAD Training
Unified ProcessPhases and Iterationsn iterations Tip Workload = Productivity (1,5 or 2) Project iterations illustrations + 1 = OOAD Training
Inception Elaboration Construction Transition IT_1 IT_2 IT_3 IT_4 IT_5 IT_6 IT_7 First internal release (Conceptual prototype) Internal Release First external release (beta) Final Release (Delivery) Internal release (Architecture baseline) Inception Elaboration Construction Transition IT_1 IT_2 IT_3 IT_4 IT_5 IT_6 IT_7 IT_8 IT_9 IT_10 First internal release (Conceptual prototype) Internal Release First external release (beta) Final Release (Delivery) Internal release (Architecture baseline) Unified ProcessPhases and Iterationsn iterations Small project Large project OOAD Training
Inception Elaboration Construction Transition Phases Plan Preliminary IT_1 IT_2 IT_m IT_m+1 IT_m+2 IT_n-1 IT_n Iteration(s) Iterations Plan Unified ProcessPhases and Iterationsn iterations Rolling wave OOAD Training
Unified ProcessPhases and IterationsIn practice (1/3) Inception 1 Iteration – 2 days • Requirements workshop (Chief architect, business and analysts) • Day 1 a.m.: high level requirements analysis set of high level UC • Day 1 a.m.: pick 10% from those high level UC. • Day 1 p.m and Day 2 a.m. : do intensive detailed analysis of the functional and non functional requirements for these UC. • Planning meeting (Chief architect, analysts and development people) • Day 2 p.m.: hold an iteration planning meeting for the first iteration on a subset of detailed use cases. Break them down to detailed iteration tasks. • Validate business case OOAD Training
Unified ProcessPlanning What is the main challenge of planning? Estimations Study by the Simular Research Group on Factors that influence estimation • Effect of irrelevant information