Foundations of Agile Software Development


2-day workshop (PDF summary)

This course provides a practical introduction to Agile development techniques for software development teams. The course emphasises the need for development teams to select their own practices and design processes applicable to their specific environment rather than using an generic off-the-self processes.

Attendees learn how to work in deliver software in time-boxed iterations, manage work backlogs and prioritize work to satisfy business need. Daily stand-up, planning and review and retrospective meetings are all discussed and practiced during the course. Teams learn how, in a changing environment, to schedule work, maintain high quality code, design software and discover requirements.

The XP/Scrum development process is discussed and simulated, engineering practices (Test Driven Development, Continuous Integration, Refactoring, Emergent Design, etc.) are introduced and highlighted. Other Agile and related methods are introduced and discussed where appropriate, in particular Lean, Kanban and Evo receive attention.

Attention is also given to the requirements process in the organization content and the balance between doing-things-right and doing-the-right thing. In particular the Product Owner role as filled by Business Analysts, Product Managers and Subject Matter Experts is covered.

Who should attend?

This course is designed for complete teams wishing to adopt an Agile approach or refine an existing set of practices. It is suitable for all team members, for example:
• Software Developers and Engineers - including Architects and Designers
• Software Testers and QA
• Project, Product, Line and Functional Managers
• Business Analysts and User Experience Designers
• Future Scrum Masters and Product Owners

Content synopsis

The workshop content is flexible and will follow the needs and objectives identified by the participants and the day.

Defining Agile
• Agile in context: how Agile relates to Scrum, XP, Lean, Kanban
• The state of Agility, Agile methods and Agile toolkit
• Advantages of Agile approaches
• Empirical and defined processes
• Origins of Agile and Agile Manifesto
• Agile contrasted with Waterfall
• Lean principles underlying Agile: quality, levelling, waste reduction, flow and pull v. push.

Agile routines
• Management by routine
• Iterations and Sprints time boxes
• Daily Stand-up meetings
• Planning, review and retrospective meetings

Roles
• Scrum Master and Agile Coach
• Strategic and Tactical Product Owner
• Business Analyst and Product Manager
• Software Developer/Engineer
• Software Tester/QA

Requirements management
• Requirements role: Product Owner, Business Analyst, Product Manager
• User Stories, Epics and Tasks
• Prioritization
• Product and Sprint backlogs
• 10-Step requirements model
• Stakeholders, roles and personas
• Acceptance tests
• INVEST criteria
• Value management
• Measuring velocity and filling an iteration
• Allowing headroom/development tax

Technical practices
• Definition of done
• Test Driven Development (TDD) and Acceptance Test Driven Development (ATDD)
• Continuous integration
• Refactoring
• Emergent design and Simple design
• Code reviews, pair programming and static analysis tools
• Test Automation
• 3 levels of testing and exploratory testing
Note: Time does not permit all technical practices to be discussed and practiced in depth; several of these practices require complete courses of their own.

Managing Agile teams and projects
• Project constraints of Time, Resources and Features
• Tracking work with burn-down/burn-up and cumulative flow charts
• Self-organizing teams
• Impediment removal
• Vertical slices of complete functionality
• Team size and cross skilling
• Iteration plans, release plans and product roadmaps
• Visualisation of work: design and examples of Kanban boards
• Illusion of control
• Answering: When will it be ready?
• Challenges and approaches to retrospectives

Organization

• Maximum class size: 12
Collateral
• All participants receive a physical copy of the course slides plus a PDF copy of the course slides
• Participants receive a copy of Allan Kelly's mini-book "An Agile Reader" as further reading (normal price £4.99)
• Two copies of Allan Kelly's book "Changing Software Development: Learning to be Agile" (normal price £29.99) when booked direct

Workshop leader

This workshop is designed and delivered by Allan Kelly, an experienced software engineer and manager. Allan is a regular conference speaker and the author of the book Changing Software Development: Learning to be Agile (2008) as well as numerous online and offline journal articles. He holds BSc (Computer Science) and MBA degrees.

Download a PDF version of this page

A shorter
one-day version of the Agile Foundations course is also available by request. The main omissions of the one-day version concern requirements and several exercises.

For more information about this course and to enquire about availability
please contact Software Strategy.