Home
CASE STUDY: How Douglas County, CO Cut A Project Timeline In Half PDF Print E-mail
User Rating: / 0
PoorBest 
Written by Chuck Fredrick   
Thursday, 08 March 2007
When the Douglas County CO Government IT Department was asked to create a custom application for the Sheriff's Office to track and manage the County's resident convicted sex offenders, the project estimates using the traditional waterfall-based methodology proved too long and too costly to gain approval from its IT Steering Committee.  Rather than cancel the project or purchase a less optimal off-the-shelf product, we implemented it as our first Agile/Scrum project.  The outcome was a very successful system implementation delivered in four months - less than half the original schedule estimate.  But the journey was equally rewarding, and taught us that "Agile" meant more than just a change to the project management methodology.  For us, it meant changing almost everything. 
 

To give ourselves the best opportunity for success on this first agile project, we explored and changed almost every facet of how we developed software: which project we chose to first attempt agile development, how we estimated project size, how we staffed the project, how interactions between team members should occur, which technologies we used, and how we sold the project to our customer, our team, and our IT Steering Committee.  Most parts of the first agile plan went as designed; other aspects could have gone better.  Key lessons learned on the project were centered around simplifying process and design approaches, as well as improving project communication and team dynamics.

About the Application 
The Douglas County Government IT Department developed an application to (1) automate law enforcement processes to manage the county's convicted sex offender registry, and (2) publish the registry to the public.  The application provides powerful management and search tools to all of the police jurisdictions within the county to sex offenders' files, and transfers them between jurisdictions (see Figure 1).  County citizens can also view the most accurate sex offender registry available (see Figure 2), and sign up to receive email notifications if new convicted offenders move within a designated radius of their home, children's schools, or other places of interest.  The public portion of the application is viewable at: http://www.douglas.co.us/apps/soso/initPublicIndex.do

casestudymarch07-1small
Figure 1 - Law Enforcement Agencies have a tool to unify the management of convicted sex offenders between jurisdictions.  The search capabilities provide investigators with multiple ways to search for suspects among previously convicted sex offenders.

casestudymarch07-2small
Figure 2 - Citizens can search for previously convicted sex offenders within a designated radius of any address in the county.

 

Planning for Success
Choice of Project. We took great care in choosing this particular project as our first attempt at Agile. The project was near ideal to us for a few key reasons.  One, the system did not require integration with many other existing systems.  This was beneficial in that we were not injecting changes to other systems that would require re-coding or re-testing.  Two, the business rules were not complex.  Unlike other systems in the County, the business rules for the application were easy to understand, and there was a degree of latitude in

Advertisement
how we fulfilled the user's need. (By comparison, the County's system that calculates residents' Certificate of Taxes Due, has very complex business rules where one and only one calculation is correct.)  This reduced the risk that developed functionality would have to be reworked upon customer review.  Three, the size of the application was smaller compared to other County systems, but large enough to uncover any issues we would face if we chose to apply this methodology to future projects.

Overcoming Resistance.
The IT Steering Committee was initially (and rightfully) wary of our pitch that we could reduce the project timeline in half with the implementation of a new approach.  Their experience taught them that IT groups such as ours would promise "big changes" but produce little in tangible results.  To overcome their reluctance to our approach, the IT management team took an educated gamble - we offered a guarantee.  If, after two months of our four month project, the customer was not happy with our progress, we would recommend to the Steering Committee that the project be cancelled.  While we knew this would increase the pressure on our project team for results, this tactic helped us gain approval from the Steering Committee.  And after receiving a round of applause from our customer at the month two demo, it was clear that we had begun to win some trust in our approach.

Staffing. Determining who would work on the project turned out to be as important as any process or technology decision we made.  We estimated that the size of the project would require two developers for design and coding, a QA analyst for testing, and a Scrum Master, who managed the project.  The team members were hand-picked not just because they were technically astute, but also because we believed they could absorb change quickly, be comfortable working under some ambiguous circumstances, and had some flexibility to work extra hours, if needed, to recover from mistakes along the way.  Perhaps the most important decision was staffing the project's Scrum Master.  We chose the Software Engineering Lead for this role, rather than a traditional project manager, as he had previous agile experience and could adapt the process on the fly, was well suited to provide technical guidance, and could relate to the developer's concerns, who were implementing new processes and technologies under the gun of the project schedule.

Team Dynamics. One of our best decisions was to co-locate the team for the duration of the project.  We temporarily moved the developers and QA analyst into a workroom.  While seemingly a small detail, the project team is united in its belief that the resulting increase in communication directly reduced the schedule.  Before the project, we expected that the bigger change would be that the Scrum process allowed us to "build a little, test a little," and give us a big schedule lift from our waterfall-based project methodology.  Although hard to quantify, we are now certain that co-location was as big a key to success, especially on our first agile project where the constant communication cut down on confusion and wasted time.

Estimation. Two techniques new to us were particularly useful to estimate the project.  The first was the creation an HTML mockup of the core application screens, developed by the team that investigated the project scope.  The mockup confirmed high-level functionality and was a useful analogy for the Scrum team to use for the database schema and UI designs.  The second technique was using story points and nonlinear estimation techniques, like those elaborated by Mike Cohn in his book Agile Estimating and Planning (Prentice Hall, 2005).  An estimation scale where the gaps between values doubled each time (1, 2, 4, 8, 16 hours, etc.) proved valuable, and gave a realistic level of "accuracy" for complex or ill-defined story points.

Design Simplicity. No matter the methodology used, there are upper limits to a developer's productivity.  Studies have shown that for Java/J2EE development, a very productive developer can hand-code about 2,000 source lines of code (SLOC) per month[i].  A core strategy for this effort was to drive out unneeded complexity from the software architecture, and reduce the amount of hand-generated code.  For example, we excluded the use of EJBs, as the cost in developer time outweighed the benefits of such a heavy approach.  In addition, we used Hibernate for the persistence layer of the architecture. Hibernate is an open source java-based tool that maps database relationships to an object-oriented domain model, and can significantly reduce development time otherwise spent with manual data handling in SQL.  Previous project strategies required our developers to hand-code this tedious layer of the software architecture.  The Scrum Master also chose to implement Google Map APIs for the application's mapping functionality.  This required less code than using the county's traditional mapping solutions, and further reduced the overall application SLOC count.  The final application was completed with approximately 25,000 SLOC, with over 8,000 SLOC generated through Hibernate.  Given the two-developer, four month project, it is clear that the project would have extended by months without these choices being made.

Project Management. Tracking progress on an agile project would not have been possible using the county's traditional earned value management and waterfall-based work breakdown structures.  The Scrum Master reported progress in the IT PMO's weekly project status meeting using a visual graph of the team's burn-down chart and progress towards that sprint's story points (see Figure 3).  The approach simplified the data that needed to be maintained to accurately gauge the project's progress, while being as (or perhaps more) informative, than the traditional project management measurements. 

casestudymarch07-3
Figure 3: A simple backlog and Burndown chart was maintained in MS Excel, and summarized in one MS PowerPoint slide to communicate the project's weekly status

Retrospective
For all the success of the project, we learned from a couple of missteps as well.  While neither of these issues was a huge detractor, lessons learned included the following:

Organizational Change. We underestimated the anxiety that this move to Agile would produce within the IT organization. We communicated that the management team was driving this first attempt at agile development as a pilot only, and created and presented a "Scrum 101" presentation to share the approach.  But staff members read between the lines of our communications and were apprehensive on the implications of agile development.  Business Analysts were concerned that the closer relationship in an Agile project between developers and the customer would eliminate a need for their positions. Project Managers were concerned that they would need to be technical experts, as was our pilot's Scrum Master. IT Operations was concerned that creating constant builds would introduce configuration management issues. We could have spent more time one-on-one with each of these groups to better manage these concerns.

Personal Change. The move to Agile required more personal change for the project team members than we anticipated.  Developing software in a more cyclic, feature-driven, less structured approach was a huge paradigm shift.  Moving away from the comfortable patterns with which the team was most familiar, towards new approaches - even if we thought they were better - was initially viewed by them as risk, not opportunity.  In hindsight, we could have prepared more to overcome their initial resistance to these changes.

Summary
Our first attempt at an Agile project was driven top-down by management, and sold to our IT Steering Committee and project team members. By all measures, it met or exceeded our expectations. Our path to faster delivery was not a revolutionary move to a new methodology, but rather an evolution of many of our software development processes. Each change we made chipped away at the schedule, and fit together to cut the overall project timeline in half. Our advice to those driving change from the top: spend time evaluating all aspects of your project management and development practices for efficiencies, but do not underestimate the effect of those many changes on the project team members. The extra effort is sure to result in improving your project teams' speed and quality.

 


About the Author

Chuck Fredrick, CTO of Douglas County, CO. Chuck has 14+ years experience in Software Engineering, leading all functions of the software development process using a variety of development methodologies.  Chuck joined Douglas County, CO government in January 2006, and serves as the Chief Technology Officer, where he has responsibility for Enterprise Architecture, Software Engineering, Quality Assurance, and technical strategy.  Prior to joining Douglas County, CO, Chuck held various management positions at a Fortune 20 telecom company, and was a Captain in the United States Air Force, serving as an Acquisition Officer.  Chuck has a B.S. in computer science and an MBA with a Marketing emphasis.  He is a certified Project Management Professional (PMP) and a certified Six Sigma Greenbelt.


i] David Consulting Group, Comparative Sizing and Measurement is Critical to the Improvement of Software Application Development and Maintenance, 2006 [copyright date], February 2, 2007: < http://www.davidconsultinggroup.com/pdfs/DCG%20Industry%20Data%20White%20Paper%2006%20PDF.pdf >



Error, missing joomlaboard config file!

Comments (0)add feed
Write comment


Write the displayed characters


busy
Tags:
Click to add your tags...,
 
< Prev   Next >

Video News

 
Copyright © 2006 - 2008 CMC Media, Inc. All rights reserved. All marks are trademarks of CMC Media Reproduction in whole or in part in any form or medium without the express written permission of CMC Media, Inc. is prohibited  
 
 CM Yellow Pages | ALM Expo | CM Today | Configuration Management Journal | CM Crossroads