Presentation is loading. Please wait.

Presentation is loading. Please wait.

Development Methodologies1 zRational Unified Process zExtreme Programming (XP) zDSDM zSCRUM zEVO.

Similar presentations


Presentation on theme: "Development Methodologies1 zRational Unified Process zExtreme Programming (XP) zDSDM zSCRUM zEVO."— Presentation transcript:

1 Development Methodologies1 zRational Unified Process zExtreme Programming (XP) zDSDM zSCRUM zEVO

2 Development Methodologies2 Agile Methods zIn the 1980s and early 1990s there was a widespread view that the best way to achieve better software was through ycareful project planning yformalised quality assurance ythe use of analysis and deign methods supported by CASE tools ycontrolled and rigorous software development

3 Development Methodologies3 Agile Methods Contd. zThis view came from software engineers who were developing large, long-lived software systems zWhen heavy weight, plan-based development approaches were applied to small and medium-size systems ythe overhead sometimes dominated the software development process

4 Development Methodologies4 Agile Methods Contd. zMore time was spent on how the system should be developed than on program development and testing zIn the 1990s new agile methods were formulated which yrelied on an iterative approach yallowed for changing requirements ydelivered software quickly to customers

5 Development Methodologies5 Agile Methods Contd. zAgile methods such as extreme programming, Scrum, DSDM and the rational unified process share principles ycustomer involvement yincremental delivery ya focus on people, not the process yembracing of change and maintaining simplicity ybest suited for small or medium-sized systems

6 Development Methodologies6 Root Causes of Software Development Problems zSymptoms that characterise failed projects yInaccurate understanding of end-user needs yInability to deal with changing requirements yModules that do not fit together ySoftware that is hard to maintain or extend yLate discovery of serious project flaws yPoor software quality yunacceptable software performance yuntrustworthy build-and-release processes

7 Development Methodologies7 Root Causes of Software Development Problems zMany projects fail because there is yAd hoc requirements management yAmbiguous and imprecise communication yBrittle architectures yOverwhelming complexity yUndetected inconsistencies in requirements, designs and implementations yinsufficient testing ysubjective assessment of project status

8 Development Methodologies8 Best Practices zBest practices to develop and maintain quality software include: ydeveloping software iteratively yManaging requirements yThe use of component-based architectures yVisual modelling software yContinuously verifying software quality yControlling changes to software

9 Development Methodologies9 Rational Unified Process zThe Rational Unified process (RUP) has two structures (dimensions) yThe horizontal axis, which represents time and shows the life cycle aspects of the process as it unfolds yThe vertical axis, which represents core process workflows, which group activities logically by nature

10 Development Methodologies10 Rational Unified Process Contd. zThe first dimension represents the dynamic aspect of the process as it is enacted ythis is expressed in terms of cycles, phases, iterations and milestones zThe second dimension represents the static aspect of the process yits description is in terms of process components, activities, workflows, artefacts and workers

11 Development Methodologies11 Rational Unified Process Contd.

12 Development Methodologies12 Extreme Programming zThis is probably the best known and most widely used agile method zIn extreme programming (XP) all scenarios are represented as scenarios (user stories) yimplemented as a series of tasks zProgrammers work in pairs and develop tests for each task before writing code

13 Development Methodologies13 Extreme Programming Contd. zAll tests must be successfully executed when new code is integrated into the system zNew versions of the software may be created several times a day zIncrements are delivered to customers roughly every two weeks

14 Development Methodologies14 Extreme Programming Contd. zTraditional software development suggests that you should design for change zXP discards this principle on the basis that anticipated changes often never materialise and is therefore wasted effort

15 Development Methodologies15 Extreme Programming Contd. Select user stories for this release Breakdown stories into tasks Plan release Develop/integrate/ test software Release software Evaluate System XP release cycle

16 Development Methodologies16 Extreme Programming Contd. zXP practices include yIncremental planning ySmall releases and simple design yTest-first development and Refactoring yPair programming yCollective ownership yContinuous integration ySuitable pace yAn on-site customer

17 Development Methodologies17 Extreme Programming Contd. zIn an XP process the customer is involved in specifying and prioritising requirements zThe customer is part of the development team and discusses scenarios with the team zA story card is created which is broken down into tasks and implementation estimates determined zThe customer prioritises the stories zThe software is continually refactored

18 Development Methodologies18 DSDM zThe dynamic systems development method (DSDM) is a non-proprietary rapid application (RAD) development framework zIt is owned, promoted and continuously updated by the DSDM consortium zDSDM is characterised by projects that are delivered on-time and to budget

19 Development Methodologies19 DSDM zDSDM describes yProject management yEstimating yPrototyping yTime boxing yConfiguration management yTesting yQuality assurance yRoles and responsibilities yTeam structures yTools environments yRisk management yBuilding for maintainability yReuse and vendor/supplier relationships

20 Development Methodologies20 DSDM zDSDM is founded on the following basic principles yUsers must be actively involved in the process yEach DSDM team must have the authority to make decisions yDelivery of functionality must be frequent yA deliverable is accepted on the basis of its fitness for the business purpose

21 Development Methodologies21 DSDM yIterative and incremental development is required in order to converge on the correct business solution yAll development changes are reversible yRequires are base lined at a high level yTesting is done throughout the lifecycle yCollaboration between the development team and stakeholders is essential zThese principles are based on best practices

22 Development Methodologies22 DSDM Lifecycle zAt the start of the project a feasibility study and business study are done xthese determines suitability for DSDM zThree cycles of prototyping follow: yFunctional model Iteration xthe development of tested functional prototypes and supporting documentation yDesign and build Iteration xdevelopment process completed by building in non- functional requirements

23 Development Methodologies23 DSDM Lifecycle yImplementation Iteration xthe system is rolled out into the business. This includes activities such as final acceptance testing, user documentation and project review zSeveral elements are put in place to control the development process including yTime boxing yrisk management yquality and testing principles ydefined end products

24 Development Methodologies24 DSDM zRequirements are prioritised using the MoSCoW rules yMust Have, Should Have, Won’t have zThe time for development is fixed (timebox) zMust have requirements are delivered first (in the time box) if there is a time issue zNo particular development technique is mandated

25 Development Methodologies25 SCRUM zThe Scrum methodology is named after the scrum in rugby zSCRUM is an enhancement to the incremental process zScrum treats large portions of the development process as a black box

26 Development Methodologies26 SCRUM Contd. zSince requirements change, the software development process is unpredictable zSCRUM combines tools and techniques with a loose set of activities in order to build the system zSince there is a loose control of activities, risk management controls have been introduced

27 Development Methodologies27 SCRUM Contd. zScrum is characterised by: yA start (planning and system architecture) process ya sprint phase which comprises the develop, wrap, review and adjust activities yAn end (closure) process

28 Development Methodologies28 SCRUM Contd. zMany of the processes in the sprint phase are unidentified and uncontrolled. Risk management is included to prevent chaos, yet allowing maximum flexibility zSprints are flexible and non-linear. Any available knowledge is used; if no information is available then trial and error is used

29 Development Methodologies29 SCRUM Contd. zThe sprinting process results in the final product zDeliverables may be changed at any time during the planning and sprint phases

30 Development Methodologies30 SCRUM Contd. zThe Scrum development process is summarised in the following diagram Planning and system architecture Closure Develop Wrap Review Adjust

31 Development Methodologies31 SCRUM Contd. zIn the planning phase yrisk are identified yproject teams assembled ydevelopment tools selected ycost estimation completed ydelivery date and functionality of one or more releases determined

32 Development Methodologies32 SCRUM Contd. zIn the system architecture phase, domain models are created which define the system context and requirements zIn the sprint phase: yDomain analysis, designing, developing, implementation, testing and documentation are completed during the develop activity yAn executable version of changes is produced during the wrap activity

33 Development Methodologies33 SCRUM Contd. yDuring the review activity work is reviewed by the teams and issues and problems resolved. Highlighted risks are also reviewed yAnd during the adjust activity the information gathered in the review meeting is compiled

34 Development Methodologies34 SCRUM Contd. zFinally, the closure phase is entered when management believes a new release should occur yIn this phase the product is integrated tested, system tested, user documentation and training material completed, as well as marketing material preparation

35 Development Methodologies35 EVO zEVO is an evolutionary delivery methodology zIt delivers a quality product on-time zIt comprises of many short development cycles (typically one week in length) zEach cycle is a waterfall zPerforms evaluation at the end of each cycle so it is done better next time around

36 Development Methodologies36 EVO Contd. zFeatures to be delivered are in priority order ymost important requirements first yhighest risks first yFeatures that educate users about the domain first zAt the end of each cycle a complete, functioning product is produced

37 Development Methodologies37 EVO Contd. zThe metric(s) associated with each requirement determines whether the functionality has been completed zAt the end of the project even if only 80% of the project is completed a working product, with the most important functionality is available

38 Development Methodologies38 EVO Contd. zComparatively, in the waterfall model if only 80% of the project is completed it is likely that the product will not work

39 Development Methodologies39 Some Methodologies Compared

40 Development Methodologies40 Some Methodologies Compared Contd.


Download ppt "Development Methodologies1 zRational Unified Process zExtreme Programming (XP) zDSDM zSCRUM zEVO."

Similar presentations


Ads by Google