Agile Process Implementation

Home  >>  Analysis  >>  Agile Process Implementation

agile

Recently I was asked by a company to come in and give a presentation about adopting Agile processes for their software development. After attending Agile training and then also working in an Agile environment for several years, I think I am qualified to help organisations understand Agile and the benefits it can bring

If you are interested in consultancy about Agile, please have a look at the consultancy section to find out more about me and my relevant skills www.samsara.co.uk/consultancy/

What follows are some points to help you understand Agile development. The full presentation is available to download here

 

So what is Agile?

Here are some of the basics of what Agile consists of and also some of the main points of the Agile manifesto

  • Iterative and incremental
  • Fixed, time-boxing, but then changing, prioritised requirements
  • Customer focused
  • 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

 

What does Agile replace?

Agile often replaces what is called the Waterfall or V model development process. This has the following characteristics and also some downsides

  • Try and decide requirements at the beginning
  • Budget and time also fixed
  • Lots of detailed, up-front specification and modelling (UML for example)
  • What usually happens is requirements change somewhat and then time and budgets slip as well
  • Disconnect between business and development
  • Testing and quality often an afterthought

 

What does Agile look like?

Please see the picture above that shows what one type of Agile called Scrum look like.

The scrum “lifestyle” consists of the following =

  • Creation of user stories – i.e. units that are to be developed that are then put into the backlog
  • Daily stand-up / scrum – “what have I done, what am I doing next, are there obstructions”
  • Backlog refinement (called grooming) with Product Owner
  • Development of comprehensive tests for each story
  • Sprint planning and “planning poker” mainly with Development team
  • Development and testing
  • No new stories in the sprint
  • “Done, done” means development complete and passes all tests
  • Product release – working software and communication with stakeholders
  • Sprint retrospective

 

Roles in a Scrum team

Product Owner

  • Responsible for Product Backlog and user stories
  • Interface with business, stakeholders and customers
  • Removes product obstructions

Scrum Master

  • Facilitator for the scrum team
  • Enforces rules
  • Removes team obstructions

Development team

  • Programmers
  • Testers

 

User stories in scrum and their use

Basically a user story is a specification for a small piece of development. The goal of each iteration is to deliver several user stories

  • “As a <user type> I want to <do some action> so that <desired result>“
  • Small piece of functionality needed by a user
  • Stack rank – i.e. priority
  • Story points – measure of complexity
  • Associated tasks – with time estimates
  • Includes detailed “acceptance criteria”
  • Should be at least one test for each acceptance criteria item
  • “Done, done” means a story has been closed – i.e. all tests passed successfully

 

Successful Agile

Here are some characteristics of an Agile process that is running well

  • Constant improvement of process
  • Deliver around the same amount of story points each iteration
  • Even “burn-down” rate – i.e. rate at which stories are delivered
  • Contents of iteration planning match what is released at the end of each iteration
  • Confident stakeholders – “if we don’t get it this iteration, we’ll get it in two weeks”
  • Constant “refactoring” – developer term which basically means improvement of code
  • No or very few open bugs
  • Regular “cool-down” and “refactoring” iterations

 

Implementing Agile for a company

Here are some of the things you will need to start get Agile working

  • Asses suitability of Agile and appropriate parts
  • Form team and define roles
  • Good to have experienced Scrum Master
  • Need dedicated tester(s)
  • Need Product Owner
  • Decide on tool(s)
  • Product Road map
  • Define and start to prioritise and groom user stories
  • Start scrum cycles
  • Move towards continuous integration and automated testing