Banking…Manufacturing…Retail…Name an industry and you can be sure they are looking towards technology to improve their internal efficiencies and customer service. In an age of impatient customers and rapidly changing technologies, organizations must strive to innovate faster and respond better to changing business demands. The obvious outcome is anear-universal adoption of methodologies like Agile and DevOps. Of course, DevOps can also propagate your errors to a thousand servers at once so with faster product development, better testing becomes ever more important.
Clearly, software development and testing has changed fundamentally – but have your dev and test teams kept pace? Are old-school developers now redundant? Is hiring a new breed of software developer and tester the only way forward? These are important questions – here are some answers.
Before we begin, let’s agree that it doesn’t make sense to jettison a skilled workforce just because you are adopting a new development methodology. Instead, software development organizations must look at ways to retain this workforce and upskill them to continue contributing.
What has changed, really?
Here’s a look at some fundamental changes that agile and DevOps have brought to the development
- The Waterfall development method has given way to Agile and DevOps – which have made development more iterative and have replaced long development cycles by shorter sprints
- Testing has become continuous and integrated into the development process
- DevOps has helped align software development with business demands
- DevOps has integrated the different stakeholders of the development process – the developers, testers, and operations teams, and helped them function as a singular unit
- Accelerated speed of development has put a greater emphasis on the speed of testing, leading to a greater demand for automation
- Testing has become more business-specific, which coupled with today’s hybrid development environment demands greater domain specialization
- Increase in deployment frequency has also put more pressure on testing teams to increase test coverage, test more, and test comprehensively in the shortest time with minimum effort
- There is a greater focus on testing maturity as it is directly related to Agile and DevOps infrastructure maturity
What skills are critical for your development team in 2018?
In the face of these changes, do you find yourself wondering how your legacy development and testing teams can stay relevant? What are the key skills you should be looking for in your DevOps engineers and testers to ensure relevance and productivity?
- Language proficiency – There’s no point in trying to speak French when you know you are in Beijing! Proficiency in a new programing language that helps create robust scripts becomes an essential ingredient for success.
- They need to identify the frameworks, languages, and tools that they need to build a better software product or solution.
- CIMI – Developers with basic shell scripting experience can learn about management interfaces to Infrastructure as a Service offering. This becomes especially important since most DevOps systems run in the Cloud.
- Empathy – Developers must be capable of putting themselves in the customer’s and the audience’s shoes, understand the twists and turns of product demands to enable faster componentization and drive faster and smaller releases.
- Adaptability – As product development progresses to develop a robust and future-ready product that is capable of evolution, developers must become more open to changes.
- Collaboration – Agile and DevOps demands collaboration. Developers need to break away from the comfort of silos that they were previously used to – they may even have to test!
- Automation – Embrace automation to increase efficiencies and incorporate faster feedback and changes
How would you stand up to the testing challenge?
Testing teams too have witnessed an avalanche of change with the advent of Agile and DevOps. Testing is no longer an afterthought but is central to the development process. Unless you plan to keep calling your bugs “undocumented features”, here’s a look at some skills testers, especially manual testers must have to contribute in this new age.
- Test Automation – Increased speed of development demands increased speed of testing. This cannot be achieved without incorporating automation in the testing process. Manual testers may have to learn test automation to quantifiably contribute to the development process
- Domain Expertise – Domain expertise and product knowledge can go a long way towards developing more robust tests and increase test coverage. Skilled testers will need to start building themselves in this direction
- Product Development Skills – Testers have to focus beyond testing and become subject matter experts so that they can employ a proactive testing strategy instead of a reactive one. To discover new ways to break down a product in development and test for defects testers have to become more familiar with product development
- Agility – Testing teams have to gear up to test more and test often. Testers may have to become more technical to understand risks faster. At the same time, testers have to become proactive on continuous monitoring and reporting deviations so that the feedback loop can be shortened.
- Familiarize themselves and become proficient with new test automation tools and frameworks so that they can facilitate development.
- Objective analysis – Testers need to become more aggressive in using performance data to get emotionless insights, to identify processes that are working efficiently and those that aren’t
- API and XML proficiency – Testers need to work beneath the GUI. With the growth of microservices, traditional UI alone is not reliable to validate test cases. Hence knowing how to work with API’s and XML is gradually becoming essential
- Testers must steer the quality of the product. They must look to solve the root cause of the problem instead of just remaining passive informers of issues.
DevOps and Agile have thrown software development into a state of flux. What this rapidly changing environment demands are greater collaboration and knowledge of new tools and technologies. As the walls dividing business, development, and testing teams fall, developers and testers must develop a strong partnership to survive this Agile and DevOps world. After all, “it is not the strongest or the most intelligent who survive – it is one who is most adaptable to change.”
Where do you think your developers and testers feature on this road to change? Write in and share your thoughts with us.