using ‘agile’ methods to manage advancement system changes
DESCRIPTION
Using ‘Agile’ Methods to Manage Advancement System Changes. James Johannesson Director, Advancement Operations. Overview. Setting Context Values & Principles behind agile methods What methods are available What has been our experience Tools that have helped along the way Questions. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/1.jpg)
Monday June 8 Session #5 – 2:00 – 3:15 PM
Using ‘Agile’ Methods to Manage Advancement
System ChangesJames Johannesson
Director, Advancement Operations
![Page 2: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/2.jpg)
Overview• Setting Context• Values & Principles behind agile methods• What methods are available• What has been our experience• Tools that have helped along the way• Questions
![Page 3: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/3.jpg)
Context at UofS• U of S has a home grown system for
Advancement, but interacts with Banner and Peoplesoft ERPs.
• Team of application development staff report professionally to central IT but functionally to Advancement – small team (5 staff).
• Team of application development staff physically located with Advancement staff.
• Technical staff supporting database and system solely central IT staff and not located with developers.
![Page 4: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/4.jpg)
Context at UofS• Usually have one to three projects in a
year (3 months to at least a year in duration)
• Ongoing operational requirements – need to keep the system going
• Technical requirements (software version and hardware upgrades)
![Page 5: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/5.jpg)
Why did we change?• We were not focused on a method – just get the
work done that was deemed ‘important’ unless it was a big project.
• Big projects used ‘waterfall methods’ – requirements & design documents, test plans, etc. to mark progress. Very structured and a lot of documentation.
• Some ‘cowboy’ coding in between projects – programmers did what they felt was right or needed – may not align with business need
![Page 6: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/6.jpg)
Can I use ‘Agile Methods’?• Can apply to both ‘build’ and ‘buy’ models• Can apply to IT staff that are solely within
Advancement.• Can apply to central IT staff.• Can apply in a federated model like the
UofS.• Important point: Understand the VALUES
and PRINCIPLES and LIVE THEM.
![Page 7: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/7.jpg)
‘Agile’ Values• Individuals and interactions over
processes and tools• Working software over comprehensive
documentation• Customer collaboration over contract
negotiation• Responding to change over following a
plan
![Page 8: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/8.jpg)
Agile Principles• Customer satisfaction by introducing rapid,
continuous change of useful software• Cooperation between business and developers• Face to Face communication• Look to motivated and engaged users• Technical excellence• Respond to change over ‘sticking to the plan’• Self organizing and simplicity required – focus
on need, not want
![Page 9: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/9.jpg)
Our Use of Agile Methods• Scrum• Iterative Development - Sprints• Use Cases• Product Roadmap• Agile Project Management• Tools that helped along the way
![Page 10: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/10.jpg)
Scrum• Daily Meeting – same time, same place – 15
minutes• Scrum leader facilitates – usually lead person in
area but could be anyone• Each team member answers three questions:
• What did I do yesterday?• What am I doing today?• What impediments are getting in your way?
![Page 11: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/11.jpg)
Scrum• Impediments are action items for scrum
leader• Focuses on coordination through
information exchange
![Page 12: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/12.jpg)
Is this micro-managing?• No. Not telling anyone how to do work in
15 minutes. • Team is required to solve problems, not
manager.• Items that are for further discussion are
done by team after scrum is completed.
![Page 13: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/13.jpg)
What does Scrums allow you to do?
• Deal with emergent issues.• Deal with personal issues between staff.• Help the team connect the ‘dots’ to
improve effectiveness
![Page 14: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/14.jpg)
Our Experience• Daily meeting at 9 AM in team room.• Have been running them for two years.
They can work both in ‘projects’ and in dealing with ‘operations’ and are very effective in balancing them.
• Only works if as a leader you work hard to remove impediments to get buy-in to process.
![Page 15: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/15.jpg)
Iterative Development• Work is broken into a time block or iteration – we
have chosen two weeks – called the Sprint• Work required to be done is given an estimate of
time to complete by a programmer in ‘effective days’
• Estimate a iteration has 6 to 7 ‘effective’ days of work in it (10 work days)
• If a change is said to take more than 6 or 7 effective days (65 %), break the task down to smaller tasks.
![Page 16: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/16.jpg)
Sprint • Iteration Planning Meeting – Determine
what will be done.• Daily Scrums – talk about it daily• Release Planning Meeting – Determine
what is going to which environment (TEST or PRODUCTION).
![Page 17: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/17.jpg)
Iterative Development• Three tasks that take two days each – all
that is assigned that developer• Why do it this way?
• More realistic• Allows you to respond to changes or
operational issues• Planning to 100% is NOT effective and
usually means you are ‘over-planning’
![Page 18: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/18.jpg)
Estimation – Critical Skill• Seems the most difficult task in IT• Breaking down tasks to small timeframes is easier to
comprehend and makes team think more modular• Allows staff to gain experience to plan bigger tasks.• Gets away from the concept that all programmers
are ‘pathological liars’• Holds staff accountable because they are the ones
giving the estimates.
![Page 19: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/19.jpg)
Our Experience• Have done iterations with releases to
PROD every two weeks for a year and a half
• User Community use to having something new every two weeks – has become more engaged
• Programming staff much better at estimating time to make changes
![Page 20: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/20.jpg)
Use Cases• Description of a system’s behaviour• “Who” can do “what” with the system in
question – captures behavioural requirements
• Aids greatly with users to describe how they want the system to act
![Page 21: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/21.jpg)
Example Use Cases• A donor had indicated a bequest to the U of
S previously. This donor has recently become deceased and U of S will be receiving the estate disbursement. The family members have expressed the wish to continue to receive mailings from the U of S on behalf of their father and receive updates with regards to how their father’s gift is being used.
![Page 22: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/22.jpg)
Use Cases• Use cases gives the requirements the
system needs to fulfill.• The goal in requirements and design
become how to allow the ‘system’ to meet the use cases outlined and as the business develops new use cases have the system able to cope with it.
![Page 23: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/23.jpg)
Our Experience• Have been using these as the formation of our
development over the last year.• Very helpful in having the users document what
they expect from the system. Added benefits are that as business use changes over time, you examine how you make the system work within the new use cases.
• Very helpful in ‘Buy’ systems where you look to use the system to meet business needs
![Page 24: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/24.jpg)
Product Roadmap• Roadmap is plan looking forward in time to
determine changes to the system based on business priorities.
• Using iteration planning Advancement has a roadmap out to 4 months the future to indicate system changes planned.
• Published to our user community and ius based on the discussion and decision from our executive leadership.
![Page 25: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/25.jpg)
Product Roadmap• Process allows for feedback and ‘juggling’
of priorities as we go through each iteration.
• Executive buy-in is key in stating priorities.
![Page 26: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/26.jpg)
Our Experience• Extremely helpful in getting executive buy-
in and establishing priorities. • Roadmap is executive’s statement of
change, not IT’s statement.• Understand trade offs of resources for
work.• We have used this the last six months with
great success.
![Page 27: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/27.jpg)
Agile Project Management• Its just using all of the previous methods
and placing them in the context of a project.
• Key point in this are to use a model that looks like:
Envision Speculate
Explore/Adapt Close
![Page 28: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/28.jpg)
When do you use Agile PM?• When requirements or scope are uncertain• Committed customers and experienced
development team• Application evolution over build to
specification• Changes are ‘cheap’ – more thought
required in ‘buy’ systems.
![Page 29: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/29.jpg)
Agile Project Management
Functionality
Schedule
People/Money
Schedule
Functionality
People/Money
Fixed
Variable
IT Problem Customer Problem
![Page 30: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/30.jpg)
Our Experience• Changes to tracking of planned giving
donors• Created charter to set scope and set up
iteration plan to achieve work based on estimates
• Developed use cases and set roadmap• Altered based on feedback in process• Total time to completion – 8 weeks
![Page 31: Using ‘Agile’ Methods to Manage Advancement System Changes](https://reader035.vdocuments.us/reader035/viewer/2022062521/56816693550346895dda731a/html5/thumbnails/31.jpg)
Tools that helped• Bug & Version Tracking – JIRA (
http://www.atlassian.com/software/jira/)• Templates for Use Cases• Wiki for documenting changes – users can
add comments to documentation.• Code Management• Testing software (on our wish list)