January 30, 2015

Agile Software Development

I've been working with Agile since 2005, and I must say that I find it to be the most fun! If you love working with people as a team, really prize collaboration, and "having good team gel" is a requirement for you at any job, the Agile Software Development methodology is for you.

How Agile Started

How we create software has changed a lot in the past decade, and it started with a manifesto written back in February 2001.

The Agile Manifesto:

  • "Individuals and interactions over processes and tools
  • "Working software over comprehensive documentation
  • "Customer collaboration over contract negotiation
  • "Responding to change over following a plan

"That is, while there is value in the items on the right, we value the items on the left more".

Written back in February 2001, a group of seventeen software developers outlined Twelve Principles of Agile Software. One of the developers, Kent Beck, had written a book two years before called "Extreme Programming Explained" detailing his work leading the Chrysler Comprehensive Compensation System (C3) payroll project. Methods from that such as Release planning, developers writing unit tests, and daily standup meetings would get pulled into the Agile method.

Waterfall Woes and Agile Solutions: 

With the Waterfall software development method that we examined before, there were a few drawbacks Software Quality Assurance would fine:

  • With DEV and QA operating in their own segment, an an "Us vs Them" mentality could happen. 
  • With the QA phase being the last part of the software development process, there was always a risk that the planning and development time could eat into the time allocated set aside for testing. 
  • What if the specs for the functionality to be added to the product were found by the QA Engineer to be in error? 

With Agile, many of these problems a QA Engineer would have encountered would be alleviated. New processes were put in place such as:

Sprint Planning Meetings: Business Analysts, Software Developers, Designers, and Quality Assurance Engineers all could analyze the requirements for each new piece of functionality being built, and estimated as a team how much work they could take on in the next two weeks. QA was no longer trapped in the last phase of software development.

Daily Scrum Meetings: With a fifteen minute meeting starting the workday, the entire team could state simply: what they worked on yesterday, what they were going to working on today, and what roadblocks they were having. This helps QA get a better understanding of who was working on what, and helps build better working relationships between developers and designers.

Sprint Review Meetings:  What worked? What didn't? What astounded you in the last two week sprint? Instead of doing a post-mortem at the end of an eight month Waterfall type project, you get to do mini course corrections.

I love Agile! You get a lot of team collaboration across all the different disciplines. A better quality team equals a better quality product.

Related Links:

-T.J. Maher
 Sr. QA Engineer
 Quincy, MA

No comments: