Quardev Monthly, February 2010

In this issue:

Welcome to the February edition of the Quardev Monthly. We look forward to sharing insights and helpful information in the areas where we know a thing or two - testing, quality assurance, technical writing and documentation, project management, and consulting.

In this month's article Jon Bach explores the Agile movement and gets some input from colleagues on what Agile means to them and how they use it in their business environments.

Enjoy the newsletter with our compliments and please contact us with questions, comments, or article ideas.

-The Quardev Crew!

Notions of Agile

By Jon Bach, Manager for Corporate Intellect, Quardev, Inc.

Ten years ago, a small group of software developers got together in Utah and decided to talk about principles common to their work. Their focus was on the need for "an alternative to documentation-driven, heavyweight software development processes." They wound up agreeing that the word "agile" made the most sense to describe the content of their discussions.

They called themselves the "Agile Alliance": http://agilemanifesto.org/history.html.

Their discussions also produced the Agile Manifesto - a set of values and principles that framed their ideas on how to do things differently: http://agilemanifesto.org/, which features these principles: http://agilemanifesto.org/principles.html.

Since then, the set of principles known as XP and Agile have been a software development phenomenon. It's more than just a buzzword, it's a way of life for those known as "Agilists."

We decided to talk about these principles with Scott Duncan, an Agile coach and trainer who has almost 40 years of experience in software development. We asked him how he got his start with Agile:

"I encountered Agile ideas through Kent Beck's first book "Extreme Programming," then read more and started to try to apply its values and principles from that point on. Got some traction with the ideas, but did not get directly involved with other folks in the Agile community until the Agile Development Conference in 2004 in Salt Lake City. Since then, I have been trying to promote/use the values and principles."

Scott has been doing Agile coaching/training exclusively for about 3 years, but was doing it partially for 2 years before that. He relates Agile ideas to the work he was involved with back in the mid-80s. He said they were not using the technical practices common to Agile methods today, but they followed values that are now known to be most commonly associated with it. For example, he had daily contact with marketing (i.e. "customers") using evolving user documentation as the "spec" through those discussions.

Elisabeth Hendrickson (principal for Quality Tree Software and creator of the new Agilistry learning space in Pleasanton, CA) is a software development consultant who defines Agile this way: "a series of software development processes meant to provide a continuous stream of business value; at a sustainable pace; while adapting to change."

In 2005, Google hosted her at one of their Tech Talks, where she explained her start and the principles she began using (http://www.youtube.com/watch?v=bqrOnIECCSg).

She tackles the "defining Agile" topic in the following blog entry: http://testobsessed.com/ 2009/05/26/defining-agile-results-characteristics-practices/

Laurent Bossavit is one of the first few signers of the Manifesto, which now has thousands of signatures (and counting). Though he was not at the first 2001 "Agile Alliance" gathering in Utah, he is a long-time advocate for Agile principles.

"The main way I know what Agile means is by looking at what people in the Agile community generally agree it means, for instance by cracking open the most recent Proceedings from the yearly Agile conferences. Another way would be to see what you need to teach someone completely new, before they're able to move confidently within that community."

For example, we found this list of 54 Agile "attributes" culled from an interactive session at the Agile 2008 Conference in Toronto during a track titled "A Model For Questioning Agile" by Scott Barber. Attendees in the room got into groups and brainstormed what they did, heard, or saw during software projects that was most likely to be labeled "Agile."

  • Daily standups
  • Having a Product Owner
  • A Product Backlog to work from
  • Work done in short cycles called "sprints"
  • Sprint reviews
  • Sprint planning sessions
  • Retrospectives
  • Unit testing
  • Story cards
  • YAGNI (You Ain't Gonna Need It)
  • No Big Design Up Front (BDUF)
  • Continuous integration
  • Rapid delivery
  • No specialists
  • Automated Acceptance Testing using tools like JUnit, Selenium, and Fitnesse
  • Refactoring
  • Done and "Done Done"
  • Function or story points estimation
  • Playing Planning Poker
  • Small teams
  • Paired Programming
  • Code reviews
  • Paired testing
  • Session-Based Test Management to manage exploratory testing
  • Story template
  • Big Visible Charts
  • Just-in-Time testing
  • Task Burndown
  • Dedicated ScrumMaster
  • Demo after each sprint
  • Onsite customer
  • Acceptance testing before each demo
  • Making requirements into stories
  • Ubiquitous language
  • The 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
  • Self-organizing teams
  • Using wikis for project status
  • Post-it note dashboard/kanban
  • Test-Driven development
  • Status: What I did today, What I will do tomorrow, Blocking Issues
  • Uses Extreme Programming techniques
  • Incorporates aspects of Lean Manufacturing
  • The notion of the Green Bar for story progress
  • Adaptive rather than predictive
  • Story boards
  • Method for managing "technical debt"
  • Making your own test or dev tools on the fly, as needed
  • Given/When/Then story template
  • As a ___ user, I want to ___, because ___
  • Ready, Fire, Aim

In writing this article introducing Agile, we did not want to impart one doctrine of how to get started because there is so much context to consider, but we did want to raise enough awareness about the notions and principles of Agile development so you could consider if and where to start with it in your organization.

Quardev is looking for Great People

We are always looking for great people to join our team.

At Quardev you will work hard, you will enjoy a great working environment and benefits, and you will be building a solid, interesting, and flexible career where you can learn and grow.

If a career with Quardev sounds interesting, or sounds like it may be a fit for someone you know, check out our Careers page or contact us today via Quardev contact page.

We'd love to meet you!