Slide 1

Slide 1 text

CSE360 Introduction to Software Engineering Lecture 05: Agile Process Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu Office Hours: By appointment

Slide 2

Slide 2 text

Test Yourselves

Slide 3

Slide 3 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 3 Test Yourselves • Main difference between prototyping and spiral model • Main difference between incremental and spiral model • Would you apply prototyping for a final project? • Would you apply spiral for a final project?

Slide 4

Slide 4 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 4 Test Yourselves • Pros of the Unified Process • Cons of the Unified Process

Slide 5

Slide 5 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 5 Test yourselves • Pac-man video game • Blackboard • A new web page for ASU • Programming labs • Research project or an start up project

Slide 6

Slide 6 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 6 Just Programming ... Agile emerged in the late 1990s and it aim was to radically reduce the delivery time for working software systems

Slide 7

Slide 7 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 7 Previously… Plan-based Agile

Slide 8

Slide 8 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 8 Agile Manifesto • Through this work we have come to value: “Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan “ • That is, while there is value in the items on the right, we value the items on the left more.

Slide 9

Slide 9 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 9 Definition software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams a) adaptive planning to provide a rapid and flexible response to change b) Iterative and incremental lightweight process c) early delivery, d) Feedback-driven empirical approach

Slide 10

Slide 10 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 10 Definition software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams a) adaptive planning to provide a rapid and flexible response to change b) Iterative and incremental lightweight process c) early delivery, d) Feedback-driven empirical approach

Slide 11

Slide 11 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 11 Agile vs Plan-driven Requirements, design, implementation (and testing) are inter-leaved

Slide 12

Slide 12 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 12 Agile in Numbers

Slide 13

Slide 13 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 13 Applicability • Product development where a software company is developing a small or medium-sized product for sale. • Several software products and apps nowadays are small or medium-sized; therefore, they are developed using an agile approach • Custom system development within an organization, where there is a clear commitment from the customer to become involved in the development process and where there are few external rules and regulations that affect the software.

Slide 14

Slide 14 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 14 Pros • The product is broken down into a set of manageable and understandable chunks. • Unstable requirements do not hold up progress. • The whole team have visibility of everything and consequently team communication is improved. • Customers see on-time delivery of increments and gain feedback on how the product works.

Slide 15

Slide 15 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 15 Cons • The informality of agile development is incompatible with the legal approach to contract definition (requirement specification) that is commonly used in large companies. • Agile methods are most appropriate for new software development rather than software maintenance (documentation). Yet the majority of software costs in large companies come from maintaining their existing software systems. • Agile methods are designed for small co-located teams yet much software development now involves worldwide distributed teams.

Slide 16

Slide 16 text

Javier Gonzalez-Sanchez | CSE360 | Summer 2017 | 16 Homework Chapter 3

Slide 17

Slide 17 text

CSE360 – Introduction to Software Engineering Javier Gonzalez-Sanchez [email protected] Summer 2017 Disclaimer. These slides can only be used as study material for the class CSE360 at ASU. They cannot be distributed or used for another purpose.