Leveraging an Agile Model for Software Development Lifecycle
1. How has your software testing operating model changed during the last five years?
Five years ago, we were focused on a waterfall model of software development, where things worked serially—you defined requirements implemented those requirements and then after completion of the software it was handed over to a test team. The test team would then validate in a big bang approach, by conducting functional and performance tests to see what the end result will look like in a customer environment.
Now, we use an agile model which incorporates the test-driven development into the software’s lifecycle. “In today’s extremely fast paced market, leveraging agile practices and automation, allows us to deliver faster, better and cheaper products with the best quality to remain competitive. “We develop and test in parallel and therefore, when we get to the final stage of software readiness, everything has been developed, and primarily tested. The final testing is then more of a re-execution to insure it all works cleanly and integrates with other network elements to achieve the best quality.
The agile model has allowed for better planning and integration in parallel with development. Aside from the productivity benefits, the agile model can keep costs at bay since it is much more cost effective to fix things earlier in the development cycle than at the end. If you try to fix discrepancies once assembled, you have to pull it apart, fix the problem, and then put it back together which can be both costly and time-consuming.
We develop smaller pieces of the software, testing as we go along, with daily automatedverification of every new change
2. What do you think are the biggest challenges that technologists face in working in a more agile and outcomes based model?
The agile model requires collective ownership, having all the roles represented within an agile team is critical to the success of the outcome based model. This means you need someone acting as the customer representative, someone acting in the development role implementing the changes and then someone acting in the validation or test mode ensuring it works properly.
The challenge is not only identifying the right people but having the right leadership to guide the team to deliver the right product. This is because an agile model is not intended to just implement features faster, but rather have outcomes that deliver what the customer and market is looking for.
Another challenge is leading a global agile team and with using effective communication tools for a virtualized work environment. To do this we make extensive use of online meetings, conference calls and mobile messaging platforms using our own cutting edge secure enterprise messaging platform called NetSfere.
3. Moving from traditional IT to a service offering model requires a major mindset shift in IT. How did you make that happen in software testing?
The move from traditional IT and on premise solutions to the public or private cloud has become a common feature for product offerings. To accomplish this shift, it requires the use of establishing virtual environments for testing and replicating the production environment. These are sandboxes for testing the product continuously as new software is developed, but prior to a full production deployment.
If hosting in a public cloud, you would try to use these virtualized environments before you put it into the public cloud. Public clouds usually charge you for your uses in that public cloud. Therefore, it’s even more important to be using virtualized environments to continuously put new software on there that’s developed to simulate the production environment. This can ensure that we’re testing it quickly and finding these bugs before putting it into the final environment.
4. What set of skills do you think is required for the technology leaders to be successful in the new approach to software testing?
Being open to change and have the ability to drive change in this dynamic environment is key to be a successful leader. Understanding the needs of the team to accomplish DevOps and Continuous Integration and Continuous Deployment is essential for a reader to recognize. Using the latest tools for test automationis one aspect critical to the success of this model.