Founder & CEO, QA InfoTech
Mukesh Sharma is the founder and CEO of QA InfoTech. QA InfoTech (an ISO 9001:2008 and CMMI Level... more>>
This emphasis on producing sophisticated, innovative and quick-to-market applications has spawned and popularized two significant trends for enterprise software development and testing. They are; the Agile development methodology and the use of Global Virtual Teams to build and test these applications. As we shall see however these trends are not a natural fit and require a dedicated and concerted effort to leverage the optimal benefits of each.
The Agile Method
The older traditional approach to project development took a rigid, linear, methodical approach through the project development lifecycle of requirements gathering, analysis, design, coding, testing and deployment. Errors found in the latter testing stages of the lifecycle, or requested changes to the requirements, were most often deemed too costly or time consuming to fix or retrofit. Although the traditional method still exists today and has its benefits in the software development and testing world, it lacks the flexibility and timeliness required of the many client-driven web-based products and services competing in the marketplace.
To address those specific needs, the agile method was developed. In Agile, an incremental and iterative approach to software development testing is taken. Rather than compiling a complete set of written requirements for the application before conducting design and analysis, Agile seeks to bring all key participants of a project together to address one feature of the product at a time. This gets done through user stories where each feature is discussed and decided upon by the participants. Each feature is then coded, tested and approved by the participants before moving on to the next product or service feature. And as we shall see below, Global Virtual Teams are increasingly deployed to implement this strategy.
Its a system that ensures that feedback solicitation and customer acceptance are done early and often throughout the project lifecycle. As a result, it provides the opportunity to address problems early and the flexibility to propose and test changes or additional features to the application with minimal impact to budget and schedule. The concept is designed to bring the product to market in a more efficient and timely manner.
At its essence, the Agile process, unlike the traditional development and testing method that places heavy importance on processes and tools, stresses the importance of people in the software building and testing process. Whereas traditional software testers and customers oftentimes do not become fully involved in a project until late in the project cycle, Agile brings developers, testers and customers in at the beginning. A team concept is encouraged where everyone is expected to collaborate and contribute closely and frequently throughout the development life cycle. Communication is key.
Global Virtual Teams
In an ideal environment, the best approach to IT software development and testing assembles all members of a project team in one location. This close proximity maximizes the ability to communicate. And the best communication is face to face communication. Encompassing facial expression, body language, intonation and words, personal connection is by far the preferred and superior method for building trust and minimizing misunderstanding or misinterpretation. Any discussion requiring a true dialogue and consensus is best done face-to-face. Co-located teams also experience more timely communication.
However, as weve mentioned, todays markets demand increasingly sophisticated and innovative products and services. These new business realities have spawned the movement towards geographically distributed development. Through the globalized marketplace companies can expand the search world-wide for organizational and individual resources with specialized knowledge, skills and expertise to build and test high-quality best-in-class products and services for a global market. For testers in particular, where the breadth and scope of their responsibilities, as well as the tools of their trade, have expanded and grown exponentially, the availability of Global Virtual Teams to remedy an increasing shortage of knowledge and experience in new automated tools, many widely available off-the-shelf, such as Selenium and JMeter, have enhanced companies ability to bring products to market more quickly and often at reduced cost.
Unlike the traditional method of software testing, relying on the co-located company IT staff to test applications, businesses, through these global virtual teams, gain the ability and flexibility to assemble the best talent for their particular project. Advanced communication technology in videoconferencing, VoIP voice conversation, virtual whiteboards, mobile communication, not to mention instant messaging, blogs, forums, wikis and tweets, among other tools, have significantly closed the time and distance gap that in the past made globally dispersed development impractical. As a result, companies now have an expansive pool of specialized testing talent at their disposal. High quality employees and specialized outsourcing organizations that closely fit the specific product and its global impact, as well as fill any company knowledge and skill gaps, are now at companys fingertips. In addition, there are the savings opportunities in less development costs when done offshore, and/or fewer relocation issues and cost.
Challenges in Bringing the Two Together
Assessing the features of these two emerging trends, one can see the benefits and advantages each contributes to the new and challenging realities of the software development and testing landscape. However, in combining the two, one can also recognize the potential pitfalls.
With Agile, frequent and timely person-to-person communication is a vital component, necessary for success. Face to face team meetings and casual conversation between team members are significant contributors to the teams collective understanding. The formal specification writing process of the traditional method is replaced by user stories where close conversations among developers, testers and product stakeholders dictate how the specifics of each portion of software functionality is fleshed out. Co-location and face-to-face communication reduce misunderstanding and misinterpretation and better provide the flexibility, innovation and speedy development demanded today.
Global virtual teams, on the other hand, do not readily lend themselves to this direct communication method. Virtual teams primarily rely on a combination of the communication technology tools mentioned above, throughout the development process, a result of the time zone and distance obstacles inherent with dispersed organizations. Although these communication tools significantly close this communication gap and continue to advance in sophistication, it cannot eliminate the misunderstandings and misinterpretations that can delay progress, add to costs, promote rework and affect team morale.
For companies that embrace the Agile methodology, with its requirement for high level coordination and communication, it is vital to understand the impact of a dispersed virtual team, and mitigate its impact wherever possible.
At its core, distributed agile teams must compensate for the added communication difficulties of time and distance. Teams that have been most successful in breaking down these barriers have done so by adhering to some key practices designed to address these communication issues.
First and foremost, responsibility for setting up and distributing communication practices should be explicitly assigned as a primary task for a member of the team. Such duties might include for example the setup of a team room for unplanned meetings and assuring it is equipped with the appropriate communication tools. Conference phone, Web conferencing or video conferencing software to share applications are also necessary to close the distance gap. Plans for the proper tools and usage for both synchronous communications (e.g. Phone, Web cams, instant messaging), as well as asynchronous connection (e.g. email) must also take on added importance. Most importantly, ensure that the technology implemented is compatible and reliable.
Depending on the team’s geographical location, time zone differences can be a real impediment if not properly addressed. Communication unavailability among the collective teams requires special focus on identifying and productively using any time overlaps. For some teams there exists an opportunity to realistically work the project around the clock. However, this necessitates highly focused attention to coordination and communication protocols.
Also, make sure roles and deliverables are clear, complimentary skills and competencies among the partners is recognized, proper training is identified and provided, and competent technical assistance is consistently available.
As mentioned previously, there really is no substitute for person-to-person communication. Although not practical on a day to day basis, it is important to plan and budget travel as part of the project. Bringing together the project principals at those points in the project where key decisions are made is essential not only to mitigate miscommunication and misunderstanding, but also for building trust and rapport. The creation of personal bonds eliminates the Us vs. Them" mentality that can sink morale and the project as well.
Finally, thinking beyond the immediate project, be aware that the best teams are built over time. Teams that stay together over multiple projects and time reduces the ramp up time to formulate new teams and incorporate team practices. The need to reorganize virtual teams for each new project can be an extremely disruptive activity, best avoided. Finally, longer term team members can build the trust, cooperation, unity, confidence and camaraderie, so important for success.
When companies committed to the Agile methodology of software development decide to take advantage of the opportunities provided by globally dispersed development, it becomes clear there are risks and tradeoffs that must be understood and mitigated to achieve a successful result. We have seen several ways the impact time and distance differences can have on product delivery time and team morale. An inability to address and overcome the person-to-person communication bandwidth lost when these two trends are merged, by replacing it with a closely managed and monitored communication technology approach, has led to many a failed project undertaking.
Author: Mukesh Sharma. You can reach him at firstname.lastname@example.org
Experts on QA
Sr. Software Eng.
Latest postings by this author
Top Expert Articles