Dr. Dobb's: What's the most compelling reason for an organization to adopt agile processes?
Szalvay: Agile development makes clear responsibilities associated with a product's direction and quality. Before adopting agile, there's typically a game of "hot potato" at most organizations regarding who's responsible for schedules and the features delivered.
At the same time, managerial pressure to deliver puts developers in a position to cut quality. Agile frameworks like scrum appoint a single person who consciously makes these trade-offs, while affording development teams the ability to implement without shouldering quality decisions.
Dr. Dobb's: An agile approach requires effective communication to work. What are some techniques teams can use to keep everyone in sync when transitioning to a truly collaborative workflow?
Szalvay: The ideal technique is to colocate cross-functional teams in a bullpen-style environment. If colocation isn't possible, then start with cross-functional teams. This requires breaking people out of their functional silos and asking them to work as a real team--developers, quality assurance staff, documentation writers, all together. Then require that work be delivered incrementally, not just when the code is complete. The biggest obstacle to agility is a siloed organization with gated handoffs between roles, because it makes it easy for upstream roles to rely on downstream roles for quality.
Dr. Dobb's: In what ways has the agile methodology been affected by the shift toward cloud computing?
Szalvay: As teams and organizations start thinking agile, they realize the value of rapid builds, continuous integration, and heavy test automation. These practices enable agility by providing a safety net of instant feedback when team members embark on radical code changes. The faster the feedback, the better, but most organizations are hardware-resource constrained. Enter cloud computing. Once there's an infrastructure in place, developers can deploy to the cloud and get feedback from test automation suites running in the cloud. And since it's on demand, resources are well utilized and costs stay reasonable.