Tuesday, October 2, 2012

My Notes about Agile and Testing


In 2001, Agile manifesto formally shifted software development to Agile process model, meanwhile it declared the death of Waterfall which wrongly assumes that a project can be spec'd ahead of development. What Agile changed in essence is that it introduced the concept of Continuous Delivery/Integration - multi-minor releases instead of one major release. Each of that small release is the product of a small cycle called Sprint. Sprints are important and as such there are very useful disciplines to identify them and define them;  there are measures to ensure the execution of a Sprint. Firstly, a Sprint has a goal that brings value to the business; Secondly, it has a clear done by putting in a set of testable features. These features are so interrelated that any portion remains undone then the Sprint is undone. Even though we focus on Sprints, we also always keep the big picture - the final product in mind. This is the core spirit of "Continuous Integration/ Improvement".

Now, how to ensure fluid execution of each sprint? The daily scrum, a tool to achieve what Agile manifesto has said. Proper daily scrums can keep the team focused, energized, and coordinated. It helps achieving transparency and connectivity in the team and enforcing responsibility for each other.

Worthwhile to mention, the role of testing in Agile is no less important. Let's use the term QA instead of testing, because QA doesn’t equal to testing, neither equals to Validation, neither equals to finding bugs - BTW, it is impossible to find all bugs, QA is to improve the software through continuously finding information/value that pushes the software closer to the expected product. In this sense, QA is more like a product delivery specialist. After all, QA is the central pillar and should be involved from the very beginning of the development process.

Finally, let’s recite the Agile manifesto:

- Individual & interactions over process & tools
- Working software over comprehensive documentation
- Customer collaboration over contract negotiation
- Responding to change over following plan

No comments: