Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer www.nakov.com.

Slides:



Advertisements
Similar presentations
Keith McMillan Principal, Adept Technologies Copyright (C) 2008, Adept Technologies llc.
Advertisements

Software Development Practices and Methodologies Svetlin Nakov Telerik Corporation
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
SDLC – Beyond the Waterfall
COPYRIGHT © 2012 ALCATEL-LUCENT. ALL RIGHTS RESERVED. 1 Agile documentation development methodology Giby Panicker and Judith Benjamin 1-Dec-2012.
PROC-1 3. Software Process. PROC-2 What’s a process? Set of activities in creating software It involves creativity –hard to automate –Requires human judgment.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Development Practices and Methodologies Svetlin Nakov Telerik Academy academy.telerik.com.
CS3773 Software Engineering Lecture 01 Introduction.
Sharif University of Technology Session # 3.  Contents  Systems Analysis and Design Sharif University of Technology MIS (Management Information System),
Agile development By Sam Chamberlain. First a bit of history..
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
SE 555 – Software Requirements & Specifications Introduction
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Software engineering Process models Pavel Agejkin.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Development Process
1 Agile Methodology & Programming Ric Holt July 2009.
Agile Programming Principles.
The Agile Primer July 2008 © ThoughtWorks 2008.
Chapter 4 Agile Development
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
..OR SOMETHING THAT LOOKS LIKE IT SCOTT TURNBULL SOFTWARE ENGINEERING MANAGER EMORY UNIVERSITY LIBRARIES Agile Development.
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
Alcatel-Lucent CDC Workshop, Coaching & Knowledge Transfer Project Management.
AgileCamp Presents: Agile 101. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons Attribution.
Software Development Practices and Methodology Svetlin Nakov Telerik Software Academy academy.telerik.com Manager Technical Training
By Saravanan Bala. General Report 31 % of Software projects are cancelled 75 % of the software projects are considered failures by the people who initiated.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
AGILE SOFTWARE DEVELOPMENT PROCESSES Cheruku Smitha.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
UX meets XP. Overview of core approaches to creating interactive software Waterfall, iterative design, Agile Hybrid methods of evaluation H&P Chapter.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Module 2: What is Agile? Why use it? TLO: Given a DoD program involved in software development, the student will recognize situations where applying agile.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Think Scrum, act Scrum Scrum Practitioner like a boss Thibault Clavier.
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
Agile Gintarė Bernotaitytė © 2013.
4.2 SOFTWARE DEVELOPMENT METHODOLOGGY PRESENTED BY : AZURA IBRAHIM SYARIFAH SYAZA BTE SEYD ZULKAFLY CS230(5A)
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Agile/XP Introduction
Chapter 5 Agile Development Moonzoo Kim KAIST
Software Development Overview
AGILE SCRUM METHODOLOGY
Agile Training Day 2 November 17, 2015.
Software Engineering Process
Agile Software Development
Iterative and Agile Development
Domains of Agility Being Agile Doing Agile Evan Leybourn, 2016 PROCESS
Requirements and User Stories
Approaches to Systems Development
Introduction to Software Engineering
Tim Hirner - Flagship Speakers January 23, 2014
Teaching slides Chapter 1.
Lecture 2 Revision of Models of a Software Process
Agile Process: Overview
Introduction to Agile Blue Ocean Workshops.
Software Engineering Fundamentals
Topic 1: Introduction to the Module and an Overview of Agile
Agile Development.
System Development Methods
Software Development Overview
SD5953 Successful Project Management AGILE SOFTWARE DEVELOPMENT
Presentation transcript:

Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer

1. Software Engineering Overview 2. Development Methodologies Overview 3. Software Requirements Overview  Specifications  Prototyping  User Stories

Requirements, Design, Construction, Testing, …

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software Definition by IEEE

 Software engineering is:  An engineering discipline that provides knowledge, tools, and methods for:  Defining software requirements  Performing software design  Software construction  Software testing  Software deployment and maintenance tasks  Software project management

 Software development always includes the following activities (to some extent):  Requirements analysis  Design  Construction  Testing (sometimes)  These activities do not follow strictly one after another (depends on the methodology)!  Often overlap and interact Software Project Management

Waterfall, Scrum, Lean Development, Kanban, Extreme Programming

 A development methodology is a set of practices and procedures for organizing the software development process  A set of rules that developers have to follow  A set of conventions the organization decides to follow  A systematical, engineering approach for organizing and managing software projects

 Back in history  The "Waterfall" Process  Old-fashioned, not used today  Rational Unified Process (RUP)  Microsoft Solutions Framework (MSF)  Modern development methodologies  Agile development processes  Scrum, Kanban, Lean Development, Extreme Programming (XP), etc.

 The waterfall development process: SoftwareRequirementsSoftwareRequirements SoftwareDesignSoftwareDesign Implementation(Coding)Implementation(Coding) Verification(Testing)Verification(Testing) Operation(Maintenance)Operation(Maintenance)

“Our highest priority is to satisfy the customer through early and continuous delivery of valuable software“ Manifesto for Agile

 Incremental  Working software over comprehensive documentation  Cooperation  Customer collaboration over contract negotiation  Straightforward  Individuals and interactions over processes and tools  Adaptive  Responding to change over following a plan

15

Functional, Non-functional Requirements, SRS

 Software requirements define the functionality of the system  Answer the question "what?", not "how?"  Define constraints on the system  Two kinds of requirements  Functional requirements  Non-functional requirements

 Requirements analysis starts from a vision about the system  Customers don't know what they need!  Requirements come roughly and are specified and extended iteratively  The outcome might be the Software Requirements Specification (SRS)  Prototyping is often used, especially for the user interface (UI)

 The Software Requirements Specification (SRS) is a formal requirements document  It describes in details:  Functional requirements  Business processes  Actors and use-cases  Non-functional requirements  E.g. performance, scalability, constraints, etc.

 It is always hard to describe and document the requirements in comprehensive way  Good requirements save time and money  Requirements always change during the project!  Good software requirements specification reduces the changes  Prototypes significantly reduce changes  Agile methodologies are adaptive to changes

Live Demo

Using UI Prototypes instead of Specification

 Software prototype is a prototype of the software functionality  Sketch of the UI matching the requirements 23c

 Paper and pen  The most universal prototyping tool  Balsamiq Studio – balsamiq.com balsamiq.com  Microsoft Expression SketchFlow  Pencil Project – pencil.evolus.vn pencil.evolus.vn 24

Live Demo

The Agile Principles in Requirements Process

 User story  User needs to accomplish something  Written informal (in words / images)  Looks like use-case but is different  User stories have  Actor (who?)  Goal (what?, why?)  Other info  Owner, estimate, … 27c

28

 Card  A brief description of the feature  In "Actor –goal" format  Conversation  More details, s, chats, images, etc.  Confirmation  Test scenarios for success and failure 29

 A well written User Story should follow the INVEST model  Independent  Negotiable  Valuable  Estimable  Small  Testable 30

Live Demo

Questions?