What changes are needed to ensure non-functional testing such as performance and cross-platform testing are done in enterprise Agile?
In Agile enterprises, the whole business works together at a sustainable pace to adapt to changing business needs and frequently deliver software products that meet those needs. Agile values and principles are integrated into the whole organization, including product management, marketing, sales, customer relations, operations and the rest. Many people in the company need to learn new skills so they can contribute value.
These days, software products often have to support several platforms, operating systems and devices. This is particularly challenging from a testing perspective. For example, performance testing on any platform requires a big investment in learning, software and hardware. Now multiply that by several devices interacting, and testing complexity increases exponentially.
When a product must perform well on a variety of platforms, teams responsible for each platform ensure that adequate performance testing is done. They might need help from specialists, and your company might not have enough of these. Experiment with creative approaches, such as having experts in a particular type of testing rotate through each software team to help them learn the specialized skills.
Interaction of applications, APIs and clients among different platforms presents additional testing challenges. Embedding operations staff in development teams will help them create and maintain necessary test environments. Consider adding people in new roles to coordinating efforts among teams. Practice leaders for different specialties can make sure practitioners across multiple teams are sharing ideas and not reinventing the wheel.
Companies delivering apps for multiple platforms must change their culture to one where teams and team members are allowed to fail. They must budget adequate time to learn and experiment. Many companies now require employees to spend 20% of their time on projects outside of their regular ones, trying innovative ideas. This approach lets software practitioners master new operating systems and technologies.
Today's customers demand a superior user experience in all aspects of product quality, especially usability, security, performance, stability and reliability. Ensuring these qualities requires a huge investment of time and money, additional people in new roles and a long-term view. A strong focus on quality now will lead to competitive speed and agility later.
This was first published in September 2012