Company leaders have traditionally been unconcerned with the nuts and bolts of their internal software development efforts, but the recent challenges facing some high-profile projects have placed these issues at the forefront of business concerns. The government’s troubled rollout of the Healthcare.gov website issued a wake-up call to members of numerous industries that ineffective development and quality assurance practices could lead to significant problems down the road.
In the case of Healthcare.gov, users experienced numerous debilitating performance issues when the website launched earlier this year. Some of the blame for the project’s initial failure has been placed at the feet of the ostensibly agile development methods employed by government contractors. However, as CIO’s Matthew Heusser noted, the approach taken by the Healthcare.gov teams did not accurately represent agile methodology.
“In agile software development, the terms ‘sprint’ and ‘iteration’ mean the time for a new, completed chunk of software development to be designed, coded and fully tested, end-to-end,” Heusser wrote. “The standard length for teams to start with iterations is two weeks; improvement beyond that generally means shortening the iteration. … Many teams use ‘sprint’ or ‘iteration,’ only to insert waterfall concepts.”
According to Heusser, Healthcare.gov’s rigid launch date was likely a primary factor for the QA setbacks. When implemented correctly, agile development principles can help developers remain nimble, conducting the various necessary duties all at once, within a short window of time. This unifies the efforts of development teams on a single goal and has resulted in quicker software releases while retaining a high quality for the finished product.
Development duties shift with agile
Moving from traditional waterfall development practices to an agile approach can help organizations deploy software projects within a shorter amount of time, but the additional demands placed on IT teams can be tremendous. An excerpt from Forrester’s “Navigating the Agile Testing Tool Landscape” recently appeared on Computer Weekly. In it, Forrester Research principal analyst Diego Lo Giudice explained that shifting to an agile approach to software development will likely require managers to make drastic changes to the day-to-day duties of their personnel. Team members will have to incorporate more QA measures to test the performance of their software as it is being developed.
Developers may not be prepared to handle such a dramatic shift, but if organizations can overcome lingering challenges and effectively make the transition to agile, they may experience far more efficient development processes in the long term. Lo Giudice highlighted some of the common roadblocks impeding successful agile implementation, including:
- Relying on manual testing – Manual testing has been a hallmark of QA operations and continues to serve a critical function within the software development process. However, these tasks are incredibly time-intensive, requiring a team member to painstakingly execute software tests. Whenever possible, testers should make use of automated test scripts that can comb through much more code in a shorter amount of time.
- Reverting back to waterfall processes – Although more companies are implementing agile solutions, many falter when it comes to actually adhering to its principles. Too often, organizations that claim to be agile continue to delay testing until the end of the production cycle. When faced with firm deadlines, as in the case of Healthcare.gov, this can lead to insufficient time devoted to QA efforts, increasing the risk of defects appearing in the released software.
- Failing to catch bugs early – The longer a bug or defect lingers in a software’s code, the more expensive and time-consuming it will be for developers to effectively remove it. Software flaws need to be addressed as early as possible, ensuring that the adverse effects presented by these issues are mitigated.
Making a smooth transition from waterfall-based testing to agile methods may not always be easy for teams to achieve on their own, which is why many organizations have turned to consultants to help streamline this process. By looking for assistance outside of the organization, team leaders can enlist those with the experience and expertise needed to effectively deploy agile development measures and ensure that they help guide developers to more productive and efficient methodologies.