This article is part of an Essential Guide, our editor-selected collection of our best articles, videos and other content on this topic. Explore more in this guide:
3. - Careers in enterprise application development: Read more in this section
- Mixing Agile and continuous delivery for disciplined development
- U.S. Department of Homeland Security funds security test researcher
- How Agile development helped King County Library System reach the top shelf
Explore other sections in this guide:
- 1. - Using technology to solve business problems
- 2. - Using technology to redefine and streamline business strategies
Jed Moffitt didn't expect his IT services director role for Puget Sound's King County Library System (KCLS) to extend to leading Agile Web-based software development projects. Yet, today, development project planning is about 30% of his job. The journey to that point was loaded with challenges: high demand for rapid application and new feature delivery, staff resistance, the pains of being an early adopter and, of course, a tight budget.
"Since the likes of Amazon and Google have become competitors for readers, libraries have to offer Internet services to be relevant," said Moffitt. He had to buck library systems' history of slow changes to take the 47-branch library system relevant in a time when so much of the information libraries used to provide is going online.
The decision to build and customize KCLS applications for the Web positioned Moffitt as a pioneer. "You'd be hard-pressed to find another public library that would go this route," Moffitt said. He quotes the usual reactions from his long-time colleagues around the country: "You're developing software? You've got to be kidding me!"
A history with software leads to open source tools
Necessity had pushed Moffitt into software development before. Back in 1986, Moffitt started working on library systems, transferring old-style, paper-based card catalogs into software catalogs.
"I used dumb terminals and computers with a half a K of memory," he said. From there, he moved to implementing software for "the more squishy parts of the library process," he said. That meant automating how books were selected, bought, cataloged and tracked, among other things. He began doing custom programming and fixing bugs when he couldn't get needed help from library software vendors' technical support.
As Internet providers' popularity in e-book and information services became evident, Moffitt began evaluations of new integrated library systems (ILS) for KCLS. An ILS is essentially an enterprise resource management suite that's customized for libraries. The KCLS team chose The Evergreen Project's Evergreen software, an open source, Linux-based ILS for its scalability and broad feature set, which included tools for managing, cataloging and circulating materials, no matter how large or complex the libraries.
Evergreen being open source was a primary attraction. "Commercial software vendors are really only incented to sell multiple versions of the same thing and sell licensing fees for it," he said. In addition, using open source software gives users the opportunity to do fixes, a desirable option considering Moffitt's experience with vendor support failures.
KCLS chose an Evergreen Project-related service provider for application development, customization and deployment. "We aren't resourced as a library development shop, and that's not our strategy," he said. "I'm the responsible party for the overall technology for the system, the network, and the central servers, telephones, the enterprise resource stuff, the business office, and the accounting stuff, that kind of thing." The library's applications and services are hosted entirely in-house.
Early adoption proves to be risky business
Problems with the new ILS cropped up quickly. "We created some of our own problems, being overly aggressive in our commitment," said Moffitt. Adopting Evergreen too early in its lifecycle meant sacrificing features and functions in the software that the outgoing system had.
Getting new features or customizing existing ones was a slow process, largely because the technology provider used waterfall development. The librarians at King County became frustrated, because feature deliveries came too infrequently and were never entirely in sync with their needs and expectations.
Moffitt was suddenly managing a project in chaos. "We had to scramble," he said. "We recognized we were going to need more help in order to get the system to perform better."
KCLS evaluated seven open source software and service providers. Large open source vendors couldn't address KCLS's need for a nimble team to learn the ILS, and to start producing results at a reasonable pace and price. A development services firm in Tucson was considered, but the lower-cost Baltimore-based Catalyst IT Services was chosen.
Agile to the rescue
Cost didn't clinch the decision. Catalyst IT's development methodology, Agile, did. The Agile approaches of short iterations and soliciting and acting on user feedback fit KCLS well. "No more waiting for new features and fixes, even the simple things, to get done," said Moffitt. "On a weekly basis, we're actually changing the system based on our specifications."
King County librarians have changed from contrarians to supporters of the ILS. "Seeing this regular progress has allowed us to win over these stakeholders and involve them in the process in a very collaborative way," said Michael Rosenbaum, CEO of Catalyst IT Services. "They're now invested in the outcome of our work and feel a sense of ownership over each completed phase."
There were some bumps along the way, particularly when Moffitt and Catalyst IT's team wrestled with the ILS's complex GUI and had a couple of failed iterations. As a team, however, they've gained expertise with the ILS and become fluent in fixing bugs and delivering new features. "Catalyst IT gets an 'A' for commitment," Moffitt said.
Currently, Moffitt works with Catalyst IT on planning application development projects, and the latter does the actual development, deployment and related tasks. Another service provider in Washington handles KCLS database optimization and does testing when KCLS is sandboxing new applications.
Based on his experiences in the ILS project, Moffitt offers these tips to his peers:
- Be wary of getting locked in to a one-provider services and software situation.
- Be diligent in business analysis and specification development before purchasing or developing software.
- Unless the business is happy with moving at a snail's pace, choose Agile development.
Thanks to Agile development, Moffitt said, "we've quickly gotten out of chaos to where we can
get into larger, more visionary projects."