Download presentation
Presentation is loading. Please wait.
Published byJanis Weaver Modified over 8 years ago
1
Introduction to Agile Development Advanced Software Engineering 603 492 Dr. Nuha El-Khalili
2
Advanced Software Engineering Software Development Models 2
3
Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Plan-driven methodologies Bureaucratic Predictive (resist change) process-oriented Agile methodologies code-oriented (less document-oriented) Adaptive (welcome change) people-oriented 3
4
Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models We want a predictable schedule that can use people with lower skills. To do this we must separate design from construction. Therefore we need to figure out how to do the design for software so that the construction can be straightforward once the planning is done. 4
5
What Do They Think? Customer Designer DeveloperManager Tester Dr. Nuha El-KhaliliAdvanced Software Engineering5
6
Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Design is difficult to predict and requires expensive and creative people Civil engineering models (mathematical analysis)[10% cost] UML-like design look very good on paper, yet can be seriously flawed when you actually have to program [50% cost] 6
7
Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Jack Reeves suggests: –In software: construction is so cheap as to be free –In software all the effort is design, and thus requires creative and talented people –Creative processes are not easily planned, and so predictability may well be an impossible target. –We should be very wary of the traditional engineering metaphor for building software. It's a different kind of activity and requires a different process 7
8
Dr. Nuha El-KhaliliAdvanced Software Engineering Software Development Models Requirements are always changing –Poor requirements engineering ??! Cost information on the requirements. * –Estimation is hard If you cannot get stable requirements you cannot get a predictable plan. * 8
9
Dr. Nuha El-KhaliliAdvanced Software Engineering Adaptivity Iterative development: –Incremental, Evolutionary, Spiral, UP –Produce working versions of the final system that have a subset of the required features –Fully integrated and carefully tested 9
10
Adaptive Customer Bids Fixed price contract requires stable requirements predictive process Customer has more control over the software development process Dr. Nuha El-KhaliliAdvanced Software Engineering10 Time PriceScope
11
Adaptive Customer People learn what elements are valuable, when they have had a chance to play with the software People learn about their needs as the system gets built Constant reworking of the plan with every iteration risk control Dr. Nuha El-KhaliliAdvanced Software Engineering11
12
Adaptive Customer A good predictive project will go according to plan (time and Budget) A good agile project, did the customer get software that is valuable? Dr. Nuha El-KhaliliAdvanced Software Engineering12
13
Putting People First Executing an adaptive process is not easy. It requires very effective team of developers The team needs to be effective both in the quality of the individuals, and in the way the team blends together Most good developers prefer an adaptive process. Dr. Nuha El-KhaliliAdvanced Software Engineering13
14
Putting People First Traditional methodologies –People as resources (replaceable parts) –How many you have?? Alistair Cockburn: Predictable processes require components that behave in a predictable way People are not predictable components Dr. Nuha El-KhaliliAdvanced Software Engineering14
15
Putting People First Often software processes are imposed by management Management have significant amount of time away from active development. (technical skills are obsolete) Developers must be able to make all technical decisions Developers and management have an equal place in the leadership of the project Dr. Nuha El-KhaliliAdvanced Software Engineering15
16
Self-Adaptive Process Change the process for the next iteration –What did we do well? –What have we learned? –What can we do better? –What puzzles us? No corporate or organization methodology Dr. Nuha El-KhaliliAdvanced Software Engineering16 Adapt software to meet changes in requirements Team adapt the process Adaptive
17
Agile Development A philosophy* of software development Agile Manifesto 2001 Under this broad umbrella sits many more specific approaches –Extreme Programming, Scrum, RUP, Lean Development, Feature driven development,.. Agile alliance –Non-profit group to promote agile methods –http://agilealliance.org/ Dr. Nuha El-KhaliliAdvanced Software Engineering17
18
Agile Development characteristics Break tasks into small increments with minimal planning Iterations are short time frames (timeboxes) Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, Integration Working product is demonstrated to stakeholders Dr. Nuha El-KhaliliAdvanced Software Engineering18
19
Agile Development characteristics Team composition in an agile project is usually cross-functional and self- organizing Emphasize face-to-face communication over written documents Customer representative review progress and re-evaluate priorities with a view to optimizing the return on investment (ROI) Dr. Nuha El-KhaliliAdvanced Software Engineering19
20
Agile Development Dr. Nuha El-KhaliliAdvanced Software Engineering20
21
Agile Benefits Higher productivity Higher quality Reduced time-to-market Improved stakeholder satisfaction Increased job satisfaction More engaged employees See Results 2010 Dr. Nuha El-KhaliliAdvanced Software Engineering21
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.