Agility and FOSS

Presenter Notes

whoami

Haïkel Guémar

Fedora Packager since 2006

Senior Software Engineer @ SysFera

Certified "Scum" Master

Presenter Notes

Agility vs FOSS ?

Presenter Notes

Values

Let's talk about values

Presenter Notes

Agile Manifesto

4 values

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer Collaboration over contract negotiation
  4. Responding to change over following a plan

Presenter Notes

FSF Four Freedoms

  1. The freedom to run the program for any purpose
  2. The freedom to study how the program works and change it to make it do what you wish
  3. The freedom to redisitribute copies so you can help your neighbor
  4. The Freedom to improve the program and release your improvements to the public

Presenter Notes

Two attitudes

Agile manifesto describe how to build better software

FSF Four Freedoms how to respect users freedom

Presenter Notes

Common points

  • Similar Ethics
  • Focus on teamwork
  • Communication as pivot

Presenter Notes

Technically

  • Iteration vs "Release early, release often"
  • Empowerment of knowledge: "Software Craftmanship vs meritocracy"

Presenter Notes

FLOSS achievements

  • open code
    • code review "Given enough eyeballs, all bugs are shallow"
    • effective collective ownership
  • broader community
    • team ⊂ community

Presenter Notes

Agile for FLOSS hackers

Presenter Notes

Principles

  • iterative and incremental development
  • self-organizing and cross-functionnal teams
  • adaptative planning and delivery
  • timeboxed approach
  • maximising Business value/efforts

Presenter Notes

Many Methods

  • eXtreme Programming
  • Crystal methods family
  • Kanban
  • Scrum (the trendy one)

Presenter Notes

eXtreme Programming

Created in 1999 by Kent Beck

Presenter Notes

eXtreme Programming

4 values:

  • Communication
  • Simplicity
  • Feedback
  • Courage
  • Respect (added in Extreme Programming Explained, 2nd ed)

Presenter Notes

eXtreme Programming

12 practices:

  • Fine scale feedback
    • Pair programming
    • Planning game
    • Test-driven development
    • Whole team
  • Continuous process
    • Continuous integration
    • Refactoring or design improvement
    • Small releases

Presenter Notes

eXtreme Programming

12 practices:

  • Shared understanding
    • Coding standards
    • Collective code ownership
    • Simple design
    • System metaphor
  • Programmer welfare
    • Sustainable pace

Presenter Notes

eXtreme Programming

Presenter Notes

Scrum

An iterative and incremental agile software development framework coined by Jeff Sutherland and Ken Schawber in 1995

Presenter Notes

Scrum

It has roles:

  • Product Owner: the guy who sets the vision
  • Scrum Master: the sheep herder
  • Team: people who do the actual works
  • Stakeholders: people who pay/use your product

Presenter Notes

Scrum

And meetings (don't worry, they're timeboxed !)

  • daily scrum
  • sprint planning
  • sprint review (aka demo)
  • retrospective

Presenter Notes

Scrum

And artefacts:

  • Product backlog
  • Sprint backlog
  • Burndown chart

Presenter Notes

Scrum

The process:

Presenter Notes

Can FOSS adopt Agility


Presenter Notes

Limits ?

  • Scheduled releases: when it's done ?
  • Prioritisation: at the whim of the developers
  • User-centered: scratching your own itches

Presenter Notes

Openings

  • Who'll play the Product Owner ?
  • Scrum Master ?
  • How to build a backlog ?
  • Can we iterate ?
  • Business Value vs Freedom ?

Presenter Notes

Moderated Panel

Coz' your opinion matter !

Presenter Notes

Q/A

Presenter Notes