365 Shades of Grey Release Planning for Samba Ira Cooper SambaXP - - PowerPoint PPT Presentation

365 shades of grey
SMART_READER_LITE
LIVE PREVIEW

365 Shades of Grey Release Planning for Samba Ira Cooper SambaXP - - PowerPoint PPT Presentation

365 Shades of Grey Release Planning for Samba Ira Cooper SambaXP 2015 1 / 41 Who am I? Software Engineer for 15+ years. Systems Programmer. Systems Engineer. Studied software process and release cycles at: TASC Inc.


slide-1
SLIDE 1

1 / 41

365 Shades of Grey

Release Planning for Samba

Ira Cooper SambaXP – 2015

slide-2
SLIDE 2

2 / 41

Who am I?

  • Software Engineer for 15+ years.
  • Systems Programmer.
  • Systems Engineer.
  • Studied software process and release cycles at:

– TASC Inc. – The MathWorks Inc. – Red Hat Inc. – None of these companies endorse this talk.

slide-3
SLIDE 3

3 / 41

Why Develop Software?

  • Money?
  • Enjoyment?
  • Prestige?
  • Gun to head?
slide-4
SLIDE 4

4 / 41

Why Release Software?

  • Commercial

– Don't! (Works for Google Mail and Search!) – For the money! (Works for MathWorks!)

  • Open Source

– ???? – For the “users”? – For the developers?

slide-5
SLIDE 5

5 / 41

Open Source – Reasons.

  • Help the planet.
  • Tell the planet about our wonderful software.
  • Hope someone will buy our little start-up for money.
  • Buzzword compliant.
  • Fairness.
  • Freedom.
  • Many, many, real reasons…..
slide-6
SLIDE 6

6 / 41

When to Release Software?

  • When it benefits the people “developing” it.

– Call these people the stakeholders.

  • What about the users?

– Without the stakeholders, there IS no software. – There is nothing to release!

  • Obvious, but critical insight.
slide-7
SLIDE 7

7 / 41

The Lifecycle of a Release

  • Development.
  • The typical “Glideslope”.

– Feature Freeze. – Code Freeze. – Release.

  • Maintenance?! - Yes, it matters!
  • End of maintenance.
slide-8
SLIDE 8

8 / 41

Development.

  • Developers do what they do.

– Write code. – Review code. – Make things unstable^Wbetter! – Run amuck!

  • This is where feature development SHOULD be

done.

slide-9
SLIDE 9

9 / 41

The “Glideslope”.

  • Taken from flying.
  • The goal is a smooth landing.
slide-10
SLIDE 10

10 / 41

Feature Freeze.

  • Control hand-off from development to management.
  • No more features after this date.

– Exceptions?

  • I've never been somewhere there ISN'T!
  • Or worked on a project that way.
  • Bug fixes go in without questions in this phase.
  • Minor improvements MAY be taken.

– Always be suspicious… There be dragons!

slide-11
SLIDE 11

11 / 41

See… I warned you.

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

slide-12
SLIDE 12

12 / 41

Code Freeze.

  • No changes without written exceptions.
  • Exceptions == Day for Day slip on the issue.

– Just a bug is NOT enough to get in. – “It is only a small change.” – “It's almost done!”

  • Only critical fixes should be made at this point.
  • Changes at this point are VERY dangerous.

– There be more dragons here!

slide-13
SLIDE 13

13 / 41

I told you…

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

slide-14
SLIDE 14

14 / 41

How to Train Your Dragons.

  • Don't have any?!

– Not very realistic.

  • Put strong conditions on waivers.

– Any waiver should be tracked! – Is it REALLY a day for day slip? – Discipline is needed here!

  • May need to be done by committee?
slide-15
SLIDE 15

15 / 41

Glideslope Exit?

slide-16
SLIDE 16

16 / 41

Policies You Need.

  • What about late security issues?
  • Late breaking data corruption issues?
  • Late severe regressions?
  • IMHO:

– Decide based on what it is.

slide-17
SLIDE 17

17 / 41

Release!

  • Ask Karolin.
  • She'll explain it better than I ever could!
slide-18
SLIDE 18

18 / 41

Maintenance?

  • Each branch has a set of policies that govern it.
  • Nobody says they have to be the same!
  • Should they be?
  • Depends… who is maintaining them, and why.

– Those who drive the maintenance, decide policy!

slide-19
SLIDE 19

19 / 41

When to Release?

  • Think about why we release…
  • To benefit the “stakeholders”.
  • So shouldn't release timing benefit those people?
  • Some policies I've seen….
slide-20
SLIDE 20

20 / 41

End of Maintenance

  • This is a touchy issue.
  • This may be a “shade of grey”.

– No more “feature” backports. – No more “security” backports.

  • We need to know who cares!

– Plus, who pays.

slide-21
SLIDE 21

21 / 41

What We Do Today.

  • ~10-11 month full cycle.
  • 9 months of Development.
  • 1-2 months of Feature Freeze.
  • 1 week of Code Freeze.
  • Maintain 3 releases concurrently.

– 1 with some back ports. – 2 with security back ports.

slide-22
SLIDE 22

22 / 41

We've Got Dragons!

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

slide-23
SLIDE 23

23 / 41

Today's Dragons.

  • “I need to complete this feature.”

– Release slips 2-3 months. – Some needed that release sooner!

  • No real control of the dragons.

– They run wild!

slide-24
SLIDE 24

24 / 41

Problems?

  • Clearly this results in about a release a year.
  • No real time in Feature Freeze.
  • No time at ALL in Code Freeze for the release.
  • These things really hurt quality.
slide-25
SLIDE 25

25 / 41

Benefjts.

  • We know what we do today.
  • We actually have done this!
  • It has worked for three years.

– Do not knock this fact.

slide-26
SLIDE 26

26 / 41

4-6 Month Cycle.

  • Development is between the rest of the cycle.
  • ~1-2 months for Feature Freeze. (Beta)
  • ~1-2 months for Code Freeze. (RC)
  • Hard stop on the time lines.

– No dragons!

slide-27
SLIDE 27

27 / 41

Surprise!

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

slide-28
SLIDE 28

28 / 41

There Be Dragons.

  • 4-6 months is a LONG time to not get a feature to

the field.

  • Some developers may be stuck forking on major

features.

– Look at how aggressively Red Hat backports

kernel patches…

  • Red Hat does make our Samba versions

available via git on git.samba.org from asn.

– Probably not what we want for our community.

slide-29
SLIDE 29

29 / 41

How to Train Your Dragons 2.

  • We need to acknowledge the needs of our

stakeholders.

  • Exceptions are part of life in this type of cycle.
  • Control them.

– Train your dragons. – Yes, we may need a dragon tamer…

  • Or do we do it by committee?
slide-30
SLIDE 30

30 / 41

Benefjts.

  • It is better than today.
  • It meets the needs of at least one stakeholder

better.

  • Can we do better?
slide-31
SLIDE 31

31 / 41

Linux Kernel

  • Releases are ~6-8 weeks.
  • Branches beyond 2-3 back are NOT maintained.

– Anything older is basically kept up by a distro.

  • ~2-4 weeks of Development.
  • ~2 weeks of Feature Freeze.
  • The rest is Code Freeze.
slide-32
SLIDE 32

32 / 41

Problems?

  • Fast release pace may confuse people.
  • Do releases have a real meaning?
  • What is a “stable” release?
  • We don't have a “Linus.”

– Can we do it by committee?

slide-33
SLIDE 33

33 / 41

Benefjts.

  • Fast release pace. Code gets to the field fast!

– RC's can be as fast as 2 weeks!

  • Those willing to maintain decide what to maintain.

– Not the “main line” developer's problem. – Well, it is… but we'll be paid for it.

slide-34
SLIDE 34

34 / 41

9-12 Month Release Cycle.

  • I won't pretend to like this.

– Need more field feedback. – If we had stronger QA, we might get away with it. – Some developers need more frequent feature

drops.

  • They'll PAY for it.
  • It just doesn't meet our needs, and we know it!
slide-35
SLIDE 35

35 / 41

Feature Based Release.

  • There's a key set of features that must be done.
  • Decide on the features.
  • Don't ship until they are done.
slide-36
SLIDE 36

36 / 41

Benefjts.

  • Features are what drive releases.

– There's always a feature for a release!

  • Features always make the release.
slide-37
SLIDE 37

37 / 41

Disadvantages.

  • What if a feature slips?
  • What if a feature never ships?
  • What if a feature's developer won't admit it slips?

– Yes, this happens.

  • Feature based release, is something to be wary of.

– But it can work, at times.

slide-38
SLIDE 38

38 / 41

Other Plans?

  • I welcome you to come up with plans!
  • But understand the constraints.

– Who is paying for it? – Who will work with it? – Who are the “stakeholders”? – Why does it meet our needs?

  • I welcome discussions today, and tomorrow!

– On samba-technical once we are closer. – Please not until we ARE closer.

slide-39
SLIDE 39

39 / 41

Remember.

  • Most software ships late.
  • Many projects never ship at all.
  • Figuring out what is going when, is a true art.

– That's why there be dragons!

  • Our goal is to meet our stakeholder's needs!
slide-40
SLIDE 40

40 / 41

Questions?

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

slide-41
SLIDE 41

41 / 41

Thanks for Attending!

By Antonella Nigro (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons