CASE STUDY: Shopzilla Scales Software Agility With Agile Tools
|
|
The Agile Manifesto places value on "individuals and interactions" over "processes and tools." However, an entirely new breed of tools has emerged that requires us to take another look at the role tooling plays in Agile organizations. These tools are lightweight, fully integrated and aim to both support and scale Agile by increasing collaboration at all team levels. These integrated Agile Lifecycle Management (ALM) tools are completely unlike the heavyweight, costly and disconnected tools of the ‘90s that build walls between roles with deep and highly specialized capabilities that were aimed to facilitate a waterfall method. To understand this new breed of solutions, this article looks at the value provided to one Agile team and then explores reasons and criteria for adoption.
Productivity increased 20% through time saved synchronizing business and technical teams.
| Shopzilla, the leading shopping search engine, has adopted this new breed of integrated Agile tools. Shopzilla successfully implemented Agile during a six-month period where it doubled its engineering team. While most development teams would have been happy only to have increased its release cycle time by 50%, Shopzilla also increased productivity by 20% and sped new employee ramp time. What Shopzilla accomplished during this period of rapid expansion would have been almost impossible without this new breed of tooling that helped scale and support its Agile processes.
The Shopzilla Story
As the Web's leading shopping search engine, Shopzilla keeps customers happy by responding rapidly to their needs and to new opportunities. With the rapid growth of consumer e-commerce and the competition for these dollars heating up, Shopzilla distinguishes itself by offering shoppers an index of more than 30 million products from over 75,000 stores. Its proprietary algorithms help shoppers instantly find virtually anything on sale from anyone, anywhere on the Web at the best price.Over the course of the past year, the company doubled in manpower and many of the new employees are developers of its online systems. To keep up with the growth while keeping business and technology innovation ahead of the competition, Shopzilla began expanding and tuning its use of Agile development, which it had practiced in some form since 2000.
The founding principles of the company, which are to deliver often, drive technology through business issues and support integrated development disciplines, helped make it easy for Shopzilla to support the roll out of a formal Agile process (XP and Scrum) in early 2005. But as the company grew and continues to grow, implicit processes and homegrown spreadsheets and wikis began to tax the system - they simply didn't deliver project visibility or allow teams to scale. Ramp time to employee productivity worsened, and new hires were spending too much time on the basics of "how do I do this?" or "where do I go to get this?"
The incredible pace of the industry coupled with the company's rapid growth meant that Shopzilla needed to assimilate people very fast to help them get up and running. From top to bottom, it knew that success was absolutely dependent on tying the right processes with the best tools to keep up with growth and momentum.
Searching For The Right Agile Partner
The team researched various solutions for formalizing its Agile processes and increasing project visibility and collaboration throughout the organization. It started by establishing key criteria that would help meet its goals. The initial "needs" list included:
- A lightweight and flexible web application that mirrors how Shopzilla operates.
- The ability to start small and then quickly scale organically to the larger organization (an expensive pilot program and a lengthy, large-scale, million-dollar implementation weren't practical).
- Easy adoption to deploy a new application without engaging significant professional services.
- A partner who is a recognized leader in the use of Agile methods to support the company in the long-term and provide the additional expertise that might be needed throughout the implementation.
- Support for coordinating multiple teams distributed on a global basis.
After completing its evaluation, Shopzilla determined that Rally was the best integrated tool for its needs. The deciding factor was that Rally allowed it to start small and scale up easily without requiring a lot of professional services. Within a month, the first team was using 80% of the tool's available functionality and it quickly spread to other teams. Requirements definition flowed logically to scheduling, implementation, acceptance and defect tracking. It was a very seamless and intuitive transition.
Hitting Its Stride
As news spread on the success of the Agile pilot program, other teams wanted to be included in the rollout. Within 60 days, Shopzilla launched two more teams and is now expanding Agile practices and tooling at a rapid pace throughout the entire organization of 300 employees.
The company is now seeing faster release cycles and quick ramp-up of new personnel so that it is making a positive impact by an employee's second day of employment. This unique form of collaborative, lightweight and integrated tooling has helped promote the needed process changes, so it can scale its staff and output to keep up with rapid growth. Having an explicit Agile framework has improved productivity and given teams and executives more visibility in all directions.
Tool Implementation In Your Agile Teams
Given the post-bubble focus on governance and visibility along with advancing speed of Web 2.0 in a globalized world of software development, almost all software teams are looking for ways to increase velocity while maintaining transparency in a distributed team. There are three challenges that typically drive Agile teams towards increased tooling.
1. Scaling Geographically - Distributed Teams
The number one challenge for distributed teams is synching up on project status and delivering signaling and feedback across geographies. Distributed teams usually start out supplementing whiteboards, stickies and daily stand-ups with online chat and messaging tools to support collaboration and shared status across locations. When dealing with vastly different time zones, however, real-time interactions are very limited and can cause the process and discipline to falter.
An integrated tool that is available to all teams on demand goes a long way in overcoming the time zone challenge. A tool that can deliver a shared view into the project/program status as well as a lightweight signaling to support accelerated workflows can help support Agile disciplines in a partially or highly distributed team.
2. Scaling Vertically - Multiple Projects and Programs
Agile has proven itself at the team level and now has numerous successes in very large teams. An integrated tooling approach can play a critical role in addressing the core challenges that program and project managers face when trying to coordinate multiple teams and product development efforts.
At their core, multi-team releases are complicated by dependencies. One project team's release is connected to another project team's release, which are both part of a much larger program. Without rollup visibility into the shared requirements, status and defects, program and project managers are in the dark trying to assess the "release-ability" and change implications at the program level.
3. Scaling Horizontally - Release-ability
Task management is part of the issue, but release readiness is more of the question. Are you "releaseable?" Answering this question requires a complete view of the release including test coverage, defect patterns, documentation and installation. To get that sense, you and your team need a solution that can help support the collaboration of all roles and artifacts - not just project tasks and stories. If that information is managed in an integrated way with signaling, Agile teams can actually increase their velocity.
Selecting An Integrated Solution: Five Key Questions
Agile teams typically have three options has around "tooling." First, there is the ‘whiteboards-and-stickies' option. This is arguably the best method for a small, co-located team because it is the ultimate lightweight process. In contrast, a second option is specialized or traditional tooling. Finally, there is the new breed of lightweight, integrated tools that are specifically designed to support Agile methodologies.
If you're considering an integrated Agile tool, the following questions could help you through the process.
- What are the costs and risks? The investment you are willing to make is a good indicator of your commitment level. Teams that are completing a pilot program or maturing a single Agile team will often defer to a low-risk option of on-demand subscription deployment. Shopzilla's criteria necessitated an on-demand solution because it wanted a small upfront investment with no-cost deployment and training. Alternatively, on-premise solutions often carry a higher upfront cost and a minimum user commitment. Other costs to consider include: installation, required software components, user training and data import and export.
- Does it support the team process, not just the project management process? As projects grow, product owners and analysts need to define feature backlogs and elaborate requirements just-in-time. System architects and program managers need to coordinate the actions of multiple teams. Ensure that all stakeholders have the real-time signaling and decision support needed to guide project success.
- Can you adopt it incrementally? As in Shopzilla's case, the tool needed to be quick to rollout, support all roles and activities and provide real-time status of all work products. If your development organization is made up of more than a dozen people, or you expect it to grow rapidly, make sure you understand the tooling upgrade path for larger implementations as well as enterprise-level coaching services to address the cultural roadblocks necessary to take Agile company-wide.
- Where do you need to integrate now and in the future? Some integrated tools lay over your existing Agile processes and work in your existing environment using browsers and RSS feeds. Others integrate into your existing environment through a full web services API, so your team and project stakeholders can view information any way they want.
- Is it double entry? A truly integrated tool will allow a development team to "steer" a project with real, objective data through dashboards that are the work products, so there is no double entry in different systems, and the status of all those work products are reflected up and out to the team.
The Long And Short Of It
Within the Agile community, we are hesitant to over-tool our teams. For many, tool means non-Agile, disconnected, heavy and designed to support waterfall. With today's new breed of tools, those assumptions are being invalidated. Without some level of "tooling" your ability to scale horizontally, vertically and geographically will be limited by your ability to support face-to-face communication and collaboration required by growth and success of Agile teams.
Using Agile methodologies and an integrated Agile tool to support its larger-scale efforts, Shopzilla accomplished and exceeded its organizational objectives while doubling in six months:
- Productivity increased 20% through time saved synchronizing business and technical teams.
- Release cycles became shorter and more consistent.
- Project and program visibility significantly improved.
- Engineers were better aligned with and contributing to company goals.
- New personnel became productive by their second day of employment.
- Business teams were free to focus on customer issues and strategic initiatives.
Integrated Agile tools deliver full lifecycle project, program and product management. They create real-time visibility across time zones, give executives valuable information with which to help steer the business and support the Agile model and discipline. By combining Agile methodologies and an integrated Agile solution, Shopzilla increased size, velocity, visibility and flexibility. A new breed of tools is helping to scale and accelerate Agile. It's time to think about tooling to support individuals and interactions, not get in their way.
About The Authors
Christophe Louvion is Vice President of Engineering at Shopzilla. Since 1999, Louvion has held various positions at Shopzilla, from Software Architect, Director of R&D, Vice President of Operations to Vice President of Product Development. Christophe now drives and champions the Agile best practices where business-driven technology supports the highest quality products with the greatest operational efficiencies.
Prior to working in the e-commerce field, Christophe worked as a Software Engineer at the US Attorney's Office of San Diego. Christophe started his career as a Software Engineer for Cegelec-Alstom in Paris, where he won an Anvar award from The French Agency for Innovation. Christophe received a Master of Science in Computer Science from ESIAL (France) and a Bachelor of Science in Mathematics University of Nancy I (France).
Ryan Martens, founder and CTO of Rally Software in Boulder, Colo., has led hundreds of Agile rollouts to thousands of software professionals. Before founding Rally, Ryan directed the corporate adoption of Internet technologies within Qwest Communications and co-founded Avitek, a custom software development firm, which was later acquired by BEA Systems. At BEA, Ryan led the e-commerce applications division, which grew to more than $50 million in revenue within its first 12 months. Ryan received his Masters in Business Administration and his Bachelors of Science in Civil Engineering from the University of Colorado at Boulder.
Error, missing joomlaboard config file!
|