By Ron Montgomery, Management Consultant & Owner, OnPoint, LLC
A New Approach to Programming Requires a Different Approach by Management
Agile is sometimes perceived as “cowboy programming,” devoid of discipline, and structure. This perception is fueled by flawed rollouts that overlook the agile principles that espouse “working software.” When properly implemented, agile is very disciplined and results in high quality, reliable software that is tested extensively. Agile testing, however, requires a new approach.
Why is a new approach needed?
In a traditional, “waterfall” software development environment, the original plan allows plenty of time for testing. Towards the end of the project, the team is surprised to find that development is taking longer than expected. Since the completion date is firm, something has to give. That “something” is usually testing. The plan may have called for a solid month of testing but the QA team will be lucky to get a couple of days prior to go-live.
By contrast, the agile framework calls for frequent delivery of working software. As depicted in the drawing below, each two-week sprint results in tested, usable code. Some teams may try to perform “mini-waterfalls” that delay testing until the final 2-3 days, but these teams quickly create a tsunami of test issues that carry over from sprint-to-sprint. To be successful, agile teams must employ a new approach.
How is agile testing different?
Common agile testing practices in place today are the result of the XP (Extreme Programming) methods developed by Kent Beck in the late 1990s. These methods are no longer considered “extreme” and are currently considered quite mainstream among systems engineers. Following are four testing practices that are common among agile teams.
1) Test Driven Development (TDD)
With TDD, the developer first writes the test, then writes the code, and then continues to refine the code until it passes the test.
2) Automated Testing
Agile teams quickly learn that the level of effort required for testing is impossible to sustain. Automation is needed and there are many tools that allow testers to run pre-planned test scripts over and over again. In agile, the role of the tester grows from merely executing tests to designing and developing automated test scripts. Another change is that in agile, both systems engineers and QA specialists are involved in testing.
3) Continuous Integration
The developers check in their code at least once a day (usually more frequently) and automated test scripts are run to ensure the new code works and that previous successful tests are still successful. If the new code “breaks the build,” the developer is responsible for fixing it immediately.
4) Definition of “Done”
In agile, desired software functionality is communicated by means of something called user stories and those stories should include acceptance criteria. The acceptance criteria are imbedded in user acceptance test scripts that are written by business-oriented team members rather than developers. These acceptance test scripts must execute successfully before the software functionality will be accepted as “done.” All defects must be corrected in a given sprint or the entire story (not just the testing activity) is carried into the next sprint.
Senior leadership – What you can do to help?
Much of the effort required to implement agile testing happens at the team level. However, the teams will require the assistance of senior leadership in the following areas:
Changes in the Role of Testers
As noted above, software-testing specialists are typically engaged at the very end of the project. In an agile environment, testing is continuous. The testers become part of the team and should be co-located with developers in a common workspace. The testers must also learn to use automated testing software in addition to manual tests. These changes could impact the job classification and possibly the reporting structure of the testers. Implementing these changes will require your support and assistance.
Acquisition of Automated Testing Tools
Your support will also be needed to secure the resources to select, acquire, and deploy automated testing tools. These tools can improve the productivity of testers and reduce the cost of software defects, so the business case should be straightforward.
Cultural Transformation
Agile transformation extends beyond tools and processes. In order for the transformation to be complete, the culture of an organization must also change. A cultural transformation is an extensive undertaking that is far beyond the scope of this article. However, it is worth noting that even agile testing brings with it a cultural change. In many organizations, there exists a cultural value of expediency – “get it done.” This value of expediency needs to be moderated with an appreciation for quality by developers as well as testers.
Software is pervasive in our world today, and our customer’s tolerance for defects is becoming quite low. One of the principles of the agile movement is satisfying customers, and comprehensive testing is a key enabler of that principle.
Written by Ron Montgomery, Management Consultant & Owner, OnPoint, LLC Ron is certified as a Project Management Professional, Agile Certified Practitioner and Certified ScrumMaster with over 35 years of hands-on experience in business planning, software development, process improvement & deployment of software solutions. By partnering with clients to drive business value from technology projects, Ron assists clients with business planning, IT strategy, project and program management, vendor selection and team training/mentoring.
Did you find this story informative? We would like the opportunity to keep you up to date on all of our training articles. Please Sign Up for our newsletter so we can do just that.
Here are some related articles you may be interested in:
Communication Essentials For Project Managers
A Simple Approach to Prioritization
Learn How Action Oriented Team Management Can Drive Timely Results.
Lessons Learned Templates & Guide: A Managers Toolkit for Continuous Improvement
Agile Methodology: A Creative Approach to Project Management
ManagingAmericans.com is a community of Business Professionals & Expert Consultants sharing knowledge, success tips and solutions to common job issues. Our objective is to mentor and develop professionals to be better leaders, managers, team players and individual contributors. Ultimately, helping people succeed in their careers.