svpg
FREE newsletter

Subscribe via RSS

Subscribe

Tag Cloud

product discovery management product management company culture product portfolio planning product development process product strategy great products product owner innovation user experience design marketing scrum product marketing agile prototype testing project management engineering high-fidelity prototypes product development

Browse by Date

  • August 2010
  • July 2010
  • June 2010
  • May 2010
  • April 2010
  • March 2010
  • February 2010
  • January 2010
  • December 2009
  • November 2009
  • October 2009
  • September 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • December 2008
  • November 2008
  • October 2008
  • September 2008
  • August 2008
  • July 2008
  • June 2008
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007
  • November 2007
  • October 2007
  • September 2007
  • August 2007
  • July 2007
  • June 2007
  • May 2007
  • April 2007
  • March 2007
  • February 2007
  • January 2007
  • December 2006
  • November 2006
  • October 2006
  • September 2006
  • August 2006
  • July 2006
  • June 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • December 2005
  • November 2005
  • October 2005
  • September 2005
  • August 2005
  • July 2005
  • June 2005
  • May 2005
  • April 2005
  • March 2005
  • February 2005
  • January 2005
  • HOME
  • Services
    • Product Management
    • Product Marketing
    • Technology
    • User Experience
    • Public Workshops
  • Articles
    • Index
    • Blog
  • Clients
  • Resources
  • Company
    • Team
    • Manifesto
    • Contact Us

The Origins of Agile

Posted by Marty Cagan on May 29, 2007

Tags: agile, scrum, product development process

If your engineering team hasn’t already moved to some form of Agile methods (like Scrum or XP), then it’s likely they’re at least considering it. Agile really does attack some key problems that have plagued software teams for decades. But many product managers and designers, and to a lesser extent QA staff, are initially confused by Agile, unsure of their role in these methods. To be clear, these methods absolutely require these roles, but I attribute the confusion to the origin of Agile methods, and I’ve found that when I explain the origins, it helps to illuminate the problems that Agile was designed to solve, and what challenges remain.

Many are surprised to learn that Scrum, the most popular of the Agile methods, is now over 20 years old. It was created in 1986 in Japan. (Yet another example of just how long it can take for a new idea to reach the tipping point).

But most importantly, these methods originated in the custom software world.

The custom software world – building special purpose software for specific customers - has long been a brutally difficult type of software. This is partly because customers notoriously don’t know what they want, but they have a need so they write a contract with a custom software supplier, or sit down with their internal IT folks, who then work to deliver, and when they do, the customer invariably responds that this isn’t really what they had in mind, so the cycle continues and frustration mounts. But the core need still exists, so this has provided job security for countless IT developers, custom software shops, and professional services businesses.

Further, custom software has long been on the short end of the stick when it comes to recruiting and retaining top software talent. Partly this is because many top software professionals prefer to work for companies that are in the business of creating software for thousands if not millions of customers. Partly it’s because software professionals get paid more at product software companies where the product team is responsible for coming up with software products that please many people, or they don’t make money. So these companies know they must hire the talent necessary to create winning products, and they pay accordingly. But to put this in perspective, only a relatively small percentage of software people actually work on commercial product software; most work on custom software.

In the custom software model, since the customer believes he knows what he needs, you’ll rarely find the role of the product manager. Likewise, you’ll almost never find user experience designers. The reasons for this are more complex, and involve a degree of ignorance (relatively few in the custom software world realize what user experience designers do and why they’re needed), and cost-sensitivity (cut costs by letting the developers design), but to be fair, due to the shortage of designers in our industry, the few that are available are immediately grabbed by the product companies that realize how critical they are, and so custom software teams can rarely find designers even if they have the leadership that realizes they need them. Similarly, QA as a discipline is rarely found in custom software projects; again, the developers are typically expected to do the required testing.

Another crucial element in understanding the custom software world is that the vast majority of custom software projects are relatively small and done to support the internal operations of a company – applications like HR, billing, and manufacturing, where the limited number of users means that issues such as scalability and performance are usually less critical.

Historically the custom software world used the Waterfall process because the various stakeholders needed a way to monitor progress during the long process of creating these contract applications. In fact, the Waterfall methods originated here as well.

In the product software world, where the software must sell on its merits, we introduced the roles of product managers to gather and represent the needs of a wide range of customers; designers to create usable and desirable user experiences; and QA testers to ensure the software worked as advertised in the range of customer environments.

But in the custom software world, the same fundamental issues of coming up with something that satisfied the customer continued. For these teams especially, the Agile methods represent significant improvements. They improve the communication between the customer and the engineers. They significantly reduce the risk by building smaller, more frequent iterations so that the customer can learn whether he really likes something or not much sooner, rather than wait for the end of a long process. They help introduce some modern software testing concepts, and they help relieve the team from spending countless hours preparing documents that are rarely read and quickly obsolete.

In general, these are great benefits for product software teams as well, but I always explain that a few adjustments are required. I’ve written earlier about these topics, such as how to insert user experience design into the process, and how to manage releases and deployments, but another area that has struggled is the architectural design area.

The Agile methods encourage engineers to not get attached to their implementation believing that things can be re-factored or re-architected relatively quickly and easily. This is true for the vast majority of custom software, but for many product software systems, such as large-scale consumer internet services which must support hundreds of thousands if not millions of users, this approach can be naïve.

So it shouldn’t be a big surprise that the main issues that many product software teams have encountered with Agile methods stem from the custom software origin. The many books, articles, and training classes that don’t mention product managers or any form of user experience designers (interaction designers and visual designers) weren’t meant for product software teams.

My suggestion to teams moving to Agile is to make sure the firm you hire to help your organization actually understands the differences that product software demands. Most don’t, but enough do.


  • Product Management
  • Product Marketing
  • Technology
  • User Experience

© 2009 Silicon Valley Product Group. All rights reserved.