According to the professionals, Agile software development is not just a new methodology; it’s a new way of thinking; a way to speed up your entrance into the market, helping you to manage your ever-changing business needs and bring operations in line with IT and business objectives. According to the 8th Annual Survey of the State of VersionOne’s Agile Development, in which 3,501 members of the global development community were interviewed, 88% of organizations use Agile development, showing an increase on the 84% seen in 2013and the 30% seen in 2011.
The report also showed that 52% of businesses use this method in over half of their projects; being of the opinion that Agile development is much more effective than the traditional Waterfall development model when helping them to gain the competitive advantage.
While this is a global trend, it is felt that Latin American businesses are beginning to follow suit. “We are making a good start in the region,” says Juan Diego Vasco, a Product Testing Specialist for Choucair Testing, a Colombian software testing business. “And over the next few years this is expected to increase significantly.”
What is it that makes Agile software development a viable option for businesses? What are the most common mistakes made by the teams and how can they be avoided? What is being done to speed up the development life cycle?
First and Foremost: Discipline
The consensus is that you need to get to know the Agile Software Development Manifesto and its twelve principles inside out. Development professionals agree that, no matter which framework you chose to work with – whether it be SCRUM, Kanban, Lean, XP, Agile Modeling etc – there is always the risk of misinterpreting or deviating from these principles; resulting in a lack of discipline.
Discipline is an essential part of Agile development. “You have to be extremely disciplined. If not, the Agile project will likely get out of control,” states Ingmar Frey, Operations Director and Architect at BPMTech Solutions, Mexico. SCRUM recommends holding meetings every two weeks; although some businesses prefer to meet on a weekly basis. SCRUM meetings can even be held on a daily basis, helping you keep on top of any project developments and problems encountered.
“Consistency, commitment, collaboration and interaction are all vitally important as they help to maximize productivity,” says Juan Pablo Sarquis, Project Manager and SCRUM Master of the Argentine business Santex. In any development project, it is the team’s productivity that is measured, not the individual’s, so communication is of vital importance. “People should feel free to ask for help when they are feeling snowed under. If a developer is not able to share his achievements and communicate any complications he may be experiencing you are likely to run into productivity problems,” Sarquis says.
Juan Diego Vasco from Choucair Testing recognizes that Agile development teams working for the same company often have different techniques. Teams creating software within these Agile frameworks should be used to self-organization and self-management. “We should seek to understand exactly how each team functions, what methodology they are following, how their process has been defined and what formats and standards they wish to follow,” he states.
According to Vasco, the role of software testing in the Agile development life cycle should not be overlooked. In fact, the role the testing analyst plays in the team should be clearly defined. Some people feel that Agile methodology shouldn’t include professionals in charge of testing. “People tend to think that a development team should only include programmers; but this is not the case. Development involves several factors, such as; comprehension, design, codifying, testing, documenting and installing software,” he states.
According to Juan Pablo Sarquis from Santex, a common mistake is not giving the product owner the consideration he deserves. He indicates that the best customer satisfaction levels are achieved when the product owner is fully involved in the process, as he is the one responsible for representing the business’ interests. “Not fully grasping the importance of this is, for me, a serious mistake; one that can result in many complications,” he adds. “The product owner is the one who defines the route a project should take. In my experience, identifying the product owner is crucial.”
Striking a Balance
It is well known that Agile methodologies favor face-to-face communication in the documentation process; which can sometimes lead to lack of discipline. According to Sarquis, it is vitally important to understand the reason behind the documentation. In most cases, putting every single detail of the development process down in writing is considered overkill. “You have to try to strike a balance. User manuals should be well documented, in accordance with regulations, but going overboard may result in amassing a load of information that doesn’t really offer any benefit to the business, or add value to the product.
While there is such a thing as the “ideal scenario” when documenting, it may be that the “perfection” this demands will not be possible when taking into account the ever-changing environment the business is operating in. According to Ingmar Frey from BPMTech, it is more important to fully understand the development process rather than trying to get a perfect understanding of the manual. “In my opinion, the process should be well defined and understood by all. If the developers don’t fully understand it or the project manager doesn’t fully respect it, discipline will be lost,” he states.
According to the manifesto for Agile development, the individuals and their interaction with each other are valued higher than the tools and processes being used. “Although this doesn’t mean that processes and tools don’t play their part,” notes Vasco. “Agile development methodologies do require documentation, just not to an excessive degree,” he states. “If you think that working within an Agile framework means working without methodology, you are greatly mistaken. In fact, it requires above average discipline as it involves a self-managing team.”
What to Do in Case of Emergency?
When it comes to responding to unexpected situations, experts agree that this is when collaboration and teamwork skills play a major part. “Problems should not fall on one single person. You have to be aware that Agile development methodologies are flexible, not predictable,” says Vasco.
Frey offers this simple advice: follow the process precisely. “What fireman would refuse to follow procedure when putting out a fire? Doing so would put his life at risk. When emergencies arise, discipline should be paramount.” Ingmar also states that when under pressure developers should act in a disciplined way and follow procedure. “If, in the moment, they can’t think of what to do, they should try and recall procedure and follow it like a robot: that way they can’t go wrong.”
Rotation is an issue that Agile software development project leaders continually have to deal with. According to Juan Pablo Saquis from Santex, consolidation and continuity in a work team is something that is extremely difficult to achieve in the software industry. “Technical resources are extremely volatile,” he says.
When starting a project with a consolidated team, productivity levels are often high. However, this can change without warning, as members leave and throw things off balance. “As much as you try to find a similar individual to replace this person, the overall team productivity and response procedure is always affected,” Saquis adds.
“How can you pass on the needed knowledge? How much is a project put back when a member of staff leaves?” Frey explains that frameworks have proven to be the solution to this problem. Software development is already very standardized, so, if a developer leaves, his replacement can get a good understanding of the project within a matter of days.” He does, however, recognize that things get a bit more complicated when it is a business analyst who leaves, as he is the one who understands the client’s specific processes, “he’s the one in charge of the business relationship.”
In Direct Contact
As already mentioned, constant collaboration and communication play a vital role in the Agile software development process. Face to face meetings and collaborative tools are essential. Frey promotes the use of collaborative tools. For example, when teaching in one of the leading Mexican universities, Frey insists on the use of Google Docs. “I want the students to learn to collaborate; to understand that collaboration does not mean only doing half of the task while someone else does the other half. For me, collaboration is about synergy, rather than splitting up the work load.”
And this is what he seeks to replicate in his own work team. Tools such as WhatsApp and Skype can also be used, helping create an open environment where everyone is encouraged to participate. He also highlights the importance of actively collaborating in the ticket system and their accounts. “When people are lazy in their use of these ticket systems, or they put off using them until the end of the day, problems often result. Agile methodology involves using collaborative tools in a disciplined way,” Frey states.
“Videoconferencing systems are also an excellent option. You have to provide the teams with all the resources they need in order to be able to communicate well,” adds Vasco from Choucair Testing.
There are startup businesses who use Agile software development right from the start; giving them the competitive advantage and helping them to establish their position within the market. However, experts agree that established businesses that are leaving the traditional Waterfall development model should exercise patience.
According to Vasco, one of the biggest mistakes you can make is to treat Agile development as you would a traditional Waterfall project, with only a few, small iterations. In fact, he suggests familiarizing yourself with the way in which this development framework functions. “When a business starts to work with Agile development methodologies, it should be aware that a change in method is inevitable. It should not insist on doing, on a smaller scale what it has always done when using traditional methodologies,” he warns. Nor should they assume that changes can be made overnight: “You have to be patient with the team; giving them time to mature.”