A good friend of mine once said to me, “Before meeting you, I always thought Agile just meant not doing documentation”. This made me think that the word “agile” gets said a lot, but what does it actually mean?
There are many different definitions, and different ways of working. So, I can only really say what it means to me.
I started out working on a QA team, writing automated tests from a regression test backlog made up by a manual tester on my team. This was fine and worked nicely until the test suite broke, and then the fun began. The developer would blame me for writing “crap tests”, I would blame the developer for changing something and not telling anyone, and the manual tester would blame us both! I HATED this, every day there was an argument with somebody over something very small. But nobody wanted to take ownership of the problem, for fear of the managers “giving out”.
Eventually I got sent on a Scrum training course with a few other devs and testers. I loved it! I saw the opportunity to remove the stupid daily fights. It made me realise the big take away was communicating and removing the handovers. The handovers were causing the fights. The developer would write some code, forget about it, and throw it to a manual tester who would then write a few test cases and throw it to me to automate. Usually, by the time I had been given the automation task, the code was live anyway. So, who suffered from this? Well other than me, the customers were getting untested, and often buggy, software. But that’s OK, because we had an iron-clad paper trail to pin the blame on somebody else.
The test team used to sit in a different room to the dev team, after the training we tried a team where the tester sat with the developers. Immediately there was a noticeable difference! Instead of a daily fight, there were questions from both sides. There was no longer a “throw the code over the wall” mentality. I got to write tests as the developers were writing the code, and was also able to see the software locally. This meant that my tests were more robust, because if any changes were made then I was told right away and didn’t find out through a broken build in the morning. All that changed was sitting us together and giving us the space for a chat, instead of a fight two or three days after the code went live.
Since then, I have moved on to work in more Lean teams and have seen Scrum evolve into Kanban. This came about from teams wanting to improve the way they work and remove waste. None of this would have been possible if we stayed in our silos and did not communicate.
So what does Agile mean to me? In the wise words of Pink Floyd, “All we need to do is make sure we keep talking”. Let me know what Agile means to you.