What Is Agile?
Agile is when a small team of five to seven people works together on a ranked product backlog to deliver a finished, releasable product. A client has ideas about what he wants to produce, those ideas get funneled to a responsible person. That person might be the product owner. That person creates a ranked product backlog that the cross-functional team takes.The team, which has all the roles it requires, works off the backlog and creates features, producing shippable product on a regular basis.
Who’s On The Team?
The team must have some developers. It also has whomever else the team needs. It will be nice to have a team with at least one tester on it, but certainly there are teams with no testers. If the developers are willing to test for each other, then the team doesn’t need any testers. At the end of the day, the team should have only the roles it needs to produce a shippable product. If you’re new to agile, you might want a coach so you have help transitioning to a self-sufficient working agile team.
How Does The Team Gets Requirements ?
In agile, there is a different way to think about requirements, called a user story. You also need to create acceptance criteria for a story. Here’s one way to define a user story:
“As a <specific user/role> I want <some feature> so that <some value or benefit>.”
A story is enough information, so you have a conversation with a product owner.You want to be able to fit everything on a three-by-five-inch index card. If it doesn’t fit on a card that size, it’s an epic, and you want to break down the story until it does fit on a card that size. You don’t define the architecture of the code until you know enough about the features to define the architecture. The team only implements what is need for the stories in the backlog. If it’s not on the backlog, it will not get done.
How Does The Team Know It Is Done?
After the team has completed its work for the iteration, the team holds a demo. The best way to run a demo for the customer or product owner is to run the software. If that person defined the requirements, that person should run the software. This keeps that person engaged and returning to the demos each iteration. After the demo, the team conducts a retrospective, reflecting on how they worked since the last demo.
Do It Again!
This is the iterative part. Now, the team does it again and again until all the features delivered iteration by iteration form a complete product.
Which Agile Approach Do I Use?
Some examples of Agile development approaches are:
- Extreme Programming (XP)
A very good introduction in Agile!