Jerry Tubbs is systems development manager for DST Systems.
DST Systems' large development group of about 1,200 people over the years adopted a hodgepodge of tools, processes, and source code control systems. It didn't have a single central repository for source code nor one developer toolset shared across the organization. Some teams used Serena PVCS, others didn't. Some tools worked in Eclipse, others were standalone. Moving between tools was cumbersome. Many processes were manual and time consuming, especially if they involved Excel spreadsheets or Word documents.
Development teams complained regularly about the tools they had to work with. Managers had difficulty answering basic questions about who was working on what and determining the status of a particular asset, because they had to look in so many places to get answers.
This situation became a serious problem as we looked to accelerate the development cycle for DST Automated Work Distributor, business process management and workflow software that's been around for nearly 20 years. Financial services companies use AWD to process financial transactions. Healthcare organizations use it to process insurance claims. It's a mature, sophisticated product with lots of features. But moving it through a traditional waterfall methodology -- from design to coding to testing to integration -- was taking two years for each major release. To remain competitive, we needed to speed things up.
So after decades of using waterfall methodologies, we switched last year to the Scrum Agile software development methodology. In a short time, we achieved some impressive results. Our developers accelerated software releases by a factor of four, reducing the software release cycle from 24 months to 6 months. We also boosted developer productivity by at least 20%.
But getting there wasn't easy. Running Scrum sprints with our existing tools caused immediate problems. Processes broke down, and our disparate tools and manual processes kept Scrum teams from reaching their objectives. We knew that Agile was a team-based approach to software development. But to make it work, we quickly realized that we needed an easy-to-use, comprehensive development environment that would put tools and data within easy reach of everyone on the team.
The Right Approach
We put together a product evaluation team to identify the right development environment in mid-2008. It considered about a dozen application life-cycle management (ALM) products, including tools from CollabNet, IBM, MKS, and Serena, as well as several open source options. We settled on three finalists and ran pilot projects with each.
Cost-effectiveness and ease of adoption were key selection criteria. We also examined feature-effectiveness, assessing whether the core features were packaged in a way that made them immediately accessible. We wanted to be able to easily make use of each feature without extensive training that would impinge on productivity. Whichever product we chose, we needed to adopt it quickly so we could continue developing and supporting products in a competitive market. We were, in effect, changing the tires while the car was moving.
7 Key Factors: Effective Development Teams Start Here
1. Common Purpose Get everyone on the same page.
2. Commitment Do what's necessary to get the job done.
3. Trust Establish trust,because it's mandatory even when you don't always agree.
4. Understand The Process Master the tools and processes before coding begins.
5. Communication Share knowledge and information constantly.
6. Resources Have adequate resources at the outset so team can focus on the project, not the tools.
7. Leadership Ensure leaders are in place to make technical or business decisions.