What Can We Learn From Software Engineers? Part 4 Agile Development

Similar documents
IMGD Technical Game Development I: Iterative Development Techniques. by Robert W. Lindeman

IT4305: Rapid Software Development Part 2: Structured Question Paper

The Role of Architecture in a Scaled Agile Organization - A Case Study in the Insurance Industry

How To Enroll using the Stout Mobile App

A Pipelined Approach for Iterative Software Process Model

Chamilo 2.0: A Second Generation Open Source E-learning and Collaboration Platform

Team Dispersal. Some shaping ideas

Focus of the Unit: Much of this unit focuses on extending previous skills of multiplication and division to multi-digit whole numbers.

Best website to write my essay >>>CLICK HERE<<<

Mike Cohn - background

LEGO MINDSTORMS Education EV3 Coding Activities

Evidence for Reliability, Validity and Learning Effectiveness

Implementing a tool to Support KAOS-Beta Process Model Using EPF

GACE Computer Science Assessment Test at a Glance

12- A whirlwind tour of statistics

A Decision Tree Analysis of the Transfer Student Emma Gunu, MS Research Analyst Robert M Roe, PhD Executive Director of Institutional Research and

On Human Computer Interaction, HCI. Dr. Saif al Zahir Electrical and Computer Engineering Department UBC

STABILISATION AND PROCESS IMPROVEMENT IN NAB

TAI TEAM ASSESSMENT INVENTORY

The Seven Habits of Effective Iterative Development

IMPACT INSTITUTE BEHAVIOR MANAGEMENT. Krissy Matthaei Gina Schutt

Core Strategy #1: Prepare professionals for a technology-based, multicultural, complex world

Lahore University of Management Sciences. FINN 321 Econometrics Fall Semester 2017

SDTM Implementation within Data Management

supplemental materials

DfEE/DATA CAD/CAM in Schools Initiative - A Success Story so Far

Instructor: Mario D. Garrett, Ph.D. Phone: Office: Hepner Hall (HH) 100

The Evolution of Random Phenomena

Software Maintenance

A GENERIC SPLIT PROCESS MODEL FOR ASSET MANAGEMENT DECISION-MAKING

Driving Author Engagement through IEEE Collabratec

Knowledge Synthesis and Integration: Changing Models, Changing Practices

A 3D SIMULATION GAME TO PRESENT CURTAIN WALL SYSTEMS IN ARCHITECTURAL EDUCATION

Editor s Welcome. Summer 2016 Lean Six Sigma Innovation. You Deserve More. Lean Innovation: The Art of Making Less Into More

Deploying Agile Practices in Organizations: A Case Study

A BOOK IN A SLIDESHOW. The Dragonfly Effect JENNIFER AAKER & ANDY SMITH

The open source development model has unique characteristics that make it in some

Knowledge based expert systems D H A N A N J A Y K A L B A N D E

The IDN Variant Issues Project: A Study of Issues Related to the Delegation of IDN Variant TLDs. 20 April 2011

November 17, 2017 ARIZONA STATE UNIVERSITY. ADDENDUM 3 RFP Digital Integrated Enrollment Support for Students

Parcel. Low-fi Prototyping & Pilot Usability Testing. Management & Documentation. Development & Digital Prototyping

Team Love <3. Because it s all about heart.

Ryerson University Sociology SOC 483: Advanced Research and Statistics

ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY DOWNLOAD EBOOK : ADVANCED MACHINE LEARNING WITH PYTHON BY JOHN HEARTY PDF

TIMSS ADVANCED 2015 USER GUIDE FOR THE INTERNATIONAL DATABASE. Pierre Foy

NAME OF ASSESSMENT: Reading Informational Texts and Argument Writing Performance Assessment

Institutionen för datavetenskap. Hardware test equipment utilization measurement

Vorlesung Mensch-Maschine-Interaktion

A Model to Detect Problems on Scrum-based Software Development Projects

Rule Learning With Negation: Issues Regarding Effectiveness

Interview with a Fictional Character

Value Creation Through! Integration Workshop! Value Stream Analysis and Mapping for PD! January 31, 2002!

Steps Before Step Scanning By Linda J. Burkhart Scripting by Fio Quinn Powered by Mind Express by Jabbla

Introduction and survey

Rule Learning with Negation: Issues Regarding Effectiveness

Modeling user preferences and norms in context-aware systems

Lesson 17: Write Expressions in Which Letters Stand for Numbers

Designing Propagation Plans to Promote Sustained Adoption of Educational Innovations

Banal Creativity and Unique Creation What is Learning in a Learning Intensive Society? Riel Miller. Future of Learning Glasgow, June 25, 2005

Sight Word Assessment

Activity 2 Multiplying Fractions Math 33. Is it important to have common denominators when we multiply fraction? Why or why not?

Project Management for Rapid e-learning Development Jennifer De Vries Blue Streak Learning

Evaluation of Learning Management System software. Part II of LMS Evaluation

Experience and Innovation Factory: Adaptation of an Experience Factory Model for a Research and Development Laboratory

Visit us at:

Development of an IT Curriculum. Dr. Jochen Koubek Humboldt-Universität zu Berlin Technische Universität Berlin 2008

Including the Microsoft Solution Framework as an agile method into the V-Modell XT

Running head: DEVELOPING MULTIPLICATION AUTOMATICTY 1. Examining the Impact of Frustration Levels on Multiplication Automaticity.

How to Do Research. Jeff Chase Duke University

Northland Pioneer College Cosmetology Advisory Board Minutes Monday, October 7, :30 6:00 p.m.

Success Factors for Creativity Workshops in RE

In the rapidly moving world of the. Information-Seeking Behavior and Reference Medium Preferences Differences between Faculty, Staff, and Students

Human Computer Interaction

Major Milestones, Team Activities, and Individual Deliverables

Lecture 10: Reinforcement Learning

Testing for the Homeschooled High Schooler: SAT, ACT, AP, CLEP, PSAT, SAT II

From Self Hosted to SaaS Our Journey (LEC107648)

DSTO WTOIBUT10N STATEMENT A

ADAPTIVE PLANNING. 1 Powered by POeT Solvers Limited

Designing a Rubric to Assess the Modelling Phase of Student Design Projects in Upper Year Engineering Courses

Principal Survey FAQs

Testing A Moving Target: How Do We Test Machine Learning Systems? Peter Varhol Technology Strategy Research, USA

Theory of Probability

Average Number of Letters

Are You Ready? Simplify Fractions

Introduction to Mobile Learning Systems and Usability Factors

PROCESS USE CASES: USE CASES IDENTIFICATION

Experience College- and Career-Ready Assessment User Guide

Lecture 15: Test Procedure in Engineering Design

An Open Framework for Integrated Qualification Management Portals

Open Minds: 21st Century Business Lessons And Innovations From St.Luke's By Andy Law

Lean UX: Applying Lean Principles to Improve User Experience

Knowledge-Based - Systems

San Marino Unified School District Homework Policy

Quantitative analysis with statistics (and ponies) (Some slides, pony-based examples from Blase Ur)

WikiAtoms: Contributions to Wikis as Atomic Units

Android App Development for Beginners

CollaboFramework. Framework and Methodologies for Collaborative Research in Digital Humanities. DHN Workshop. Organizers:

Sustainable Software Development: Evolving Extreme Programming

new research in learning and working

Transcription:

What Can We Learn From Software Engineers? Part 4 Agile Development

Methodology: By what method will we construct software? Process Tools Control 2

Every method must address these issues at some point. Requirements Architecture & design Coding Unit testing Integration testing User acceptance The question is, when are they addressed? And by whom? 3

The waterfall method is the traditional method. Customer fully responsible for rigid, detailed requirements Developer responsible for exact fulfillment Big, slow loop around process Silo'ed responsibilities Little or no feedback Notorious failures Popular with large organizations Clearly defined blame 4

The agile method is a modern alternative. Start with broad requirements Small, fast iterations: sprints Demonstrable results: Show and Tell Fast or immediate feedback Incremental evolution of everything: requirements, design, code, docs,... Best in small teams Nerve-racking for project managers 5

Agile development uses feedback to make constant adjustments in a highly collaborative environment. - Subramaniam and Hunt 6

Waterfall vs. Agile Well-defined but inflexible goals versus incremental refinement Customer/developer split versus teamwork Big bang ending versus incremental products Blame versus engagement & cooperation 7

Sprint The agile method uses some special concepts. MVP = Minimum Viable Product Stubroutines and mock objects Unit testing Continuous testing Continuous integration Continuous releasing Open development meaning open to client 8

First-cut requirements Create a program that will load our data for a given date, fit the model, and summarize/evaluate the model's quality. 9

First sprint: Get something running Goal: Simple load / fit / print with stubroutines. 10

First sprint: Get something running app = function() { } data = loaddata() model = fitmodel(data) summarizemodel(model) It runs. Try it! What's the customer's reaction? 11

Second sprint: Add some output Load dummy data Fit a model... any model. Print a model summary What do you think of that output? 12

Second sprint: Add some output app = function() { data = loaddata() model = fitmodel(data) summarizemodel(model) }... summarizemodel = function(model) { # TODO: Create customized summary print(summary(model)) } 13

Third sprint: Better output Incorporate user feedback: Rework output to be more useful and readable. Result: Yes! That's much better! Can we improve the model? 14

Third sprint: Better output summarizemodel = function(model) { cat("*** Model Summary ***\n\n") cat("f statistic:", summary(model)$fstatistic, "\n") cat("adj'ed R squared:", summary(model)$adj.r.squared, "\n") print(model) oldpar = par(no.readonly=true) par(mfrow=c(2,2)) plot(model) par(oldpar) } # TODO: Write summary to report file, too 15

Third sprint: Better output Incorporate user feedback: Rework output to be more useful and readable. Result: Yes! That's much better! Can we improve the model? 16

Fourth sprint: Better model Address user's concern: Graduate to more sophisticated model. 17

Fourth sprint: Better model app = function() { } data = loaddata() model = fitmodel(data) summarizemodel(model)... fitmodel = function(appdata) { } lm(sepal.width ~ Petal.Width + Species, data=appdata) 18

Fourth sprint: Better model Address user's concern: Graduate to more sophisticated model. Result: This is way cool! First, can you improve the summary? Second, can we get a copy? 19

Fifth sprint: Even better output Address user's request: Can you improve the output further? 20

Fifth sprint: Even better output summarizemodel = function(model) { cat("*** Model Definition ***\n\n") print(formula(model), showenv=false) cat("\n") fstat = summary(model)$fstatistic pval = pf(fstat[1], fstat[2], fstat[3], lower.tail=false) cat("*** Model Statistics ***\n\n") cat("f-statistic:", fstat[[1]], "on", fstat[[2]], "and", fstat[[3]], "DF, ") cat("p-value:", pval, "\n") cat("adj'ed R-squared:", summary(model)$adj.r.squared, "\n\n") cat("*** Coefficients ***\n\n") print(coef(model)) cat("\n") cat("*** Confidence Intervals ***\n\n") print(confint(model)) oldpar = par(no.readonly=true) par(mfrow=c(2,2)) plot(model) par(oldpar) } # TODO: Write summary to report file, too 21

Fifth sprint: Even better output Address user's request: Can we improve the output further? Reaction: Great! Now we see different data? 22

Real-life case study Initial discussions and blue sky First-cut requirements First sprint Skeleton app Client likes skeleton, lukewarm on interface Second sprint Dummy data, MVP output Client excited by usable output, lukewarm on interface 23

Real-life case study (con't) Third sprint More output, better formatting Client likes new reports, lukewarm on interface Fourth sprint Completely rework interface Client much happier Fifth sprint Additional models and reports Client very engaged, begins using MVP 24

Real-life case study (con't) Sixth sprint Draft user docs, a new model Client using MVP, giving feedback and direction Seventh sprint Yet more models and reports Client deciding on final features Seventh sprint Real, multiple datasets (finally!) Final sprints Final features, final docs Client very pleased 25

Some tips for co-existing with project managers Inject waterfall-like elements into project, but with wiggle room Broad requirements, loose plan, flexible schedule Agree up front that requirements, plan, and schedule will evolve Put revision points into plan and schedule Incorporate Show and Tell time into schedule 26