Being on an agile team is not all that different than being on any other team, according to Aaron Bjork, principal group program manager at Microsoft. On a team, the teammates have to understand the game, communicate with one another, collaborate, and function together toward their goal.
“The idea when you are putting together your software team is that you are putting together a team of people that is going to work together, and they live across roles,” he said.
When an organization says it is agile, it is increasingly referring to shortening its development cycle, getting features in the hands of customers more rapidly, talking about visibility, and talking about the work and also the results of the work, according to Dan Chuparkoff, group manager at Atlassian for JIRA. While the essence of agile seems simple, the transition can be difficult.
It is impossible for an organization to come in and say, starting next Monday, it is going to be agile, Chuparkoff explained. “Agile is not a light switch,” he said. “It is a process and a long cultural change.”
When approaching agile for the first time, organizations need to understand that they are going to have to fail first in order to succeed.
“Don’t expect to get it right the first iteration or first sprint. You need to be willing to try things and learn how to measure your successes and failures so you can improve,” said Jeff Smith, development manager at Rally Software.
Hitting a homerun
There isn’t one way to be successful in agile, but there are a few practices that can help get you there:
Pair programming: Pair programming is simply the act of having two people sit down in front of a screen and write software together. One person writes the software while the other observes and comments. “It really helps to build software with fewer defects,” said Bjork. “It also serves the purpose of learning as you go and sharing what you are thinking with somebody else as you go, and in the end that usually brings developers and testers closer together, and there are huge wins in that.”#!Continuous integration: The idea of continuous integration is that teams are checking their code into a main codebase multiple times a day. “You are essentially keeping your codebase fresh and making sure it continually works,” said Bjork. “Staleness in your codebase leads to bugs and integration problems downstream.”