road to agile: federal government case study
DESCRIPTION
Presentation to PMI Government Community of Practice on March 21, 2014. Case study of a transformation from traditional to agile way of working on a re-engineering project for a mission-critical financial system. Includes ideas behind transformation, specific techniques and tools used, as well as the outcomes.TRANSCRIPT
Road to Agile:A Federal Government Case Study
Steven Kennedy, US Dept of the Treasury and David Marsh, Bodega Consulting
March 21st, 2014
2
• Welcome PMI Members from the:
Agile Community of Practice
• Use Chat Pod for all your QUESTIONS
• Earning PDUs
• Automatic PDUs for attending live webinar
• Slides and Recordings available after 24 hours
• Join the Discussion
• GovCOP Discussion Board
• Twitter @govcop
• LinkedIn Group (“PMI Government Community of Practice”)
• Volunteer with us ([email protected])
Welcome to the Government Community of Practice!
2
3
Our Presenters: David and StevenSteven Kennedy is the Program Manager at the U.S. Dept of
the Treasury where he leads the project management staff
office for Debt Management Services of the Treasury's
Bureau of the Fiscal Service. Steven introduced the use of
agile development and cloud computing deliver better code
faster at a lower cost.
Presentation Title
David Marsh has been coaching Agile teams for years (even
before Agile became a buzz word), enabling many
organizations (govt and non govt) to realize the benefits of
agile software delivery by guiding teams on the journey from
waterfall development to agility.
David’s approach is very hands on where he applies the
techniques he coaches first-hand to deliver quality software
solutions.
4
Waypoints
• Brief Introduction to the Business: the Treasury Offset Program
• Why Agile?
• Typical Barriers to Adopting Agile Delivery Methods
– And How We Engineered an Environment to Overcome Them
• How the Project Evolved
– Acceptance Test Driven Development
– Continuous Integration / Automated Deployments
• The Results
5
The Treasury Offset Program (TOP)
• TOP is a centralized offset process that intercepts Federal (and
some State) payments of payees who owe delinquent debts to
other Federal (and some State) agencies
• Debt Collection Improvement Act (1996)
• Collects > $7B annually
• Fees pay for the system (no appropriated funds)
6
Why Agile? The “Before” Situation
Disparate and geo-distributed orgs maintaining a legacy system patched together from a proof of concept (COBOL, RISC, DB2).
System•Offsets payments to collect debtProblems•Lack of capacity during peak times•Incapable of timely change
14
23
Organization(s)1. Business/Prod Support
2. PMO/BAs/Prod Support
3. Development
4. QA
7
Why Agile? The Attempts to Evolve the TOP System
• Prototype evolved over 15 years through patches and copying
of COBOL programs
• Web client developed in Java
• Several attempts made over the years to redesign: all failed
• 2010: Goal of increasing TOP collections by:
– Increases in payment streams
– Increasing in debt volume
– Matching effectiveness
– Considered:• Move from Unix to Mainframe• Re-write as-is functionality in Java
8
Agile Software Development
• Highest priority is to satisfy the customer through early and
frequent delivery of valuable software
• What it means:
– Started with 3 week iterations; now using continuous flow
– Stakeholder review and feedback welcomed/acted upon
– Focus on one thing at a time, until it is done
– Defer requirements definition (learn from the past)
– Cross-functional teams composed of both business and technical people
– Adaptive planning and a people-centric approach
9
Typical Barriers to Agile
• Organizational Silos
• Siloed Job Titles
• Geographic Distribution
• Lack of Executive Support
• Culture
– need for certainty
– command and control hierarchy
• Traditional Governance Model
• Lack of Business-IT
Collaboration and Trust
• Traditional IT Practices &
Infrastructure Timeliness
10
Enabling Collaboration
Team rooms, video-conference and
smart boards
Flattened the organization and
remove barriers
11
A Collaborative, Cross-Functional Team
• Team is organized without silos: product owners, developers and quality
assurance all sitting side by side during the project’s development.
• Turning to a teammate and asking a question that gets immediately answered
and validated by working on something together results quickly and accurately in
a value-added feature.
• Benefits
– High-quality software delivered as advertised and faster
– Greater transparency for stakeholders
– No backlog of defects or bugs
– Simplicity due to evidence-based decisions
– Evolving cross-functional team
– Better environment for innovation and learning
12
Using the Cloud
• Amazon Web Services GovCloud:
– New servers/environments in minutes• Instead of months
– Rapid prototyping of new architectures • Experimentation
– Pay only for used capacity• Spun up servers on demand
for testing
– Quickly scale capacity up and down• Don’t have to be right the first
time
• SaaS
– Google Docs, Rally
• PaaS
– Amazon Web Services (AWS) RDS
• IaaS
– AWS EC2 and EBS
13
The Cloud
14
Risk-Driven Backlog Prioritization
Early focus on solving the tough problems.
15
The Backlog and Kanban Board
16
Evolution: Acceptance Test Driven Development (ATDD)
The Traditional Approach:– BAs specify requirements in
use cases/user stories– Developers interpret and
code• Hard to tell when they
are “done”• Usually lots of
goldplating– Testers interpret and write
test cases– Everyone deals with the
aftermath of test execution!
ATDD
• Requirements are written as executable test scenarios:
– Created during requirements elaboration and before any code is written
– Written collaboratively with developers, product owners and tester
– Documented as readable files, in business language, and can be shared with stakeholders
– Examples of how the system should behave under specific conditions
– When executed successfully, we know the desired feature has been correctly built
• Application code is written to execute the tests:– Scenarios become part of the code base, so the
requirements are always up to date– Code is written to execute the tests and assert &
verify expected results– These tests drive code development (keeping it
simple)
17
Acceptance Test Example (Cucumber)
18
Acceptance Test Example (Cucumber)
19
Evolution: Continuous Integration and Automated Deployment
• Every time code is checked in:– All the deployable artifacts are built to
ensure no breaks– Approx. 7,000 unit, integration are customer
automated tests are executed• Nightly
– Generate quality metrics via tools like Sonar & CAST
– Execute and validate conversion process– Execute performance test and ensure it is
within threshold• On-Demand via a button click
– Deploy to the cloud acceptance servers (6 minutes)
– Deploy to Treasury data center (10 minutes)
• Server configuration is managed side-by-side with code and can follow the same configuration management process.
20
Continuous Integration – Jenkins
21
Code Quality – Sonar
22
Code Quality - CAST
23
Results: No Known Defects
• Quality is built into the feature, not added later.
• Product Owners / Devs / QA work closely together to define acceptance criteria before development begins, and communicate at least daily as feature is built.
• If a problem is discovered, it is immediately fixed by the developers and tested before the story is accepted.
• There is no need to log or prioritize a defect.
24
Results: Value
Collaboration, High Code Quality, Continuous
Integration, Automated Test Suites and Automated
Deployment enable rapid releases to production.
25
Results: Business Goals Achieved
New system has been running in parallel with
old during tax season (peak). The process is
working!!!
• Achieved business objectives.
– Can now offset:
• $3T in FedWire payments
• Grants
• Purchase cards ($30B in 100M
transactions) to come
– Flexibility to change business
rules
• Able to make policy and
legislative changes quickly
• Allows for What If scenarios
– More Data
• Identify why payments that
matched debts were not offset
26
QUESTIONS?
Email: Contact Us, Questions about Webinar or GovCOP:
Steven Kennedy [email protected]
David Marsh [email protected]
Winnie Liem: [email protected]
WEBSITE: http://government.vc.pmi.org/Public/Home.aspx
TWITTER: Twitter @govcop and Tweet #govcop
LINKEDIN GROUP: PMI Government Community of Practice
Note: 1 PDU will be automatically entered for those attending the live presentation
26