22
Back to Basics Series Basic Agile Practices Thomas Sarlandie 2013 03 27 Topics Intro to agile methodologies Basic agile practices for the development team Basic agile practices for the project team Intended audience Development teams and their counterpart in any company

Back To Basics: Agile Practices

Embed Size (px)

DESCRIPTION

Let's discuss this on my blog: http://www.sarfata.org/back-to-basics/basic-agile-practices/ My goal today was to extract the most important (IMHO) practices of agile methodologies that can be applied individually or together to improve the performance and well-being of project teams. I split those practices into two: practices for the developers, practices for the entire team. My selection of practices included: * Pair programming * Collective Code Ownership * Refactoring * Test Driven Development * Continuous Integration * Standup Meeting * Kanban (the post-it board) * Time-boxing - Sprint * Backlog * Retrospective Slides distributed under the CC-BY-SA license. As always feedback is much appreciated!

Citation preview

Page 1: Back To Basics: Agile Practices

Back to Basics SeriesBasic Agile PracticesThomas Sarlandie2013 03 27

TopicsIntro to agile methodologiesBasic agile practices for the development teamBasic agile practices for the project team

Intended audienceDevelopment teams and their counterpart in any company

Page 2: Back To Basics: Agile Practices

Image by RelaxingMusic - Used under a CC-BY license: http://www.flickr.com/photos/83905817@N08/7676582338/

Page 3: Back To Basics: Agile Practices

Image by RelaxingMusic - Used under a CC-BY license: http://www.flickr.com/photos/83905817@N08/7676582338/

Agile development is not about doing sport in the

office

Page 4: Back To Basics: Agile Practices

Image by RelaxingMusic - Used under a CC-BY license: http://www.flickr.com/photos/83905817@N08/7676582338/

Agile development is not about doing sport in the

office

It is about finding a better way to work together

Page 5: Back To Basics: Agile Practices

http://AgileManifesto.org

Page 6: Back To Basics: Agile Practices

Agile Software Development today

SCRUM

Focuses on project management (team and work organization) and on planning. (Strategic level)

Extreme Programming

Practices to improve efficiency of development teams. (Tactical level)

Page 7: Back To Basics: Agile Practices

Basic Agile Practicesfor the development team

Page 8: Back To Basics: Agile Practices

Pair ProgrammingTwo brains much better than one ...

Two developers working together on the same code

One driver, one observer - Switch every 15’

Much better concentration

Training - Sharing best practices

Collective code ownership

Photo by rafa-alves - CC-BY-SAhttp://www.flickr.com/photos/rafaelmob/4669642298/

Page 9: Back To Basics: Agile Practices

Collective Code Ownership

No-one ‘owns’ a particular module or piece of code

Every one can comment or commit in any piece of the code

Every one is responsible for the quality of the code

#include <stdio.h>

char *msg = "Hello World\n";

int main(int argc, char **argv){ while (*msg) { putchar(*msg); msg++; }}

Page 10: Back To Basics: Agile Practices

RefactoringStart by writing the simplest code for the task at hand

Then when you need to extend it, refactor to make sure it remains clean, clear and concise

Can be as simple as:

Renaming classes when their role changes

Making sure the same concepts have the same name everywhere

Remove useless code and Factor duplicate code

Page 11: Back To Basics: Agile Practices

Test Driven Development

Write test first, then the code

Improves the design of the code

Future proof

Better than a lot of documentation

http://www.javacodegeeks.com/2012/05/test-driven-development-win-win.html

Page 12: Back To Basics: Agile Practices

Continuous Integration

Automates the build process of your code

Email the team when a test or build fails

Provides up-to-date “snapshots” of the code

Improves collaboration

Reduces time spent on tedious tasks

Page 13: Back To Basics: Agile Practices

Basic Agile Practicesfor the entire team

Page 14: Back To Basics: Agile Practices

Standup MeetingEvery morning, members of a project meet for a standup meeting

Says what she did yesterday

What she will do today

What are the potential problems

Improves communication in the team greatly

Keeps people focused and coordinated

Helps avoid wasted time

Photo by Alexander Ljung - CC-BY-SA-NChttp://www.flickr.com/photos/alexanderljung/3041180268/

Page 15: Back To Basics: Agile Practices

Kanban (aka Post-it board)Three columns on the wall: Todo, In Progress, Done

One post-it for each specific task (not feature - task)

Updated in “real-time”

Define “Done”

Visible progress

Avoid wasting time on not important tasks

Forces everyone to thing about the tasks

Trust-me: Post-its are much better than any software... Photo by @Stephen - CC-BY-NChttp://www.flickr.com/photos/hdbizblog/4296189727/

Page 16: Back To Basics: Agile Practices

Time-boxing - SprintDefine time boxes for your development: sprint

Define what you would like to do in that sprint and do not change it once started

Release a working product at the end of each sprint

Gives some stability to the team and allows the client to change priorities

Gain experience on how much can be done in one sprint

1

2

3

Page 17: Back To Basics: Agile Practices

BacklogA list of all the Use Cases that need to be developed

Estimated with a Complexity

Prioritized by the Product Owner

Feeds new sprints

Oriented towards the user (use-cases)

Enables Release Planning

Copyright 2005 - Mountain Goat Software

Page 18: Back To Basics: Agile Practices

Retrospective

At the end of each sprint, the team takes some time to think about what went well, what needs improvement, the ideas that came up and questions

Vote for the 3 most important things

Take one action to improve/maintain each voted item

Continuous improvement

Page 19: Back To Basics: Agile Practices

Retrospective

At the end of each sprint, the team takes some time to think about what went well, what needs improvement, the ideas that came up and questions

Vote for the 3 most important things

Take one action to improve/maintain each voted item

Continuous improvement

Page 20: Back To Basics: Agile Practices

Retrospective

At the end of each sprint, the team takes some time to think about what went well, what needs improvement, the ideas that came up and questions

Vote for the 3 most important things

Take one action to improve/maintain each voted item

Continuous improvement

Page 21: Back To Basics: Agile Practices

Practices to take home todayPair Programming

Collective Code Ownership

Refactoring

Test Driven Development

Kanban

Standup Meeting

Time-boxing - Sprint

Backlog

Retrospective

Continuous Improvement

Communication

Courage

and agile values:

Page 22: Back To Basics: Agile Practices

Thank you!

www.sarfata.org@[email protected]

Refactoring: Improving the design of existing code (Martin Fowler)

Let’s Play TDD Development (youtube)

Scrum and XP from the trenches

Scrum Guide