Funded release work

Doing releases is an important and integral part of the project. It’s necessary and vital that we stick to our schedule and get major, minor and bugfix releases out on a regular basis. Users expect that from us.

It seems though that releases get stuck with very few people and the same are doing it again and again. Especially Karsten and me do a lot of release work, but as we are both part of Flownative that effectively means Flownative is stemming a huge part of releases. This has several problems:

  • We both would like to do some other stuff in the project as well and not spent all Open Source time on release work
  • Flownative is spending a lot of work time on this
  • we also cannot guarantee to always having the time to do it.

I would therefore like to suggest (as we discussed several times now) to support release work by funding it. That obviously extends to anyone doing releases but it would definitely help us at Flownative to block work time for regular releases (if we should do it) and taking care of them in a good way instead of cramming them in, whenever Karsten or me have time.

I am open to discuss the details on this, but I would suggest we define a rough amount of hours to be reserved as budget for minor and major releases and additionally plan a small amount of hours for regularly taking care of bugfix releases (eg. once a week or bi-weekly).

As a rough idea, the major release took me about a week full time to organise prepare, merge etc.
I guess we can plan a bit less, but it will take a whole bunch of hours.

Minor release can probably be done in about two days of work.

Bugfix releases ~2h.

Maybe @kdambekalns can pitch in with his perspective :slight_smile:

5 Likes

Just to show the involvement for major/minor releases:

Neos 2.0 - Christian was involved
Neos 2.1 - Minions team (so Karsten and Robert involved)
Neos 2.2 - Karsten was involved
Neos 2.3 - Christian was involved
Neos 3.0 - Robert was involved
Neos 3.1 - Karsten was involved
Neos 3.2 -
Neos 3.3 -
Neos 4.0 - Christian was involved
Neos 4.1 - Karsten was involved

I totally agree that this should be funded.

So just for some further numbers, we do 1 major and three additional minor releases a year.

So not counting Bugfixes yet, we’re at roughly 1*5*8 + 3*2*8 = 40 + 48 = 88 hours a year. Let’s say we do roughly 30 Bugfix releases a year, that adds another 30*2 hours, leaving us at 148 hours a year. That sounds doable.

So what rate would be applied? Should we fund the whole effort or only partially? Everytime or just when a request for funding is made? What will be the effects? RM optimizing for small releases to stay below the granted blanket effort hours, pushing features to next release? Will this put more pressure on new people, because they get payed for doing something they feel insecure about? What if a release turns out to be specifically complicated?

Not trying to argue against it at all, quite the opposite! Is just want to get this decided upon soon, because it’s important and should be clear and thought through.

Note that there are 3 releases total per year and every 4th is a major so your calculation is too high.

In most years you would have 2+1 so (16*2)+40 =~ 72 hours. And as said those are rough guesstimates from experience. Might be longer might be shorter. I would be fine to fix funding to those numbers though. Also in every of those 3 releases you will automatically have bufix releases because you do the most annoying part (upmerges) already. Additionally upmerges become easier now that 2.3 is only getting security fixes so you don’t have to deal with old namespaces anymore. Might tone down the bugfix releases to an hour (I would still make it 2 to be sure). Finally I would do this all on fair use. I assume especially bugfix releases can and will happen out of need or just because someone feels like it and may not necessarily need reimbursement.

So I guess we could get by with a budget for 120 hours. And if we wanted to go further down just the minor/major releases would go a long way. Squeezing in an hour or two for a bugfix release is easy enough. So if we wanted to test the waters with this, lets look at ~80-ish hour reserve for a year and see how it goes.

As for the price, obviously a difficult question. I guess we have to look at prices of places where our team members work. I would just drop 100€ as a number here as I guess that might be something agencies like Sitegeist, punkt, Sandstorm and Flownative can work with. It’s quite high obviously, but I would like to have something that agencies can accept as customer work and prioritise respectively.

Sounds reasonable, I agree. That would mean we use 12.000€ a year for release work.
According to https://neosfunding.sandstorm.de/de/transparency.html, we currently receive 2.850€/month from badges, which equals 34.200€ a year. So we’d be spending roughly a third of our yearly income on releases.
I personally would feel comfortable spending that, if it means we have a stable, reliable and hassle-free release process. I agree that it is one of the most important points, also from an outside, “is-this-project-actually-alive” point of view.
As for the practical implications, I think it’s most sensible to define a lump sum to be invoiced per release, as opposed to hour-based invoices, just to have a certain amount of financial security for the project budget. This would then be split among the release managers in some way (I’d be happy to have the release mgrs themselve decide how exactly). We should review that after some time and check if it is enough/not enough/too much. WDYT?

2 Likes

Thanks for the responses!

So if we wanted to test the waters with this, lets look at ~80-ish hour reserve for a year and see how it goes.

Let’s go this route as a first step, then adjust the hours required.

Bugfix releases should be somehow “included” in the RM work for major/minors, however due to the nature of our upmerge strategy that all following bugfix releases of higher minor versions will also include bugfix releases of the lower maintained versions, we could argue that we add 1/3rd of bugfix release spending to the work of each major/minor release.

So a major would come at an expense of 40 + 40/3 ~ 54 hours and each minor at 16 + 40/3 ~ 30 hours.

So what rate would be applied?

100€ sounds ok for me.

Should we fund the whole effort or only partially?

So that would mean full - as in the the full estimated effort. RMs decide how to split the reimbursable effort.

What if a release turns out to be specifically complicated?

Additional effort necessary beyond the estimates could be requested on a per case basis and decided on.

That leaves the other, more philosophical questions:

What will be the effects? RM optimizing for small releases to stay below the granted blanket effort hours, pushing features to next release? Will this put more pressure on new people, because they get payed for doing something they feel insecure about?

I’d settle with good faith, which is our fundamental believe, on the first one, but the second one I’m unsure about.

Funding Result

Hey everybody and colleagues,

the funding Request “Funded Release work for Release 4.2” has been granted at Spending available 2018 budget.

… So you can get to work :slight_smile: :upside_down_face: and spend 4.400 € until end of 2018!

All the best,
Sebastian

3 Likes