Software Requirements and Specification



Similar documents
How To Understand The Limitations Of An Agile Software Development

Agile Development Overview

Copyright protected. Use is for Single Users only via a VHP Approved License. For information and printed versions please see

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Agile Projects 7. Agile Project Management 21

Global Standards and Publications

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

Software Development with Agile Methods

Capstone Agile Model (CAM)

LEAN AGILE POCKET GUIDE

History of Agile Methods

Software processes that are:

How to manage agile development? Rose Pruyne Jack Reed

The Agile Glossary of Terms

Understanding agile project management methods using Scrum H. Frank Cervone Purdue University Calumet, Hammond, Indiana, USA

When is Agile the Best Project Management Method? Lana Tylka

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Issues in Internet Design and Development

AGILE SOFTWARE DEVELOPMENT

Introduction to Agile Software Development. EECS 690 Agile Software Development

What is Scrum? Scrum Roles. A lean approach to software development. A simple framework. A time-tested process

Introduction to Agile Software Development

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

Scrum methodology report

Agile Engineering Introduction of a new Management Concept

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Software Development: Novel Approaches For Software Engineering

Agile Methodologies XP and Scrum

Frank Cervone Vice Chancellor for Information Services and Chief Information Officer Purdue University Calumet January 17, 2012 CARLI Anatomy of a

Introduction to Software Engineering: Overview and Methodologies

Introduction to Agile Software Development Process. Software Development Life Cycles

Introduction to Agile Scrum

Agile Project Management

Hamid Faridani March 2011

software studio software development processes Daniel Jackson

Agile and Secure: Can We Be Both?

Scrum. in five minutes

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Requirement Gathering for small Projects using Agile Methods

Agile and PRINCE2 And how they integrate. enterprise.bcs.org

Software Development Methodologies

D25-2. Agile and Scrum Introduction

Agile Project Management By Mark C. Layton

Agile Project Management with Scrum

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Build Your Project Using Scrum Methodology #3 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

SECC Agile Foundation Certificate Examination Handbook

COMP 354 Introduction to Software Engineering

Getting Agile with Scrum. Mike Cohn - background

Development. Lecture 3

CSSE 372 Software Project Management: More Agile Project Management

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

Introduction to Agile and Scrum

Introduction to Agile

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

Agile Project Management. What it is and what it isn t

How To Plan A Project

An Introduction to Scrum

The Agile Manifesto is based on 12 principles:

Software Development Methodology Development Process Aress

"Bezpieczny Projekt"

(General article) An Empirical Study of Agile Software Development. Ajay Deep a* Department of Information Technology, OITM, Hisar

Role of Agile Methodology in Software Development

Extreme Programming, an agile software development process

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

PMP vs. Scrum Master

The Agile Glossary of Terms

CSSE 372 Software Project Management: Managing Agile Projects

Agile Methodologies and Its Processes

Agile with XP and Scrum

Agile Software Engineering Practice to Improve Project Success

Alternative Development Methodologies

Coordination Between Teams in Agile Projects

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Agile Project Management

Agile Software Development

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

Agile Software Development. Mohsen Afsharchi

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Comparing Scrum And CMMI

Bridging the Gap: Traditional to Agile Project Management. I. S. Parente 1. Susan Parente, PMP, PMI ACP, CISSP, PMI RMP, ITIL, MSEM;

What s Lean Agile & How does it allow teams to progressively improve customer satisfaction & service delivery?

Akhil Kumar 1, Bindu Goel 2

Business Analysts in an Agile World. Christian Antoine

EPL603 Topics in Software Engineering

Agile Software Project Management Methodologies

Agile project management is a style of project management that focuses

Advanced Software Engineering. Software Development Processes

Transcription:

Software Requirements and Specification Agile Methods SE3821 - Jay Urbain Credits: Beck, K. (1999). Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley. Beck, Kent; et al. (2001). Manifesto for Agile Software Development. Agile Alliance. Retrieved 2010-06-14. Larman, Craig; Basili, Victor R. (June 2003). Iterative and Incremental Development: A Brief History. Computer 36 (6): 47 56. 1

Agile Methods 2

Agile Development Methods Iterative and incremental software development methodology. Requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. Promotes: adaptive planning evolutionary development and delivery, and a time-boxed iterative approach Encourages rapid and flexible response to change. Note: Agile management methods can (and are) be applied to development projects other than software development. 3

Background IBM's Service Bureau Corporation documented adaptive development techniques in 1957. Paper by E. A. Edmonds (1974) introduced an adaptive software development process. Beck, K. (1999). Extreme Programming Explained: Embrace Change. Boston, MA: Addison-Wesley. Beck, Kent; et al. (2001). Manifesto for Agile Software Development. Agile Alliance. Retrieved 2010-06-14. Larman, Craig; Basili, Victor R. (June 2003). Iterative and Incremental Development: A Brief History. Computer 36 (6): 47 56. 4

Why Agile Development? Lightweight software development methods evolved in the mid-1990s as a reaction against heavyweight methods characterized as: heavily regulated regimented micromanaged waterfall model of development 5

Agile Method Implementations Early implementations of lightweight (Agile) methods include: Scrum (1995) Crystal Clear (1996) Extreme Programming (1996) Adaptive Software Development (1995) Feature Driven Development (1995) Dynamic Systems Development Method (DSDM) (1995) Now typically referred to as agile methodologies, after the Agile Manifesto published in 2001. 6

Agile Manifesto Beck, Kent; et al. (2001). "Manifesto for Agile Software Development". Agile Alliance. Retrieved 2010-06-14. Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan Note: While there is value in the items on the right, we value the items on the left more. 7

Agile Manifesto Principles 1. Customer satisfaction by rapid delivery of useful software 2. Welcome changing requirements, even late in development 3. Working software is delivered frequently (weeks rather than months) 4. Working software is the principal measure of progress 5. Sustainable development, able to maintain a constant pace 6. Close, daily co-operation between business people and developers 7. Face-to-face conversation is the best form of communication (colocation) 8. Projects are built around motivated individuals, who should be trusted 9. Continuous attention to technical excellence and good design 10. Simplicity 11. Self-organizing teams 12. Regular adaptation to changing circumstances 8

Agile Methods Promote development, teamwork, collaboration, and process adaptability throughout the life-cycle of the project. Break tasks into small increments with minimal planning. Iterations are short time frames (timeboxes) that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle: planning, requirements analysis, design, coding, unit testing, and acceptance testing working product demonstrated to stakeholders. 9

Agile Methods Minimizes overall risk and allows the project to adapt to changes quickly. Stakeholders produce documentation as required. Multiple iterations may be required to release a product or new features. Team composition in an agile project is usually crossfunctional and self-organizing. Agile team will always contain a customer representative. Most agile implementations use a routine and formal daily face-to-face communication among team members 10

Agile Process 11

Extreme Programming 12

Extreme Programming Goal: Improve software quality and responsiveness to changing customer requirements. Advocates frequent "releases" in short development cycles (timeboxing) intended to improve productivity and introduce checkpoints where new customer requirements can be adopted. Takes its name from the idea that the beneficial elements of traditional software engineering practices are taken to "extreme" levels, on the theory that if some is good, more is better. 13

Extreme Process 14

Extreme Programming Other elements of extreme programming include: programming in pairs extensive code review unit testing of all code avoiding programming of features until they are actually needed flat management structure simplicity and clarity in code expecting changes in the customer's requirements as time passes and the problem is better understood frequent communication with the customer and among programmers 15

Extreme Origins Created by Kent Beck while working on the Chrysler Comprehensive Compensation System (C3) payroll project (1996). Beck wrote Extreme Programming Explained (1999). Rise of the Internet and the dot-com boom emphasized speed-to-market as competitive business factors. Rapidly-changing requirements demanded short product life-cycles (incompatible with traditional methods). 16

Scrummage Scrum (abbreviated form of scrummage), a way of restarting a game, either after an accidental infringement or (in rugby) when the ball has gone out of play. 17

Scrum Background Iterative, incremental framework for project management (1986, Hirotaka Takeuchi and Ikujiro Nonaka). DeGrace and Stahl (1991) coined the scrum approach referring to the manner of restarting a rugby game after a minor infraction. Often seen in agile software development (introduced by 1995, Sutherland and Schwaber). 18

Scrum Characteristics Scrum Process skeleton that contains sets of practices and predefined roles. The main roles in Scrum are: Scrum Master Maintains the processes (project manager) Product Owner Represents the stakeholders and the business Team Cross-functional group who do the actual analysis, design, implementation, testing, etc. Sprint Basic unit of development (iteration). Fixed interval of 1 to 4 weeks (timeboxed). 19

Scrum Characteristics Daily Scrum During the sprint, a project status meeting occurs. Burn down During the sprint burn down chart is a publicly displayed chart showing remaining work in the sprint backlog. Many additional processes, artifacts, and terms! 20

Bottom Line A development process is a means to an end, and has to work for your application and organization. Critical for team members to understand application needs (requirements) and not get off track agile helps us with this. The less certain the requirements the more agile we need to be. In all cased, understanding customer needs is critical and we often can not adequately elicit customer requirements without providing them something to evaluate. Successfully delivered projects are all about reducing risk, understanding the needs of the customer, and be able to adapt to change. Once you start using something, your needs evolve. And this is life ;-). 21