Key Principle: Start with Scrum
To inform this key principle, learn the basics, daily and weekly process, and roles of Scrum.
We'll cover the following...
MORE EFFECTIVE TEAMS The next five chapters—from this chapter, “More Effective Agile Beginnings: Scrum,” through “More Effective Individuals and Interactions”—describe issues related to individuals and how collections of individuals are combined into teams. This chapter describes the most common Agile team structure, Scrum. The other chapters discuss Agile teams in general, Agile team culture, geographically distributed teams, and the individual and interaction skills that support effective Agile work.
MORE EFFECTIVE WORK If you’re more interested in specific work practices than team dynamics, skip to the chapters beginning with “More Effective Agile Projects” and ending with "More Effective Agile Delivery."
MORE EFFECTIVE ORGANIZATIONS If you’re more interested in top leadership issues, skip to the chapters beginning with “More Effective Agile Leadership” and ending with “More Effective Agile Adoptions.”
The primary challenge in the software industry for the 35 years I’ve been working in it, and probably longer, has been avoiding “code-and-fix development”—writing code without forethought or planning and then debugging it until it works. This ineffective development mode results in teams spending more than half their effort correcting defects they created earlier (McConnell 2004).
In the 1980s and 1990s, developers would say they were doing structured programming, but many were really doing code-and-fix and missing all the benefits of structured programming. In the 1990s and 2000s, developers would say they were doing object-oriented programming, but many were still doing code-and-fix and suffering the consequences. In the 2000s and 2010s, developers and teams are saying they were doing Agile development, but even with decades of history to warn them, many are still doing code-and-fix. The more things change, the more they stay the same!
A challenge created by Agile development is that it is explicitly short-term-oriented and code-focused, which makes it more difficult to tell whether teams are using Agile development practices effectively or are doing code-and-fix. A wall ...