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

Preview:

Citation preview

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

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…

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.

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

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.

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

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.

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)

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

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

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

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

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

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

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!

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

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.

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?

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?

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?

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

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?

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?

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

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.

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.

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)

Recommended