agile bioinf
DESCRIPTION
Introduction to scrum, lecture at the "Programming for Evolutionary Biology" workshop in Leipzig 2013. http://evop.bioinf.uni-leipzig.de/TRANSCRIPT
Agile Bioinformatics
Why do research projects fail?
Why do research projects fail?(in programming)
● Time wasted using wrong tools / cleaning bad data / etc..
● Insufficient programming skills● Objectives not defined clearly / bad planning
Why do research projects fail?(in programming)
● Time wasted using wrong tools / cleaning bad data / etc.. ask for help
● Insufficient programming skills practice● Objectives not defined clearly / bad planning
Why do research projects fail?(in programming)
● Time wasted using wrong tools / cleaning bad data / etc.. ask for help
● Insufficient programming skills practice● Objectives not defined clearly / bad
planning
Example: last year's students project
● Day 1: Let's do a project to analyze a dataset of Alternative Splicing expression
Example: last year's students project
● Day 1: Let's do a project to analyze a dataset of Alternative Splicing expression
● Day 3: Working on five different projects at once
Example: PhD thesis
● Day 1: professor explains great idea of PhD thesis
Example: PhD thesis
● Day 1: professor explains great idea of PhD thesis
● After 3 years: student working on a completely different project
Planning and Programming
● Planning is the most important part in programming
● If your objective are not clear, you'll waste time
Planning is difficult, because objectives change!
● Objectives always change over time– New priorities
– New ideas
– Somebody else published it
– etc..
Planning is difficult,because objectives change!
● Objectives always change over time– New priorities
– New ideas
– Somebody else published it
– Etc..
● What's the solution?
Scrum
● Scrum is an approach to software programming
Scrum
● Scrum is an approach to software programming
● It's a set of guidelines to how to organize your work:– How to define the objectives?
– How frequently objectives must be re-stated?
– How to organize daily work?
Scrum
● Scrum is an approach to software programming
● It's a set of guidelines to how to organize your work:– How to define the objectives?
– How frequently objectives must be re-stated?
– How to organize daily work?
● Guidelines, not rules
The scrum “sprint”
● The basic of scrum is to split the work into “sprints” of 2-4 weeks each
The scrum “sprint”
● The basic of scrum is to split the work into “sprints” of 2-4 weeks each– Every 2-4 weeks, a meeting to redefine the
objectives, and plan how to obtain them
– Short daily meetings to check that everything is ok
– A feedback meeting at the end, to discuss what went well or not
The planning meeting
● A planning meeting is made every 2-3 weeks (beginning of the “sprint”)
● Tasks:– Define main objectives
– Divide work into single tasks
The planning meeting
● A planning meeting is made every 2-3 weeks (beginning of the “sprint”)
● Tasks:– Define main objectives
– Divide work into single tasks
http://blogs.microsoft.co.il/blogs/kolbis/
Planning table (post-its)
Source of the image: wikipedia
The “post-it” rule
● Ideally, a task can be decribed in paper of the size of a “Post-it”
● If you can't explain it in a Post-it, then split it into two tasks
Objectives table
(sorry – I'll put this online when I submitted the paper)
Daily meeting
● 15 minutes meetings, every day in the morning
● Each participant explains:– What have you accomplished yesterday?
– What are you going to do today?
– Are there any impediments / stumbling blocks?
Daily planning table
(sorry – I'll put this online when I submitted the paper)
Daily meetings must be short!
● The daily meeting must be necessarily not longer than 15 minutes
● Anything that requires more than 15 minutes, should be discussed later
Never work more than 8 hours!
● The day should be planned for 8 hours of work● If you consistently work more than 8 hours
each day, you are not planning yourself well
Retrospective Meeting
● At the end of each sprint (2-3 weeks)– What has been accomplished?
– What has gone wrong?
– What can be improved?
Retrospective table
Image source:www.it-zynergy.com
Retrospective Meeting
● At the end of each sprint (2-3 weeks)– What has been accomplished?
– What has gone wrong?
– What can be improved?
● Tip: take a few days of “rest” after a sprint
Scrum - resume
● Split your work into “sprints”, defining objectives that can be completed in 2-3 weeks– One planning meeting at the beginning
– 15 minutes meetings every day
– Feedback meeting at the end
Scrum - resume
● Split your work into “sprints”, defining objectives that can be completed in 2-3 weeks– One planning meeting at the beginning
– 15 minutes meetings every day
– Feedback meeting at the end
● These are guidelines, not rules
How to know more?
● Agile Barcelona – http://agile-barcelona.org/
● Barcelona gamestorming grou– http://www.meetup.com/gamestorming-barcelona/
● Look for the “Agile Programming” group in your city
● Kane D, “Introducing Agile Development in Bioinformatics”, 2003