Agile development

22
Agile development By Sam Chamberlain

description

Agile development. By Sam Chamberlain . First a bit of history. Waterfall development and the V model. Waterfall the V model. In the beginning there was no process Then waterfall is / was a very heavily used software development lifecycle (SDLC) - PowerPoint PPT Presentation

Transcript of Agile development

Page 1: Agile development

Agile development

By Sam Chamberlain

Page 2: Agile development

First a bit of history..

Page 3: Agile development

Waterfall development and the V model

Page 4: Agile development

Waterfall the V model

• In the beginning there was no process• Then waterfall is / was a very heavily used

software development lifecycle (SDLC)• V model is an enhancement on the waterfall

method with corresponding testing materials being prepared at each stage

• Traditional project management is similar. For example PRINCE 2, MS Project, Gant charts etc.

Page 5: Agile development

V model characteristics

• 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

Page 6: Agile development

Introducing Agile

• Iterative and incremental • Fixed, time-boxing but then changing, prioritised

requirements• Customer focussed • 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

Page 7: Agile development

More from the Agile Manifesto• Customer satisfaction by rapid delivery of useful software• Welcome changing requirements, even late in development• Working software is delivered frequently (weeks rather than months)• Working software is the principal measure of progress• Sustainable development, able to maintain a constant pace• Close, daily co-operation between business people and developers• Face-to-face conversation is the best form of communication (co-

location)• Projects are built around motivated individuals, who should be trusted• Continuous attention to technical excellence and good design• Simplicity- The art of maximizing the amount of work not done - is

essential• Self-organizing teams• Regular adaptation to changing circumstances

Page 8: Agile development

Agile and Agile Scrum

• Scrum is a popular Agile methodology• Different to XP - eXtreme Programming or Unified

Process, Lean etc.• But methodologies can be mixed• Characteristics of scrum– Sprints– Product and sprint backlog– Stand-up – User stories

Page 9: Agile development

Agile scrum - lifecycle

Page 10: Agile development

Scrum roles

• Product owner– Responsible for Product Backlog– 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

Page 11: Agile development

Scrum lifecycle• Daily stand-up / scrum – “what have I done, what am I

doing next, are there obstructions”• Backlog grooming with Product Owner• Sprint planning and “planning poker ”mainly with

Development team• Development and testing• No new stories in the sprint• “Done, done”• Product release – working software and communication

with stakeholders• Sprint retrospective

Page 12: Agile development

Agile – board

Page 13: Agile development

Sample – burn-down chart

Page 14: Agile development

User stories and their use• "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 – important: measure of complexity only – 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

Page 15: Agile development

Agile bugs• Bugs found in the iteration should be fixed in the

iteration, otherwise the relevant story should be removed from the iteration. Planning needs to make time for this

• Other bugs or customer bugs are placed in the backlog and put into iterations during planning

• Bugs need to be reproducible and fully analysed before they are added to the backlog

• Continuous integration and automated testing as well as experienced scrum will mean less bugs. A well working scrum often has no open bugs

Page 16: Agile development

Successful Agile• Constant improvement of process • Deliver around the same amount of story points each iteration• Even burn-down rate• 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• No or very few open bugs• Regular “cool-down” and refactoring iterations

Page 17: Agile development

Other aspects of Agile

• Product roadmap and vision• Release notes and other documentation • Self organising teams• No managers, aside from line-managers – Scrum Master tries to enforce rules, remove impediments– Product Owner manages the product backlog and priorities,

but has no control over what the scrum actually does • Pair programming – used allot in XP• Scrum / Agile works very well with SAAS

Page 18: Agile development

Continuous integration

• Technical: Scrum / developer responsibility • Code repository and daily builds• Constant check-ins• Tests run frequently• Automated testing – build up a regression test suit

(code) that can be run any time, quickly• Separate Dev, testing, staging and live systems• Can help to have a tool to manage everything from the

scrum, to the code and check-ins, to the test suit, to reporting – for example MS TFS

Page 19: Agile development

Implementing Agile for a Company• 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

Page 20: Agile development

Sam Chamberlain – relevant skills

• Plan and implement high level Agile processes• Guidance on Agile and Agile principles• Product ownership• Product road map and product release• Business and systems analysis• Extensive technical knowledge • Testing and training• Supplier shortlisting, selection and management • Recruitment

Page 21: Agile development

Questions?

Page 22: Agile development

Thank you