To quote Top Gun: “I feel the need … the need for speed!” This is what every business and IT leader should be thinking about when it comes to ensuring their software delivers quickly and accurately with flying colours. But to keep one step ahead of the competition, it is important to be agile.
According to the Annual State of Agile Report (8th May 2020), 97% of respondents report that their organisation practices agile development methods. At their core, agile methodologies require cross-functional teams (made up of developers, analysts, and QA’s) to embrace adaptive planning, early delivery and continuous improvement in an effort to release new features within each sprint.
This is where testing becomes a critical component in the development cycle to not only save time, but most of all uncover any potential errors early and often so that each release works the way it should.
But getting it to run smoothly can be a challenge at times for teams.
Quality is key in order to have a successful output, but responding to an increase in velocity, or doing requirement changes quickly in a limited scope of time can introduce further complications.
We’ve picked out 5 of the most critical challenges Spike95 have seen in agile and our suggestions for how to solve them in order to make your delivery efficient and productive.
Our top 5 critical agile challenges and how to overcome them
- How to make sure teams take decisions based on accurate information
No process will work without a high level of communication between individuals, especially if teams are distributed across multiple locations. Incomplete outputs and misinformation on updates between developers and QA can allow bugs to creep in. Collaboration starts before development and making this work effectively can be one of the most difficult challenges out there in agile. To ensure that a feature works according to its user story acceptance criteria, teams need to fully understand the business need as much as prove the quality of their developed code.
Our recommendation: Spike95 strongly advocate the use of BDD to ensure the team understands the context of a user story in the backlog before development, to drive accuracy in testing and to keep everyone on the same page. As stories are developed and tests are executed, ensuring your automated tools feed information into shared dashboards provides immediate visibility of results which drives discussion and well-informed decision making.
- How to get faster feedback on the impact of each change
“The early bird catches the worm” when detecting defects at the beginning. Fixing issues later on is costly and time consuming to be resolved at the end of a project. With code changing on a daily basis, the chances of it breaking increase and this can cause a ripple effect on your overall test coverage, leading to defects being overlooked or missed.
Our recommendation: Adopting CI/ CD practices can help teams to adapt their software on-demand to meet user feedback, to react quickly to market shifts, as well as prove and build code regularly for consistent, fast results. As your team’s experience matures, the cadence of change can be accelerated by further enhancing your approach. Spike95 can help you navigate the minefield of latest techniques and principles.
- How to make the process slicker through better environments and data
Many organisations struggle with multiple teams or users contending for access to the same test environment, constraining both progress and accuracy of test results. Further, maintaining large scale physical environments is both costly and inefficient when the code base needs to change quickly. Data provides a further headache both in terms of generating the right volume to test all conditions and to comply with the constraints of privacy and data protection.
Our recommendation: The ability to spin up and spin down consistent test environments and data sets allows the team to quickly prove changes against the right infrastructure and dispose of once completed. Costs can be reduced through the provision of just in time and right-sized environments. Modern cloud infrastructure provides all of the tools and infrastructure for your team to solve the problem but needs careful planning and design as well as management to balance capability versus cost.
- Whether or not to embed performance tests in sprint
Testing helps agile teams to develop higher quality software and validate functionality in the same sprint, while reducing development costs. However, performance issues are complicated by not always being easy to correct with simple code changes. They often involve reforming the architecture, making changes to the footprint or demands for specific technologies. In particular, late discovery of performance issues embedded within the code may not be possible to solve without major re-architecting or rewrite which is expensive and dramatically impacts delivery deadlines. Further, many teams incorrectly presume they can only do meaningful performance testing at the end of their agile iterations.
Our recommendation: Frequent component-level performance tests during development will enable teams to spot errors or bugs before production, verify software functionality and baking in good performance early and build scalability into platforms/applications. These targeted performance tests can then be built into full end to end or large-scale performance tests executed prior to release and for whole enterprise performance confidence.
- How to be pragmatic not dogmatic
We regularly see teams thinking that they are failing because they have put agile principles in place but feel like they are not making progress in improving their cadence and quality. This can severely dent confidence both for the teams and for their stakeholders. Further, it is becoming more common for testers who work in an agile environment to be technically savvy and for the whole team not to be falling short when it comes to utilising testing tools like Selenium or JMeter.
Our recommendation: Having the experience and confidence to know how to tailor agile working is essential. Good principles are there to guide not constrain, at times it can be right to break away in order to make progress. Bringing in dedicated testers with specialised knowledge and experience in areas such as performance, automation and orchestration can provide the boost you need to ensure your team is performing at its best. A fresh perspective from a 3rd party often highlights something not considered internally.
Agile is an excellent way to deliver software faster and bring satisfaction to your customers. However, this depends on the quality of your software and can only be accomplished if testing teams understand and address the unique challenges they are faced with. In many cases, you may discover you can revise your current models, including the migration to cloud-based platforms and automated systems. It is evident that the right workforce plays an important role to ensure that your team has the necessary skills to do the job well.
Spike95’s technical expertise and capacity to unblock problems, accelerate delivery and improve performance is how we keep the wheels of agile turning and maximise the benefits of your business’s software. Drop us your details below and we’ll take you through how you can apply the recommendations above.