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
AGILE DEVELOPMENT Outlines : Quick Look of agile development Agility
SDLC – Beyond the Waterfall
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Development Life-Cycle Models
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),
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Agile development By Sam Chamberlain. First a bit of history..
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
SE 555 – Software Requirements & Specifications Introduction
Software Development Models: Waterfall and Spiral Sung Hee Park Department of Mathematics and Computer Science Virginia State University August 21, 2012.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
An Agile View of Process
Software engineering Process models Pavel Agejkin.
Classical vs. Agile Requirements Development Svetlin Nakov Telerik Software Academy academy.telerik.com Senior Technical Trainer
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
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.
IS2210: Systems Analysis and Systems Design and Change Twitter:
CPSC 371 John D. McGregor Session 22 Process. Specification and design problem solution specification implementation specification.
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.
Unified Process versus Extreme Programming. Outline Compare and contrast UP and XP  Processes / Disciplines  Management  Artefacts Risk management.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
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.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 4 Agile Development Discussion of Agile Development and Agile Process.
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.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
1 Requirements Engineering for Agile Methods Lecture # 41.
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
Agile Methodology. -Dhanashree Kumkar -Plus91 Technologies.
 System Requirement Specification and System Planning.
Software Engineering cosc 4359 Spring 2017.
Embedded Systems Software Engineering
Agile/XP Introduction
Chapter 5 Agile Development Moonzoo Kim KAIST
AGILE SCRUM METHODOLOGY
Agile Training Day 2 November 17, 2015.
Software Engineering Process
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
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
Agile Development.
System Development Methods
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  The Formal Approach: Specifications  The Agile Approach: User Stories  UI Prototyping 2

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 4

 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 5

 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 6

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 8

 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. 9

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

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

 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 14

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 17

 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)  Or more informal set of assets  Prototyping is often used, especially for the user interface (UI) 18

 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. 19

 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 20

Live Demo

The Agile Principles in Requirements Process

 Requirements specifications are too heavy  Does not work well in dynamic projects that change their requirements every day  Agile development needs agile requirements  Split into small iterations  How to split the requirements?  Use simple, informal requirements description  User story: a small feature that brings some value to the end-user 23

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

25

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

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

Live Demo

Using UI Prototypes instead of Specification

 A software UI prototype is a prototype of the software functionality and user interface  Sketch of the UI matching the requirements  Empty pages / forms / dialogs / tables / buttons  Just to outline how the UI could look like  A software prototype could be:  Static (e.g. paper / whiteboard prototypes)  Live (link / button simulate system behavior)  Throw-away prototypes vs. usable prototypes 30

 Tools for UI prototyping  Paper, pen and your hand  The most universal prototyping tool  Balsamiq Studio – balsamiq.com balsamiq.com  Microsoft Expression SketchFlow  Part of MS Expression Studio  Pencil Project – pencil.evolus.vn pencil.evolus.vn  … and many more  The best UI prototyping tools are paid 31

Live Demo

Questions?