Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?

Slides:



Advertisements
Similar presentations
Agile Software Development کاری از : مهدی هوشان استاد راهنما : استاد آدابی.
Advertisements

Agile Development Primer – Using Roundtable TSMS in an Agile Shop Michael G. Solomon Solomon Consulting Inc.
What is Agile? Agile is a software methodology based on iterative and incremental development, where requirements and solutions evolve through collaboration.
SCRUM John Drew. SCRUM - overview Scrum is a project management discipline that has evolved since the early 1990s to deliver software that meets business.
NAUG NAUG Knowledge Evening – th February 2007.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Agile development By Sam Chamberlain. First a bit of history..
XP – eXtreme Programming A gentle introduction. Cleviton Vinícius Jobson Ronan Thiago Rodrigues.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Wael Ellithy, Ph.D. Arx ICT  Agile Software Development  Scrum Framework  Scrum Rules and Process  Scrum In Industry.
Introduction to Agile.
Agile Methodologies for Project Management By – Komal Mehta.
An Overview of Agile L e a d i n g C h a n g e T h r o u g h C o l l a b o r a t i o n.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Software Development Landscape
Dr. Tom WayCSC Software Processes CSC 4700 Software Engineering.
CSE G674/2009 Project Project Management Section Presented by: Amir Aref Adib.
Agile Software Development Brian Link
Chapter 5 Software Process Models. Problems with “Traditional” Processes 1.Focused on and oriented towards “large projects” and lengthy development time.
Agile Software Development Chapter 3 – Lecture 1 Adrián Susinos.
Software Engineering- Scrum 徐 瑋 Alen 林芳瑜 Flora 1.
Current Trends in Systems Develpment
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
Agile Methodologies: Comparative Study and Future Direction 林佳蓁 資工 4B.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Computer Science and Software Engineering© 2014 Project Lead The Way, Inc. Software Design Process.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
CS3100 Software Project Management Agile Approaches.
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Agile Information Management Development. Agile Project Management Characteristics  Acceptance and even welcome of changing requirements  Incremental.
Presentation from: See Also: scrumreferencecard.com/ScrumReferenceCard.pdf.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Intelligence and Information Systems 1 3/17/2004 © 2004 Raytheon Company USC/CSE Executive Workshop on Agile Experiences March 17, 2004 A Raytheon Agile.
CS223: Software Engineering Lecture 16: The Agile Methodology.
Agile 101. Feasibility Study SDLC – What is it? Systems Development Life Cycle: The most commonly used, and generally accepted, project management approach..
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Introduction to Software Engineering Muhammad Nasir Agile Software Development(2)
Introduction to Agile. Introduction Who is this guy?
Kanban Advanced Software Engineering Dr Nuha El-Khalili.
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Managing Agile Software Development Teams Using Scrum AKA: Wrangling Developers for Fun and Profit!
The Scrum Framework Presented by Somnath Ghosh Scrum Practitioner 24 hours weeks.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Copyright © Curt Hill Scrum Software Development Paradigms What is a Scrum?
Scuola Politecnica Dipartimento DITEN Università degli Studi di Genova An Introduction to Scrum and XP Prof. Riccardo Berta.
AGILE METHODS Curtis Cook CS 569 Spring 2003.
Embedded Systems Software Engineering
Agile Methodology and Scrum
Agile Training Day 2 November 17, 2015.
CSC 355 – Newer Approaches to System Development Life Cycles & Processes, Spring 2017 March 2017 Dr. Dale Parson.
Wael Ellithy, Ph.D. Arx ICT
The Waterfall Methodology
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Scrum CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Extreme Programming.
Product Backlog List of things that needs to be done to make the product come into existence 
Rapid software development
Scrum MODULE 3 – Part 3.
What do you need to know about XP?
Agile and XP Development
Introduction to Agile Blue Ocean Workshops.
Coming up: What is Agile?
Agile Development – a new way of software development?
Agile software development
Presentation transcript:

Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?

Introduction Most of this should be a review from previous courses We will consider briefly the following: –Waterfall model –eXtreme Programming (XP) –Scrum You should know something already on all of these topics Copyright © 2015 Curt Hill

Waterfall Model This is a classic engineering model Predates software engineering in its use by other engineering disciplines Copyright © 2015 Curt Hill

Waterfall Model Copyright © 2015 Curt Hill Requirements Design Unit Implementation Operation & Maintenance System Integration

Waterfall Problems Works better for very large projects –Must have solid managerial support Many such projects are canceled before rolling out the product The volatility of requirements Technical debt accumulates and is not visible until late in the project Copyright © 2015 Curt Hill

Technical Debt Unfinished work that is required by a design –Most often seen in projects that are released early Like financial debt this accrues interest making changes more difficult later –Prevents or makes more difficult enhancements Copyright © 2015 Curt Hill

Waterfall Debt We do not see the problems early enough –Requirements were insufficient –Design was poor –Early code was not good These problems come home to roost at the end of the project –This is when it is most difficult to change About 18% of real world projects are using Waterfall Copyright © 2015 Curt Hill

Alternatives Agile, iterative, evolutionary are now much more common The idea is quickly develop small code bases that deal with just the basics Add one feature at a time We prepare for failure by being ready to junk the whole mess if it does not satisfy the users All stakeholders review Copyright © 2015 Curt Hill

eXtreme Programming (XP) One of the first agile methodologies Goals to produce high quality software and increase programmer productivity XP has a set of: –Activities –Values –Rules –Principles Copyright © 2015 Curt Hill

XP Activities Coding – duh! Testing –Unit tests –Acceptance tests Listening –To the business experts and each other Designing –Overall structure of the system Copyright © 2015 Curt Hill

XP Values 1 Communication –Between the business experts and every member of the XP team Simplicity –Find the simplest solution – it can be made more complicated later Feedback –System: unit and integration tests –Customers: acceptance tests –Team: to the customers on requirements Copyright © 2015 Curt Hill

XP Values 2 Courage –Design for today, not tomorrow –Be fearless in refactoring, not allowing a poor design to hold things back Respect –For self: believe that you can produce high quality code –For others: do nothing that will cause impediments for rest of team Copyright © 2015 Curt Hill

XP Rules Frequent small releases Code unit tests before the unit Pair programming Only one pair integrates code at a time No release unless code passes all unit tests Finding a bug tests are improved Collective code ownership Copyright © 2015 Curt Hill

XP Principles Feedback –Frequently and promptly to keep project on track Simplicity –Often we are asked to consider the future –XP rejects, as the future is unpredictable Change –Is inevitable –Accept and move on from there Copyright © 2015 Curt Hill

Scrum An agile development process A process framework to manage software development It defines scrum teams with: –Roles –Events –Artifacts –rules Its approach is not incompatible with XP What is scrum named after? Copyright © 2015 Curt Hill

Scrum Team Three distinct roles: –Product Owner –Development Team –Scrum Master Teams are self-organizing Should have all the skills needed to accomplish their goal Products are produced incrementally Each increment should produce a workable product Copyright © 2015 Curt Hill

Terminology Product Backlog –Prioritized list of the features needed in the product Sprint –A time period that sees the production of a new or improved workable product –This is intending to implement a Sprint Goal –Typically less than a month Sprint Backlog –Those features intended to be implemented in this sprint Copyright © 2015 Curt Hill

Product Owner Creates and manages the Product Backlog –The only one to do so Sole interface with the business –Should be a business expert, not necessarily a development expert Makes sure the Development team understands the items in the backlog Copyright © 2015 Curt Hill

Development Team Do the work of development Organize and manage their own work –Self organizing Cross functional –All the skills necessary must be present in the team No: –Sub-teams –Titles –No ranking in importance Copyright © 2015 Curt Hill

Scrum Master Interface between the team and nearly everyone else Insulates the team from outside pressures Assists the Product Owner in managing the Backlog and facilitating events Assists the team in a coaching fashion Not a project manager Copyright © 2015 Curt Hill

Events The sprint Sprint Planning –A meeting that determines what can be delivered and this will be done Daily Scrum –A short meeting to synchronize activities Sprint Review –Final meeting in the Sprint to determine what has and has not been done Copyright © 2015 Curt Hill

XP and Scrum Scrum is an agile management methodology, while XP is an agile engineering methodology Duration of increments –XP 1-2 weeks, Scrum 2-4 Work goals –XP in customer defined order, Scrum has some choice Goal changes are disallowed in Scrum but possible in XP Copyright © 2015 Curt Hill

Finally System development methodologies vary substantially Traditional methodologies do well with good specifications and solid organizational support Agile methodologies can do well where these are absent –Many software development projects are knowledge acquisition projects which tends to favor the agile approach Copyright © 2015 Curt Hill