#1 Agile In a Nutshell

One team

Also, Agile is really big on this concept of one team. There is no analysis, developer, or QA team. There’s one team. Committed to working together for the duration of the project, doing whatever it takes to make the project a success. Kind of like a mini-startup.

Roles blur

Quality is a team responsibility. Developers test. Testers can do analysis, and UX designers can track and set expectations. People still have core skills (like programming or testing), but they are empowered and given the freedom to use their own innate talents and help out however best they can and are no longer limited by a single title or role.

Adaptive planning

Another big difference is Adaptive Planning. We’d all like our project plans to look like this. But we are all know they often look a lot more like this.

When reality changes, Agile changes the plan. And the preferred way is to flex on scope.

And the preferred way to update our plans is to flex on scope

Agile’s not big on pushing out deadlines, asking for more money, or dropping quality. We ship the best product we can with the time and money we’ve got and we do it by being flexible on scope.

Working software is the primary measure of success

Finally, while documents and plans are sometimes a necessary form or waste, we never lose sight the one thing of value we produce when on a software project - the software.

Working software is the primary measure of sucess.

It’s what we ride into battle with. It’s what we deploy into production. It’s what our customers pay us for, and it’s the most reliable way to measure progress.

Deliver something of value every week

What would give you greater confidence that your team is deliverying, working software? Or documentation and plans.

When you ask yourself how can I deliver something of value every week you be forced to do certain things:

You will have to prioritize.
You will have to break things down.
You will have to test.
You will have to get feedback.
You will have to adapt the plan as you go.

All good things for your project.

And don’t get stressed out about it being one week. Take two or three. Just timebox your deliver cycles, break things down, and start delivering.

Starting doing these 4 software engineering practices today

  • Unit testing
  • Refactoring
  • Continuous Integration
  • Test Driven Development

Accept these three simple truths.

  1. It’s impossible to gather all the requirements at the start of a project.
  2. The ones we do gather are guaranteed to change.
  3. And that there will always be more to do than time and money will allow.