Published on June 4, 2009
This post was previously on the Pathfinder Software site. Pathfinder Software changed its name to Orthogonal in 2016. Read more.
We hear more and more about large organizations adopting Agile software development practices recently. This is not surprising given that Agile practices have many advantages over traditional methods. One significant difference with Agile is the focus on building good teams. Unfortunately, organizations new to Agile often miss two fundamental questions before jumping into an Agile adoption. The questions are deeply related, but not directly at first.
- Why do Agile? To put it simply: Software projects can be better, faster, or cheaper by using Agile practices. Pick any, and only, two.
- What kind of team should be created? Efficient or effective?
An efficient team is commonly what an organization has in mind – highly skilled and predictable in execution. Generally, they are workgroups made up of multiple experts working on and sharing their expertise across multiple projects. The individuals on these teams are allocated to projects 90%+ of their time and have very little slack time. One can be highly prescriptive about how to build these teams as well: plan, execute, measure, and control. These teams appear to be cheaper and often faster. However, they do struggle to innovate and build a significantly better product than their competitors.
Effective teams mirror natural systems. The natural world designs very effective systems, but always a pretty or seemly slick one. The ecosystem is highly complex and very effective at spreading plant and animal life across it. For example, an ecosystem in a deep ocean trench has some ugly fish that eat surprisingly well. Additionally, natural system adapt extremely well to changes. Effective teams are adaptive to their environment and are very creative in their problem-solving. They are very aware and open about trade offs made to achieve their goals. However, they often solve problems in a way that is different than their managers would have asked them to do.
At Orthogonal, we build effective teams. This is because an efficient team can only solve a subset of problems while some of our clients need good UXD at any cost, some need a cost effective software built, others need to get an innovative solution to their problem to market quickly. By focusing on building teams that have a clear focus and are mindful about how they operate we are able to solve many more problems. How will they solve these problems? I can’t tell you yet. it probably won’t be in ways I can predict. It depends on the team and the problem to be solved.