27
7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037) http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 1/27 Organizing Application Programming Workflows by the Principles of Agile Development University of Connecticut Libraries (UCL) Information Technology Services, Central Services Linda Jackson, IT Business Analyst/Proj Mgr Tony Molloy, ITS Team Leader March 29, 2011 Copyright Linda Jackson/Tony Molloy, 2011. This work is the intellectual property of the authors. Permission is granted for this material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproduced materials and notice is given that the copying is by permission of the authors. To disseminate otherwise or to republish requires written permission from the authors. NC11

Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

Embed Size (px)

Citation preview

Page 1: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 1/27

OrganizingApplication Programming Workflows

by thePrinciples of Agi le Development

University of Connecticut Libraries (UCL)Information Technology Services, Central Services

Linda Jackson, IT Business Analyst/Proj Mgr 

Tony Molloy, ITS Team Leader 

March 29, 2011

Copyright Linda Jackson/Tony Molloy, 2011. This work is the intellectual property of the authors. Permission is granted for this

material to be shared for non-commercial, educational purposes, provided that this copyright statement appears on the reproducedmaterials and notice is given that the copying is by permission of the authors. To disseminate otherwise or to republish requireswritten permission from the authors. NC11

Page 2: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 2/27

What is Agile Development?

Let’s start by what it shouldn’t be using a reallife scenario…

Page 3: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 3/27

Scenario: You TOO Can Be Debt-Free!

You receive a bill for $0.00. What do you do? A. Ignore it.

B. Send in more money than what is due.

C. Write a check and pay it.D. Call someone about it.

Page 4: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 4/27

Scenario: The Bill for $0.00 – What Happened…

Recipient initially ignored itReceived letters demanding paymentRecipient called the agency numerous times and

was confirmed by humans that no money wasowedContinued to receive escalating

correspondences even after the human

communication

Page 5: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 5/27

Scenario: The Bill for $0.00 – The Fix

You receive a bill for $0.00. What do you do? A. Ignore it.

B. Send in more money than what is due.

C. Write a check and pay it.D. Call someone about it.

Page 6: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 6/27

What is Agile Development?

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Manifesto

Page 7: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 7/27

Agile Software Development

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Welcome changing requirements, even late indevelopment. Agile processes harness change for thecustomer's competitive advantage.

Deliver working software frequently, from acouple of weeks to a couple of months, with apreference to the shorter timescale.

Business people and developers must worktogether daily throughout the project.

Build projects around motivated individuals.Give them the environment and support they need, and trustthem to get the job done.

The most efficient and effective method of conveying information to and within a development team isface-to-face conversation.

12 Principles

Working software is the primary measure of progress.

Agile processes promote sustainable development.The sponsors, developers, and users should be able tomaintain a constant pace indefinitely.

Continuous attention to technical excellenceand good design enhances agility.

Simplicity--the art of maximizing the amountof work not done--is essential.

The best architectures, requirements, and designsemerge from self-organizing teams.

At regular intervals, the team reflects on howto become more effective, then tunes and adjusts

its behavior accordingly.

Page 8: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 8/27

Agile Software Development

Many Methodologies and Counting…

“…a method called Scrum that basically documented whatpeople REALLY did to deliver systems.” --Mike Beedle (2002)

“Eliminating waste is the most fundamental Lean principle, the onefrom which all other principles follow.” --Poppendieck (2003)

“This is the paradigm for XP. There is no such thing as straightand level.” --Kent Beck (2000)

Page 9: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 9/27

Agile Software Development @ The Universityof Connecticut Libraries

Page 10: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 10/27

University of Connecticut Landscape

• University of Connecticut• Land Grant University campus in Storrs, CT• 5 Regional Campuses across Connecticut• 30,000 Students

• University of Connecticut Libraries (UCL)

• 4 million volumes, maintained by 100 staff • $4M per year in Electronic Resources (e-journals, e-books,

streaming video, etc.)

• UCL Information Technology Services (ITS)• 10 staff 

• Services include: Helpdesk, System Administration, Storage,Backup, Application Development

• 2 Full Time Application Developers

Page 11: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 11/27

Agile Software Development @ UCL

Mobile Web Applications

Page 12: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 12/27

Agile Software Development @ UCL

Electronic Resource Management

Page 13: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 13/27

Agile Software Development @ UCL

What we develop:

<Screenshot of Reserves?>Good Transition to how Tom left in the middle of reserves

Reserves Management

Page 14: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 14/27

Agile Software Development @ UCL

Before Agile Processes

• 2 developers

• Competing Goals• No official prioritization• Squeaky Wheels

• No transparency• Frustrated Developers

Page 15: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 15/27

Agile Software Development @ UCL

Drivers for Change

• Library Reorganization

• IT Audit• Need for prioritization• New Developers

• New Business Analyst/Project Mgr • We needed a process!

Page 16: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 16/27

What makes up a scrum cycle?

•  A software target (either to be built or enhanced)• Product Backlog that lists all of the features the customer would like

implemented• Product Owner who is responsible for prioritizing the Product Backlog

• Scrum Team that works on a subset of the Product Backlog called a SprintBacklog•  A 30-day calendar called a Sprint for the Scrum Team to build the features

listed in the Sprint Backlog• Daily status meeting during the Sprint called the Scrum Meeting (or Scrum

for short).

We Chose Scrum

Page 17: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 17/27

One software product Multiple software products

One common strategy Two strategies (departments)

One Product Backlog Two Product Logs*

One Product Owner  Two Product Owners

One Scrum Master 

One group of >2 devs Two groups of 1 dev

One Scrum Master 

IDEAL UCL

*We use the term Product Log to avoid confusion in our library environment with cataloging workflows.

Page 18: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 18/27

• Process is transparent; list of active projects ispublished

• Developers have more time to develop• Sprints break up work into manageable pieces

• Process limits amount of ‘last minute projects’• Metrics

How is it going?

Page 19: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 19/27

What?

Page 20: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 20/27

But WHY?

Why is THIS (as Scrum or Lean or whatever)supposed to work as opposed to gathering ALL of the requirements, developing full timelines, criticalpaths, performing reverse timeline travels, andtraditional risk mitigations?

Why is AGILE expected to work as opposed to

using traditional project management methods?

Page 21: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 21/27

Process ModelsDEFINED vs EMPIRICAL

Page 22: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 22/27

What are Examples of Defined Processes?

Recipe for Duncan Hines® Brownies?Symphony score for a classical piece?Brushing your teeth?Getting somewhere via public transportation? Assembling a chair or table from Target?

Page 23: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 23/27

What are Examples of Defined Processes?

Powering down a Solaris box to single-user mode?Knitting a sweater?Putting on a sweater?

Installing Apache Tomcat?Installing Ubuntu? RHEL? Adding an email web form to a website?

Page 24: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 24/27

Defined Processes?

Not really?

Entering a realm of the

Empirical Process Model

Page 25: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 25/27

Traditional Project Management

DEFINED

…following a recipe…

 Agile/Scrum

EMPIRICAL

…creating a recipe…

Software development“…is an intellectuallyintensive business that

require[s] too muchthinking and creativity tobe a good candidate for the DEFINEDapproach.”

Software developmentneeds a system that “…provides and exercisescontrol through frequentinspection and adaptationfor processes that areimperfectly defined andgenerate unpredictable andunrepeatable outcomes.”

-Ken Schwaber for Babatunde Ogunnaike, Process Theory Expert, DuPont Experimental Station, 1995.

Page 26: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 26/27

If you are not using Agile and not getting good results…

Individuals and interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiationResponding to change over following a plan

If you are using Agile and not getting good results…

Simplicity--the art of maximizing the amount of work not done--is essential.

At regular intervals, the team reflects on how to become more effective, thentunes and adjusts its behavior accordingly.

Our main objective as IT professionals:

Our highest priority is to satisfy the customer through early and continuousdelivery of valuable software.

Page 27: Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

7/29/2019 Organizing Application Programming Workflows by the Principles of Agile Development (166354037)

http://slidepdf.com/reader/full/organizing-application-programming-workflows-by-the-principles-of-agile-development 27/27

Thank You! & Questions…

Bibliography

•Agile Manifesto and Principles: http://agilemanifesto.org

• Agile Software Development with Scrum by Ken Schwaber and Mike Beedle, 2001•Lean Software Development: An Agile Toolkit by Mary and Tom Poppendieck, 2003•Extreme Programming Explained by Kent Beck, (just pick an edition, any edition)