Throughout my career, I have been into agile and observed it first-hand. After being on this journey for almost a decade now, I have figured out over the years that being agile is about embracing an attitude more than any process or tools. Here are a few of my key learnings from 2017, I hope they help you in the New Year!
Get TestRail FREE for 30 days!
Users are and Always will be King
The entire premise of agile is based on inclusion of the customer more closely into our software development. Transitioning away from the traditional ways of negotiating contracts and then forgetting about the user’s actual needs or having any flexibility, agile taught us to move towards more customer collaboration. Though we might have become more communicative and collaborative within our teams, there still is scope for improvement in listening to the user’s responses, feedbacks and the real business needs. Trends like Behavior Driven Development (BDD) have tried to bridge these gaps by bringing the business and technology aspects closer together. You don’t have to use BDD, but closer collaboration with your customer will probably result in better software!
DevOps is our Friend
There is an open debate about whether or not DevOps will eventually replace agile. We have realised and seen in practice that DevOps is not really a replacement but an extension of agile. DevOps is basically helping agile teams bring the ‘operations’ within the development process, and helping create a continuous delivery pipeline. There are many agile teams that are working well within their development life cycle and sprint deliveries, but still struggling towards final production deliveries. DevOps helps such teams by complementing the same agile principles and including the infrastructure, operations, monitoring and support practices within the development practices, by including configuration management, build process, testing and deployments.
DevOps can help start-ups by putting in basic processes at an initial stage which shall help them forever in their deliveries. DevOps can also help larger companies, by providing a suitable pipeline ensuring uniformity in processes and quality in their output. I feel that every agile team can benefit from setting up their own DevOps pipeline, even a basic one, using a variety of tools available in the market, which also leads us to our next point.
Skills are More Important than Tools
I have noticed an influx of tools in the market supporting all aspects of software be it BDD tools, DevOps supporting tools, performance evaluation or monitoring tools. This can be overwhelming for a beginner to grasp. But you can breathe a sigh of relief, skills will beat tools each and every time. Starting with any tool for the task at hand, if you learn the fundamentals of what it does and why, you can adopt and learn others easily when needed.
Instead of getting overwhelmed with numerous tools, fancy names and technologies, teams need to focus on their real needs and practical issues. No tool fits all, and no tool is really useful without skill. So, people need to focus on skills like problem solving, analytical mindset, getting to the root of their issues and selecting a tool based on these issues.
DevOps is a huge implementation for most teams. But in reality any single tool or set of tools cannot constitute a perfect pipeline for all teams. So understanding the basics of what constitutes a basic DevOps pipeline and how it works is more important than a specific set of tools. These skills can help you transition to any combination of build/deploy pipeline, or to add more simple tools into the mix. Focus on skills, and the tools will follow.
‘Contributor’ vs ‘Tester’
The software industry seems to be moving towards full stack engineers and away from skill-specific roles such as developer, tester, and DBA. Testers focussing solely on ‘black’ box functional tests will probably benefit from studying the ‘white box’ side, and learn what is happening behind the scenes to make testing without a User Interface possible. To aid shift-left testing, testers need to think from the business, the users and the designers perspectives. They should become the developers buddy by helping them to design unit and integration tests, prepare and run functional tests, as well as preparing automation suites for them, and integrating it all into the DevOps pipeline for continuous testing and monitoring.
Testers should move towards a more holistic role as a technical contributor in agile teams. As I like to say, testers are the ‘soul’ of an agile team and have a crucial part to play in the success of the project as well the teams agile journey, which can be made possible by taking on new approaches.
Every year brings with it new beginnings and I see the coming year bringing with it opportunities for change and embracing the new. We should all look for avenues to try out new things, get out of our comfort zones, and move ahead one step at a time. More often than not, we would be surprised by how much can be achieved by making these small changes – in our teams, our skills and our mind set.
I hope these insights help us all move towards the coming year with a new approach and zeal!
Nishi is a consulting Testing and Agile trainer with hands-on experience in all stages of software testing life cycle since 2008. She works with Agile Testing Alliance(ATA) to conduct various courses, trainings and organising testing community events and meetups, and also has been a speaker at numerous testing events and conferences. Check out her blog where she writes about the latest topics in Agile and Testing domains.