Web Application Development Process

Similar documents
An Introduction to Scrum. Mountain Goat Software, LLC

An Introduction to Scrum

Requirements. Mountain Goat Software, LLC. Scrum in 100 words. Mountain Goat Software, LLC

An Introduction to Scrum

Getting Agile with Scrum

Scrum. Juan Gabardini. Administración y Control de Proyectos Informáticos II. Universidad de Buenos Aires. 1 er cuatrimestre 2007

Agile and Scrum 101 from the Trenches - Lessons Learned

Scrum - Introduction. Petri Heiramo. Agile Coach, CST

Certified Scrum Master

Advanced Software Engineering. Lecture 7: Agile Development by Prof. Harold Liu

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Agile Development Methods: Philosophy and Practice. CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

Processes and Life- Cycles. Kristian Sandahl

Oracle Unified Method (OUM) Using OUM with Agile Techniques. Jan Kettenis Oracle Global Methods Oracle Consulting Netherlands

Management by Consensus

HELP!!! THE SCRUM MASTER IS THE IMPEDIMENT!

Burn Up and Burn Down An Overview of Scrum. Neal Kuhn Business Systems Architects, LLC

AGILE SOLUTIONS. Agile Basics

Thriving in an Agile Environment. Kathryn Poe Rocky Mountain Chapter Feb 16, 2012

An Introduction to Scrum

SCRUM GUIDE SCRUM GUIDE 02. * Agile Software Development with Scrum, Ken Schwaber, Microsoft Press, 2004

Copyright Intertech, Inc All Rights Reserved. May 18, 2011

Agile Project Management

Two Branches of Software Engineering

What is Scrum: An Introduction to the Scrum Framework

Agile Software Development

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Introduction to Agile and Scrum

How to Prepare for and Implement a Project Using Scrum

Chapter 3 Agile Software Development

Agile Software Development Agreements: Navigating the Complex Contracting Issues

Scrum Team Roles and Functions

software development lifecycle (sdlc) models & agile methods

AHGILE A N D B O O K

Debunking Agile Myths

Introduction to Agile/Extreme Programming

Agile Software Development. Agile Software Development Basics. Principles of the Agile Alliance. Agile Manifesto. Agenda. Agile software development

Agile Software Development

20 October /21/2011 1

Scrum, Creating Great Products & Critical Systems

Scrum and Agile Processes. Dr.-Ing. Oliver Ciupke Haufe-Lexware GmbH & Co. KG 2011

Major attributes of the Lifecycle. The Systems Development Lifecycle. Project phases. Planning. Design. Analysis

Questioning Extreme Programming

Product Owner Training - From Idea to Implementation. Robin Dymond Mark Pushinsky

International Scrum Master Foundation. Study Guide Take the Certification online

Sample Exam ISTQB Agile Foundation Questions. Exam Prepared By

Introduction to Scrum

Software Engineering Lecture 5 Agile Software Development

AGILE methodology- Scrum

THE ADVANTAGES OF AGILE METHODOLOGIES APPLIED IN THE ICT DEVELOPMENT PROJECTS

Agile Software Development

Student Scrums Workshop. Tom Reichlmayr Rochester Institute of Technology Department of Software Engineering

Agile & Lean / Kanban

AGILE FOR NON-IT PRACTITIONERS

Owning An Agile Project: PO Training Day 2

AGILE SOFTWARE DEVELOPMENT. Keith Pine Kumeel Alsmail Parker Li Björn Davis

Scrum. a description. V Scrum Alliance,Inc 1

AGILE FOR NON-IT PRACTITIONERS

Scrum (development) From Wikipedia, the free encyclopedia

Scrum Intro What s in it for me?

Johanna Rothman. Chapter 1 Why Agile and Lean Approaches Work. Copyright 2017

Scrum Testing: A Beginner s Guide

Designing the Process. A Brief Introduction to Agile Programming

This course will explore how your projects can easily and successfully make the transition to an effective Agile environment.

Agile 101. Brent Hurley Chief Problem Solver Gira Solutions. Values, Principles

Improving Agile Execution in the Federal Government

Software Systems Design

Chicago PMO Roundtable March 2015

Michael Prince PMI-ACP Application Development Manager Richland County

Part 1. Software engineering Facts. CSC 4181 Compiler Construction Software Engineering Lectures. What is software engineering? What is software?

Lecture 29: Agile Design and Extreme Programming

Software Development Methodologies. CSC 440: Software Engineering Slide #1

AGILE TEST MANAGEMENT WITH VISUAL STUDIO

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Session 11E Adopting Agile Ground Software Development. Supannika Mobasser The Aerospace Corporation

Software Life Cycle. Main Topics. Introduction

Chapter 3 Software Process Model

approach to successful project

An Evolutionary Lifecycle Model with Agile Practices for Software Development at ABB

Introducing Enterprise Scrum for Business Agility: Scale Scrum from Single Teams to Whole Organizations

WELCOME TO INTRO TO AGILE PROJECT MANAGEMENT AUBREY KAIGLER, PMP, ITIL. Please configure your audio: Meeting Audio Setup Wizard

BA25-Managing the Agile Product Development Life Cycle

Exam 2012, Lecture Project Management

A case. Management SPM

Can Your Proposal Process Be More Agile?

CS2310 Software Engineering Fall 2015 Project Report. Displanner (Distributed Scrum/Sprint Planner) By: Bhavin Modi Jose Michael Joseph Vivek Punjabi

From Adoption to Transition

Presented by Only Agile. What is Agile?

Welcome to this IBM Rational podcast, The. Scaled Agile Framework in Agile Foundation for DevOps. I'm

PMI-ACP Exam Preparation Course Introduction

Agile Development Doesn t Have to Mean Fragile Enterprise Processes

CM MatchPoint Agile. Christoph Heinrich, CM First Plex Track A / Session 17

AGILE EXECUTIVE OVERVIEW

Agile Business Analysis - Resurgence. Dorothy Tudor - TCC

PMI Agile Certified Practitioner (PMI-ACP) Duration: 48 Hours

1. The Case for Agile 2. The Scrum Process 3. Scaling Scrum

Extreme programming XP 5

SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC)

Agile and CMMI : Disciplined Agile with Process Optimization

Patrick Masson Chief Technology Officer University of Massachusetts Office of the President, UMassOnline

Transcription:

Web Engineering Web Application Development Process Copyright 2015 Ioan Toma & Srdjan Komazec & Nelia Lassiera 1

Where are we? # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 26 th March Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability 7 30 th April Web Technologies I 8 7 th May Web Application Security 9 21 th May Web Application Development Process 10 28 th May Web Technologies II 11 11 th June Project Management for Web Applications 12 18 th June Mobile Application Development 13 25 th June Final Exam 2

Overview Introduction Definitions Requirements for a Web Application Development Process Rational Unified Process (RUP) Extreme Programming (XP) SCRUM Meta-processes Wrap-up 3

INTRODUCTION 4

The Need for a Formal Process Many projects are done quick and dirty Pro: shorter development times Con: low quality, i.e. higher operation & maintenance costs Two solutions: Adapt existing conventional software process models Models often provide flexibility But are they always a good fit? Develop new Web application specific process models 5

Definitions: Model vs. Method Process Model Describes the development approach in the overall context When something should be done Falls under the organizational aspects Examples: RUP, XP Heavyweight vs. lightweight the degree of process formalization Method Describe the development approach in details How something should be done When it can be done Falls under content-specific aspects Example: a UML diagram 6

Definitions: Model vs. Method E.g. If the use of a specific UML diagram is recommended to achieve a specific goal, as practiced in RUP, then this is part of the methods, because the goal pursued here is content specific. If it s suggested to program in pairs, as practiced in XP, then this is also a methodological recommendation, since the benefits of such an approach are primarily an improvement in code quality. While the decision to use programming in pairs is part of the XP process. 7

Definitions: Iteration and Phases Iteration a set of distinct activities that results in a software release Reuse accumulated knowledge. The same steps may occur several times. Experienced teams, new application domain. Phase the span of time between 2 milestones Goal-oriented Risk-oriented Literature often erroneously speaks of phases to mean methodological activities, namely requirements definition, analysis, design, implementation, testing, and maintenance. This corresponds to an approach according to the traditional waterfall model, where methodological activities follow one another linearly. Risk handling postponed 8

Process Requirements for the Web Handling short development cycles Fast-cycle technology & marketing Handling changing requirements Many requirements emerge after development begins Restructuring of data Evolving technologies & standards Strong customer involvement Business level decisions impact on requirements for processes 9

Process Requirements for the Web Fixed Deadlines vs. Flexible Contents Disposable releases to demonstrate functionality Time is most critical (very short, e.g. 2-15 days) Parallel Development of Releases Small teams working on different versions of the application concurrently Largely a project management problem Emphasis on communication Handling quick reactive changes requires prototyping Release is defined by date not by feature anymore Requirements become flexible Such a technique is also supported by the fact that metrics for cost in web applications are hard to be used for long term plans 10

Process Requirements for the Web Reuse and Integration Coordination among the different projects that will reuse the component Modeling promotes reuse Push the problem towards integration and increase the risk of problem spread across different projects Adapting to Complexity Level Process should adapt as development becomes more complex The more complex an application, the more formalized the process should be Reuse pushed by short delivery times Integration is a bigger problem when having third parties involved 11

THE RATIONAL UNIFIED PROCESS 12

Rational Unified Process (RUP) RUP is a heavyweight process framework Phase-oriented Incremental Iterative Designed for high-complexity, high-quality applications RUP methods are grouped into core workflows (or disciplines ) 13

4 RUP Phases 1. Inception Requirements, Scope, and initial Architecture 2. Elaboration Define architecture, platform, fixed price 3. Construction Finish analysis; design & coding 4. Transition Deliver application to customer 14

RUP Core Workflows 15

Key Principles Behind RUP Adapt the process Balance stakeholder priorities Collaboration across teams Demonstrate value iteratively Encourage abstraction Focus continuously on quality 16

RUP s Suitability for Web Apps Inception POOR Assumptions may change as the project progresses Elaboration POOR Developing suitable system outweighs measured price Internet largely defines system architecture Construction GOOD Transition GOOD In some cases easier because distribution is automatic Overkill (too heavyweight for web apps) Fine grained architecture: web technologies are changing fast; hard to have a methodology to couple with this 17

RUP & Process Requirements of Web apps Short development cycles: POOR Changing requirements: POOR Fixed deadlines, Flexible content: POOR Parallel development: FAIR Reuse and integration GOOD reuse POOR integration Adapting to flexibility level: GOOD 18

EXTREME PROGRAMMING 19

Extreme Programming (XP) XP is one of the most popular forms of agile processes Iterative, test-first More human-centric/feedback-oriented Created by Kent Beck during his work on the Chrysler Comprehensive Compensation System (C3) payroll project in 1996. Core Values Communication Simplicity Feedback Respect Courage 20

Simplicity We will do what is needed and asked for, but no more. This will maximize the value created for the investment made to date. We will take small simple steps towards our goal and mitigate failures as they happen. We will create something we are proud of and maintain it long term for reasonable costs. 21

Communication Everyone is part of the team and we communicate face to face daily. We will work together on everything from requirements to code. We will create the best solution to our problem that we can together. 22

Feedback We will take every iteration commitment seriously by delivering working software. We demonstrate our software early and often then listen carefully and make any changes needed. We will talk about the project and adapt our process to it, not the other way around. 23

Respect Everyone gives and feels the respect they deserve as a valued team member. Everyone contributes value even if it's simply enthusiasm. Developers respect the expertise of the customers and vice versa. Management respects our right to accept responsibility and receive authority over our own work. 24

Courage We will tell the truth about progress and estimates. We don't document excuses for failure because we plan to succeed. We don't fear anything because no one ever works alone. We will adapt to changes when ever they happen. 25

XP A Process Overview Rapid Successive Releases 26

XP An Iteration View 27

XP & Process Requirements of Web apps Short development cycles: GOOD Changing requirements: GOOD Fixed deadlines, Flexible content: GOOD Parallel development: GOOD Reuse and integration: POOR Adapting to complexity level: POOR 28

SCRUM Acknowledgements Slides from Marty Stepp Scrum and Agile Software Development http://www.cs.washington.edu/403/ 29

What is Scrum? Scrum: It s about common sense Is an agile, lightweight process Can manage and control software and product development Uses iterative, incremental practices Has a simple implementation Increases productivity Reduces time to benefits Embraces adaptive, empirical systems development Is not restricted to software development projects Embraces the opposite of the waterfall approach 30

Scrum Origins Jeff Sutherland Initial scrums at Easel Corp in 1993 IDX and 500+ people doing Scrum Ken Schwaber ADM Scrum presented at OOPSLA 96 with Sutherland Author of three books on Scrum Mike Beedle Scrum patterns in PLOPD4 Ken Schwaber and Mike Cohn Co-founded Scrum Alliance in 2002, initially within Agile Alliance 31

Agile Manifesto Individuals and interactions Working software Customer collaboration Responding to change over over over over Process and tools Comprehensive documentation Contract negotiation Following a plan Source: www.agilemanifesto.org 32

Project Noise Level Far from Agreement Requirements Close to Agreement Simple Close to Certainty Complex Technology Anarchy Source: Strategic Management and Organizational Dynamics by Ralph Stacey in Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. Far from Certainty 33

Scrum at a Glance Daily Scrum Meeting 24 hours Sprint Backlog Backlog tasks expanded by team 30 days Product Backlog As prioritized by Product Owner Potentially Shippable Product Increment Source: Adapted from Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. 34

Sequential vs. Overlap Requirements Design Code Test Rather than doing all of one thing at a time......scrum teams do a little of everything all the time 35

Scrum Framework Roles Product owner Scrum Master Team Ceremonies Sprint planning Sprint review Sprint retrospective Daily scrum meeting Artifacts Product backlog Sprint backlog Burndown charts 36

Scrum Roles Product Owner Possibly a Product Manager or Project Sponsor Decides features, release date, prioritization, $$$ Scrum Master Typically a Project Manager or Team Leader Responsible for enacting Scrum values and practices Remove impediments / politics, keeps everyone productive Project Team 5-10 members; Teams are self-organizing Cross-functional: QA, Programmers, UI Designers, etc. Membership should change only between sprints 37

"Pigs" and "Chickens" Pig: Team member committed to success of project Chicken: Not a pig; interested but not committed A pig and a chicken are walking down a road. The chicken looks at the pig and says, "Hey, why don't we open a restaurant?" The pig looks back at the chicken and says, "Good idea, what do you want to call it?" The chicken thinks about it and says, "Why don't we call it 'Ham and Eggs'?" "I don't think so," says the pig, "I'd be committed but you'd only be involved." 38

Sprint Planning Mtg. Team capacity Product backlog Business conditions Current product Technology Sprint planning meeting Sprint prioritization Analyze/evaluate product backlog Select sprint goal Sprint planning Decide how to achieve sprint goal (design) Create sprint backlog (tasks) from product backlog items (user stories / features) Estimate sprint backlog in hours Sprint goal Sprint backlog 39

Daily Scrum Meeting Parameters Daily, ~15 minutes, Stand-up Anyone late pays a $1 fee Not for problem solving Whole world is invited Only team members, Scrum Master, product owner, can talk Helps avoid other unnecessary meetings Three questions answered by each team member: 1. What did you do yesterday? 2. What will you do today? 3. What obstacles are in your way? 40

Scrum's Artifacts Scrum has remarkably few artifacts Product Backlog Sprint Backlog Burndown Charts Can be managed using just an Excel spreadsheet More advanced / complicated tools exist: Expensive Web-based no good for Scrum Master/project manager who travels Still under development 41

Product Backlog The requirements A list of all desired work on project This is the product backlog Ideally expressed as a list of user stories along with "story points", such that each item has value to users or customers of the product Prioritized by the product owner Reprioritized at start of each sprint 42

User Stories Instead of Use Cases, Agile project owners do "user stories" Who (user role) Is this a customer, employee, admin, etc.? What (goal) What functionality must be achieved/developed? Why (reason) Why does user want to accomplish this goal? As a [user role], I want to [goal], so I can [reason]. Example: "As a user, I want to log in, so I can access subscriber content." story points: Rating of effort needed to implement this story common scales: 1-10, shirt sizes (XS, S, M, L, XL), etc. 43

Sample Product Backlog Backlog item Allow a guest to make a reservation Estimate 3 (story points) As a guest, I want to cancel a reservation. 5 As a guest, I want to change the dates of a reservation. 3 As a hotel employee, I can run RevPAR reports (revenueper-available-room) 8 Improve exception handling 8... 30... 50 44

Sample Product Backlog 2 45

Sprint Backlog Individuals sign up for work of their own choosing Work is never assigned Estimated work remaining is updated daily Any team member can add, delete change sprint backlog Work for the sprint emerges If work is unclear, define a sprint backlog item with a larger amount of time and break it down later Update work remaining as more becomes known 46

Sample Sprint backlog Tasks Mon Tue Wed Thu Fri Code the user interface 8 4 8 Code the middle tier 16 12 10 4 Test the middle tier 8 16 16 11 8 Write online help 12 Write the Foo class 8 8 8 8 8 Add error logging 8 4 47

Sample Sprint Backlog 48

Sprint Burndown Chart A display of what work has been completed and what is left to complete one for each developer or work item updated every day (make best guess about hours/points completed each day) variation: Release burndown chart shows overall progress updated at end of each sprint 49

Sample Burndown Chart Hours 50

Tasks Code the user interface Code the middle tier Test the middle tier Write online help Mon 8 16 8 12 Tue Wed Thu Fri 4 8 12 10 7 16 16 11 8 50 40 Hours 30 20 10 0 Mon Tue Wed Thu Fri 51

Burndown Example 1 No work being performed Sprint 1 Burndown 60 50 40 Hours remaining 30 20 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Days in Sprint 52

Burndown Example 2 Work being performed, but not fast enough Sprint 1 Burndown 49 48 47 46 Hours remaining 45 44 43 42 41 40 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Days in Sprint 53

Burndown Example 3 Work being performed, but too fast! Sprint 1 Burndown 60 50 40 Hours remaining 30 20 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Days in Sprint 54

The Sprint Review Team presents what it accomplished during the sprint Typically takes the form of a demo of new features or underlying architecture Informal 2-hour prep time rule No slides Whole team participates Invite the world 55

Scalability Typical individual team is 7 ± 2 people Scalability comes from teams of teams Factors in scaling Type of application Team size Team dispersion Project duration Scrum has been used on multiple 500+ person projects 56

Scaling: Scrum of Scrums 57

Scrum vs. Other Models 58

That s almost all for day WRAP-UP 59

Things to keep in mind (or summary) A good development process is important Reduce costs Allow to achieve goals Adapts to new problems Project Management is part of the meta-development process (process about the process) Minimize risks Enable development process monitoring Requires integration with the development process ( probe points) 60

Bibliography Kappel, G., Proll, B. Reich, S. & Retschitzegger, W. (2006). Web Engineering, Wiley & Sons. 10 th Chapter IBM Rational Unified Process http://en.wikipedia.org/wiki/ibm_rational_unified_process Extreme Programming http://en.wikipedia.org/wiki/extreme_programming Mike Cohn, Mountain Goat Software www.mountaingoatsoftware.com Scrum and The Enterprise by Ken Schwaber Succeeding with Agile by Mike Cohn Agile Software Development Ecosystems by Jim Highsmith Agile Software Development with Scrum by K. Schwaber and M. Beedle 61

Bibliography User Stories Applied for Agile Software Development by Mike Cohn www.agilescrum.com/ www.objectmentor.com jeffsutherland.com/ www.controlchaos.com/scrumwp.htm agilealliance.com/articles/articles/inventingscrum.pdf 62

Next lecture # Date Title 1 5 th March Web Engineering Introduction and Overview 2 12 th March Requirements Engineering for Web Applications 3 19 th March Web Application Modeling 4 26 th March Web Application Architectures 5 16 th April Developing Applications with WebML 6 23 rd April Testing and Usability 7 30 th April Web Technologies I 8 7 th May Web Application Security 9 21 th May Web Application Development Process 10 28 th May Web Technologies II 11 11 th June Project Management for Web Applications 12 18 th June Mobile Application Development 13 25 th June Final Exam 63

Questions? 64