41
PARTY OF ONE SURVIVING A HOBBY OPEN SOURCE PROJECT Kirill Grouchnikov

Party of One

Embed Size (px)

DESCRIPTION

Presentation on one-man open source projects

Citation preview

Page 1: Party of One

PARTY OF ONE

SURVIVING A HOBBY OPEN SOURCE PROJECT

Kirill Grouchnikov

Page 2: Party of One

SOURCEFORGE.NET

Indexed projects 146.147

Have files 75.050

Marked as released (*) 15%22.502

* - status one of “production”, “stable”, “mature”

51%

Page 3: Party of One
Page 4: Party of One

Maintain PromoteDevelop

Page 5: Party of One

DEVELOP

Page 6: Party of One
Page 7: Party of One

DEVELOP

Tenets

Features

Release schedule

Page 8: Party of One

“[…] IS A HIGH PERFORMANCE, VASTLY

SCALABLE, EMBEDDABLE, INTERNET-CENTRIC

CLIENT / SERVER COMPUTING PLATFORM WITH

A BREAKTHROUGH ADAPTIVE RUNTIME

TECHNOLOGY.”

Buzzword vision

Page 9: Party of One

“IT MAKES SIMPLE THINGS EASY AND THE

HARD STUFF POSSIBLE, THE GOOD DESIGN

EASY AND THE BAD DIFFICULT”

─ FormLayout project by Karsten Lentzsch

Page 10: Party of One

FEATURES

Let’s talk about it later

Page 11: Party of One

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

Page 12: Party of One

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

Page 13: Party of One

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!

Page 14: Party of One

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

Page 15: Party of One

MAINTAIN

Page 16: Party of One
Page 17: Party of One

MAINTAIN

Bugs

Code health

Task schedule

Page 18: Party of One

“THE USERS WHO CARE ENOUGH TO GIVE YOU

FEEDBACK DESERVE YOUR ATTENTION AND

RESPECT.”

─ Jeff Atwood, CodingHorror.com

Page 19: Party of One

PRIORITIES

This is what you usually see:

90% new features

10% bug fixes

Page 20: Party of One

PRIORITIES – IF YOU’RE LUCKY

new features

bug fixes

code health

documentation

Page 21: Party of One

PRIORITIES – WHAT IT SHOULD REALLY BE

bug fixes

code health

documentation

new features

Page 22: Party of One

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

Page 23: Party of One

WOULD BE NICE IF…

release

1.0

release

1.1

release

1.2

release

1.3

release

2.0

how do you do this?

Page 24: Party of One

CODE HEALTH

Internal refactoring

Deprecation

External refactoring

Page 25: Party of One

“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

Page 26: Party of One

CODE HEALTH

How much

stability you

can risk

RC Version

release

Start of

version

Sources of instability:•New features

•Internal rewrites

•Bug fixes

Page 27: Party of One

TASK SCHEDULE

version 1.1

version 1.2

version 1.3

Page 28: Party of One

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

Page 29: Party of One

TASK SCHEDULE

rc rel

0 32

rc rel

0 32

Every bug fix

needs to be

done on two

branches

Page 30: Party of One

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

Page 31: Party of One

PROMOTE

Page 32: Party of One
Page 33: Party of One

PROMOTE

Documentation

Test applications

Blog

Page 34: Party of One

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

Page 35: Party of One

“RATHER THAN HATING WASHING THE DISHES,

YOU JUST WASH THE DISHES.”

─ Garr Reynolds, Presentation Zen

Page 36: Party of One

BLOG

Do it

Page 37: Party of One

“THE RELEASE IS NOT OUT UNTIL YOU BLOG

ABOUT IT.”

─ Harald Fernengel, TrollTech

Page 38: Party of One

Maintain PromoteDevelop

Page 39: Party of One

MAKING MISTAKES

Is being the best a goal in itself?

Page 40: Party of One

ALL THAT'S NEEDED IS THE DESIRE TO BE

HEARD. THE WILL TO LEARN. AND THE

ABILITY TO SEE.

─ Scott McCloud, Understanding Comics

Page 41: Party of One

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