Upload
kirill-grouchnikov
View
542
Download
0
Tags:
Embed Size (px)
DESCRIPTION
Presentation on one-man open source projects
Citation preview
PARTY OF ONE
SURVIVING A HOBBY OPEN SOURCE PROJECT
Kirill Grouchnikov
SOURCEFORGE.NET
Indexed projects 146.147
Have files 75.050
Marked as released (*) 15%22.502
* - status one of “production”, “stable”, “mature”
51%
Maintain PromoteDevelop
DEVELOP
DEVELOP
Tenets
Features
Release schedule
“[…] IS A HIGH PERFORMANCE, VASTLY
SCALABLE, EMBEDDABLE, INTERNET-CENTRIC
CLIENT / SERVER COMPUTING PLATFORM WITH
A BREAKTHROUGH ADAPTIVE RUNTIME
TECHNOLOGY.”
Buzzword vision
“IT MAKES SIMPLE THINGS EASY AND THE
HARD STUFF POSSIBLE, THE GOOD DESIGN
EASY AND THE BAD DIFFICULT”
─ FormLayout project by Karsten Lentzsch
FEATURES
Let’s talk about it later
RELEASE SCHEDULE ANTI-PATTERN
Release Date
0.7.0 Alpha 1 Jan 2007
0.6.5 Beta Sep 2005
0.6.0 Beta Oct 2004
0.5.5 Beta Jun 2004
0.5.0 Beta Jan 2004
0.4.5 Beta Nov 2003
0.4.0 Beta Sep 2003
0.3.0 Alpha Jul 2003
0.2.6 Alpha Apr 2003
0.2.4 Alpha Jan 2003
0.2.2 Alpha Oct 2002
2-3 months
4-6 months
11-14 months
RELEASE SCHEDULE
3.0
3.1
3.2
3.3
4.0
10 weeks – usual schedule
10 weeks – usual schedule
12 weeks – extra two weeks for code health
20 weeks – extra ten weeks for code health,
removing deprecated functionality and allowing
users to adapt
RELEASE SCHEDULE
3.0
3.1
3.2
3.3
4.0
10 weeks
10 weeks
12 weeks
20 weeks
52 weeks. 52*7 is 364 days.
Take one day off to enjoy the life.
Get extra day off every four years!
RELEASE SCHEDULE
3.0
3.1
3.2
3.3
4.0
10 weeks
10 weeks
12 weeks
20 weeks
52 weeks
One major
release per
year
MAINTAIN
MAINTAIN
Bugs
Code health
Task schedule
“THE USERS WHO CARE ENOUGH TO GIVE YOU
FEEDBACK DESERVE YOUR ATTENTION AND
RESPECT.”
─ Jeff Atwood, CodingHorror.com
PRIORITIES
This is what you usually see:
90% new features
10% bug fixes
PRIORITIES – IF YOU’RE LUCKY
new features
bug fixes
code health
documentation
PRIORITIES – WHAT IT SHOULD REALLY BE
bug fixes
code health
documentation
new features
NEW FEATURES OVER THE TIME
release
1.0
A new feature needs
to interact with every
existing one
release
1.1
release
1.2
release
1.3
internal
implementation
complexity
WOULD BE NICE IF…
release
1.0
release
1.1
release
1.2
release
1.3
release
2.0
how do you do this?
CODE HEALTH
Internal refactoring
Deprecation
External refactoring
“WITHOUT PEOPLE PUSHING AGAINST YOUR
QUEST TO DO SOMETHING WORTH TALKING
ABOUT, IT'S UNLIKELY IT WOULD BE WORTH
THE JOURNEY.”
─ Seth Godin, sethgodin.typepad.com
CODE HEALTH
How much
stability you
can risk
RC Version
release
Start of
version
Sources of instability:•New features
•Internal rewrites
•Bug fixes
TASK SCHEDULE
version 1.1
version 1.2
version 1.3
TASK SCHEDULE BREAKDOWN
Time Stage
0 weeks Development starts
2 weeks More realistic for dev start
6 weeks Core feature freeze
8 weeks User feature freeze
10 weeks Release candidate
12 weeks Release
13 weeks Stop backporting bug fixes
TASK SCHEDULE
rc rel
0 32
rc rel
0 32
Every bug fix
needs to be
done on two
branches
RESPECT THE USER FEEDBACK
Time Stage
0 weeks Development starts
2 weeks More realistic for dev start
6 weeks Core feature freeze
8 weeks User feature freeze
10 weeks Release candidate
12 weeks Release
13 weeks Stop backporting bug fixes
PROMOTE
PROMOTE
Documentation
Test applications
Blog
DOCUMENTATION
Time Stage
0 weeks Development starts
2 weeks More realistic for dev start
6 weeks Core feature freeze
8 weeks User feature freeze
time to start release notes
10 weeks Release candidate
release notes in perfect shape
12 weeks Release
13 weeks Stop backporting bug fixes
“RATHER THAN HATING WASHING THE DISHES,
YOU JUST WASH THE DISHES.”
─ Garr Reynolds, Presentation Zen
BLOG
Do it
“THE RELEASE IS NOT OUT UNTIL YOU BLOG
ABOUT IT.”
─ Harald Fernengel, TrollTech
Maintain PromoteDevelop
MAKING MISTAKES
Is being the best a goal in itself?
ALL THAT'S NEEDED IS THE DESIRE TO BE
HEARD. THE WILL TO LEARN. AND THE
ABILITY TO SEE.
─ Scott McCloud, Understanding Comics
PICTURE CREDITS
Bridge – user “diebmx” on flickr.com
Pavement growth – user “diebmx” on flickr.com
Broken sign – user “diebmx” on flickr.com
Teeming ladybugs – user “Thomas Hawk” on flickr.com
Leaping dog – user “i am brad” on flickr.com
Meerkats – user “814 carthage” on flickr.com
Attribution-NonCommercial License
Attribution License
Ants on a rope – user “wwarby” on flickr.com