From: "Jonatas L. Nogueira via ffmpeg-devel" <ffmpeg-devel@ffmpeg.org> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>, "Jonatas L. Nogueira" <jesusalva@spi-inc.org> Cc: "Jonatas L. Nogueira" <jesusalva@spi-inc.org> Subject: Re: [FFmpeg-devel] Sovereign Tech Fund Date: Wed, 31 Jan 2024 11:10:02 -0300 Message-ID: <CALE=2=_C1WxFjOwUB1PXiL9G-hnukBxzpDsW70T1NY-s+1wqMg@mail.gmail.com> (raw) In-Reply-To: <170670599775.8914.331021234730065376@lain.khirnov.net> > IMO hasty actions and avoidable drama may cause damage to the project What would be a hasty action? I've seen far too much people calling action over stuff discussed for weeks/months as "hasty" in attempt to stall into endless discussions, so you might want to clarify. > The question is, what exactly would be the reprecussion for failing to achieve projects. To us? To SPI? Not to mention the developer not getting paid. Given the current goal is to fund continuous maintenance tasks, it'll only be a large problem with unpaid people if final state isn't better than initial (eg. code gets more bloated instead of less). Otherwise, even if some specific task cannot be completed, that's not an issue by itself, the time already spent can be paid, as long that there's something to show for it. (That's also an issue, but thankfully a debate for later). Of course, if everything ends up unfinished that'll only scream you're terrible at planning or outright don't know what you're doing. Repercussions could make harder for you to acquire funds in the future and likely comments that SPI should follow its projects more closely. So mixing some easy but boring tasks is definitely a good idea. > So you're basically saying the developers have to take the risk onto themselves Could you explain what exactly the risk devs are taking is? I can help if you can make the usual risk assessment table (what risk, likelihood, and impact/consequence). > it's widely acknowledged that accurate time estimates for complex projects are somewhere between extremely hard and unfeasible. I don't think a year is a question of accuracy, it usually indicates that the code is becoming lasagna (if no result can be provided), ravioli (if result can be provided but it doesn't work) or spaghetti (when it can be provided and works... sometimes). That sounds exactly like a good use for a maintenance grant, identifying where the existing code base is problematic and trying to tidy it up. That's also not something you can say "will be done by X", it's just something you pour hours and hope end result is easier to work with than the previous state (even if it's still pasta). That's why the Scope of Work (which is the current task) for this is less concerned in end results or deadlines, but in goals which can be attained within a time frame (even if they're "making better" or can only be partly attained, which would cause STF to believe you to be overambitious but is not as problematic as not attaining anything at all). > developers will try to protect themselves by playing it safe and budgeting for the largest amount of time they think they might possibly need. Which means in most cases they will need less time, sometimes significantly less. Would STF be okay with us being so wasteful? No one is going to get paid according to their budget, the payment is over how much time they actually spent. Budget is a limit, so the developer has a good idea since the start of how long they can take. If they notice it'll go over budget, they can stop, reevaluate and propose new budgets or partial deliveries (or whatever the GA/STF decides to be acceptable). More often than not, they'll have run in an unforeseen issue which could warrant a fund/budget on its own. So if you budget 15 hours and work 5, you'll be paid for 5 and the surplus of 10 hours can be given to other projects or assigned somewhere nearing over budgeting so it can be finished (or at least, delivered). > my main point is that the amount of work to be done on any interesting cleanup is unknowable beforehand. That means you have to budget for the worst case, which means in the median case you will be significantly overpaid. I agree it's impossible to know, and I am sure STF is aware of that as well. That's also why particulars usually don't fund these things, but public funds like STF are willing to. But there will be no overpayment, as you're paid for what you do (up to budget). If you finish with less than budgeted, that means the surplus can be used to clean another code. (And if there's a concern of fake hours, there are mechanisms which can be used and can be discussed later, after the budget is made, which is after STF returns their approval and the exact terms). I hope this addresses some of your concerns. Att., Jonatas L. Nogueira (“Jesusalva”) On Wed, Jan 31, 2024, 09:59 Anton Khirnov <anton@khirnov.net> wrote: > Quoting Michael Niedermayer (2024-01-30 01:15:54) > > > Self-imposed restrictions like these at the very least need a GA vote > > > IMO. > > > > I dont think its a "Self-imposed restriction" > > The right to arbitrarily reject a invoice to a SoW never existed in the > > first place. > > But lets try this hypothetically. > > If the GA decides it has the right to reject an invoice to a SoW > > signed between SPI/STF/1 Developer. > > Where would the GA get that right from ? > > It can only have gained that right from the SoW/ or a contract > > > > This is the same in GSoC > > if the GA decides a student should not be paid, its not going to > > work, its the mentors decission and googles. > > The GA never gave that right up, it never had it in the first place > > My understanding of your > > There can be no late objections > > [...] > > objections after that cannot be considered! > was that reviewers of the code produced by an STF-funded project would > be restricted from rejecting the patches or demaning large-scale > changes. If that is not what you meant then my point does not apply, but > then this opens the developer to the risk of their code not being > accepted. > > > > > > > > > Also once the person doing the work reaches the agreed milestone. > > > > She will submit an invoice with stefano and my help to SPI/STF. > > > > (in the unlikely case of a dispute on reaching a milestone > > > > it would be decided by the technical committee if the milestone > > > > has been reached from FFmpegs point of view) > > > > > > Unlikely? I believe you are overlooking and/or trivializing the most > > > serious problems that need to be addressed before we can submit any > > > applications and not have it end in disaster. > > > > yes, iam trivializing, i thought people would value a grant of 200k€ > > more than arguing around. > > IMO hasty actions and avoidable drama may cause damage to the project > far in excess of this sum. > > > And sure some arguments are quite valid i just think we can postpone > > what needs to be postponed to get this grant and then for the next > > round we can adjust everything as people prefer (in case there then > > still is any wish to change something) > > > > > > > > > > These are, IMO: > > > > > > 1) How does the project protect itself from pre-approving some code > that > > > does not exist yet? This is not just some theoretical danger, it's > > > easily possible that some project sounds good in theory, but > actually > > > implementing it comes with so many gotchas and caveats that it ends > > > up being not worth it. Or there are fundamental technical > > > disagreements about the specific way it's been implemented. Both > > > cases exist in our history. > > > > Lets see > > First STF is not about features but about maintaince. So the risk > > of really unexpected and unavoidable sideeffects are not that high. > > Also we dont need to do the really tough stuff in STF we can do the > > easy but boring stuff. > > I do not see people queing up for such work. > > > But whats really the problem here ? > > Lets imagine a example we agree to ABC > > and it turns out the implemtation of ABC unexpectedly needs 3 letters > > and this is unacceptable so we dont merge it. > > Personally I would for cases where we arent sure the code is acceptable > > for git master. Make this clear to STF before they accepting it and > > I would not put "merge into git master" in the SoW. > > > > Now if we do put something in the SoW that we then do not achieve > > thats a failure. IIRC/IIUC this is possible but will not be > > tolerated many times. (certainly very dependant also on our > > explanation of why that happened) > > (thats what i remember, i cannot find the mail ATM where we where told > that) > > The question is, what exactly would be the reprecussion for failing to > achieve projects. To us? To SPI? Not to mention the developer not > getting paid. > > > > > > > It's also very hard to accurately estimate the amount of work > > > required to do something. What do we do when someone spends a month > > > working before realizing the project needs 5x more time than it's > > > budgeted for? > > > > use a payment per time SoW. > > But honestly as a buisness partner to STF we should aim for delivering > > what we promisse at the price we request. > > Anything else will not be good for FFmpeg independant of all other things > > So you're basically saying the developers have to take the risk onto > themselves. That's ridiculous and means this cannot be used for almost > any interesting projects. > > As an example, my threading work took over twice the time I initially > expected. Are you suggesting I should have worked a year for free? And > it's not just my personal failing - it's widely acknowledged that > accurate time estimates for complex projects are somewhere between > extremely hard and unfeasible. > > Of course the problem also works in other direction. If we go with your > suggestion, developers will try to protect themselves by playing it safe > and budgeting for the largest amount of time they think they might > possibly need. Which means in most cases they will need less time, > sometimes significantly less. Would STF be okay with us being so > wasteful? > > > > > > > 3) Who exactly will be judging what amount of money is appropriate for > > > what amount of work performed? How will we avoid conflicts of > > > interest, or endless bikesheds over who is getting too much money > for > > > too little work? We just bikeshud a thread to death over rather > > > little money, now imagine what would happen with ten times the > > > amount. > > > > trivial ;) > > we start with a wiki page > > we add a some work with some monetary amount. > > We wait. > > If someone comes and is willing to do it for less, ok, if someone > complains > > its too much, not ok. > > This seems the normal hire the "cheapest competent developer" > > This is not serious. "someone complains"? Like any random person? Any > developer? In a project like ours, someone will always complain. Does > that mean anyone has a veto over anything else? > > Besides, my main point is that the amount of work to be done on any > interesting cleanup is unknowable beforehand. That means you have to > budget for the worst case, which means in the median case you will be > significantly overpaid. > > -- > Anton Khirnov > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
next prev parent reply other threads:[~2024-01-31 14:10 UTC|newest] Thread overview: 123+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-01-28 3:25 Michael Niedermayer 2024-01-28 15:54 ` Kieran Kunhya 2024-01-28 17:12 ` Michael Niedermayer 2024-01-28 18:59 ` Kieran Kunhya 2024-01-28 19:20 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-28 19:30 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-28 19:34 ` Kieran Kunhya 2024-01-28 21:18 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-28 21:33 ` Kieran Kunhya 2024-01-29 21:27 ` Anton Khirnov 2024-01-28 20:06 ` Michael Niedermayer 2024-01-28 20:32 ` Kieran Kunhya 2024-01-28 20:34 ` Kieran Kunhya 2024-01-28 20:37 ` Kieran Kunhya 2024-01-28 20:42 ` Kieran Kunhya 2024-01-28 21:47 ` Michael Niedermayer 2024-01-29 18:31 ` Kieran Kunhya 2024-01-29 18:46 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-29 18:54 ` Michael Niedermayer 2024-01-29 19:02 ` Kieran Kunhya 2024-01-29 20:04 ` Michael Niedermayer 2024-01-29 22:54 ` Kieran Kunhya 2024-01-30 9:20 ` Tomas Härdin 2024-01-28 21:34 ` Michael Niedermayer 2024-01-28 21:39 ` Kieran Kunhya 2024-01-29 2:26 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-29 14:52 ` Derek Buitenhuis 2024-01-29 15:02 ` Kieran Kunhya 2024-01-29 15:05 ` Derek Buitenhuis 2024-01-29 16:40 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-29 17:05 ` Kieran Kunhya 2024-01-29 17:27 ` Michael Niedermayer 2024-01-29 17:36 ` Kieran Kunhya 2024-01-29 17:43 ` Rémi Denis-Courmont 2024-01-29 18:11 ` Michael Niedermayer 2024-01-29 21:01 ` Rémi Denis-Courmont 2024-01-29 22:43 ` Michael Niedermayer 2024-01-30 6:30 ` Rémi Denis-Courmont 2024-01-30 17:15 ` Michael Niedermayer 2024-01-30 18:00 ` Michael Niedermayer [not found] ` <A40E9FF7-EC74-458A-A195-26EE8062992E@cosmin.at> 2024-01-29 22:23 ` Cosmin Stejerean via ffmpeg-devel 2024-01-29 22:31 ` Kieran Kunhya 2024-01-30 10:12 ` Nicolas George 2024-01-30 10:19 ` Kieran Kunhya 2024-01-30 10:31 ` Nicolas George 2024-01-30 10:44 ` Kieran Kunhya 2024-01-30 10:46 ` Nicolas George 2024-01-30 10:53 ` Kieran Kunhya 2024-01-30 11:47 ` Anton Khirnov 2024-01-28 19:17 ` Rémi Denis-Courmont 2024-01-28 20:33 ` Michael Niedermayer 2024-01-29 14:38 ` Derek Buitenhuis 2024-01-29 18:25 ` Michael Niedermayer 2024-01-29 18:37 ` Derek Buitenhuis 2024-01-29 19:21 ` Michael Niedermayer 2024-01-29 20:09 ` Vittorio Giovara 2024-01-29 20:15 ` Derek Buitenhuis 2024-01-30 6:48 ` Rémi Denis-Courmont 2024-01-29 20:19 ` Anton Khirnov 2024-01-29 20:20 ` Derek Buitenhuis 2024-01-29 20:36 ` Vittorio Giovara 2024-01-29 21:27 ` Michael Niedermayer 2024-01-31 11:19 ` Anton Khirnov 2024-01-29 20:41 ` Diederick C. Niehorster 2024-01-29 21:19 ` Anton Khirnov 2024-01-29 21:11 ` Anton Khirnov 2024-01-29 23:41 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-29 23:53 ` Stefano Sabatini 2024-01-31 12:30 ` Anton Khirnov 2024-01-31 21:26 ` Stefano Sabatini 2024-01-30 0:15 ` Michael Niedermayer 2024-01-30 0:19 ` Michael Niedermayer 2024-01-31 12:59 ` Anton Khirnov 2024-01-31 14:10 ` Jonatas L. Nogueira via ffmpeg-devel [this message] 2024-01-31 15:17 ` Anton Khirnov 2024-01-31 15:17 ` Kieran Kunhya 2024-01-31 16:00 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-31 16:03 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-31 16:10 ` Rémi Denis-Courmont 2024-01-31 17:04 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-31 18:03 ` Michael Niedermayer 2024-01-31 18:22 ` Kieran Kunhya 2024-01-31 18:40 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-31 18:48 ` Kieran Kunhya 2024-01-31 19:07 ` Michael Niedermayer [not found] ` <A7F30D96-F8DB-45EA-9CDB-3545E3ECE0C9@cosmin.at> 2024-01-31 19:16 ` Cosmin Stejerean via ffmpeg-devel 2024-01-31 20:19 ` Kieran Kunhya 2024-01-31 21:43 ` Michael Niedermayer 2024-01-31 21:54 ` Kieran Kunhya 2024-01-31 22:40 ` Michael Niedermayer 2024-01-31 22:45 ` Kieran Kunhya 2024-02-02 13:52 ` Michael Niedermayer 2024-02-02 13:58 ` Kieran Kunhya 2024-01-31 19:20 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-31 17:58 ` Michael Niedermayer 2024-01-31 23:15 ` Stefano Sabatini 2024-02-01 0:16 ` Stefano Sabatini 2024-02-06 0:00 ` Jonatas L. Nogueira via ffmpeg-devel 2024-01-30 1:48 ` Michael Niedermayer 2024-01-30 9:32 ` Vittorio Giovara 2024-01-30 10:07 ` Nicolas George 2024-01-30 10:13 ` Vittorio Giovara 2024-01-30 10:15 ` Nicolas George 2024-01-30 10:56 ` Vittorio Giovara 2024-01-31 1:07 ` Michael Niedermayer 2024-01-31 21:44 ` Derek Buitenhuis 2024-01-31 21:55 ` Kieran Kunhya 2024-01-31 23:07 ` Michael Niedermayer 2024-02-01 17:59 ` Anton Khirnov 2024-02-01 18:14 ` Rémi Denis-Courmont 2024-02-01 22:55 ` Michael Niedermayer 2024-02-05 10:21 ` Michael Niedermayer 2024-02-05 11:53 ` Kieran Kunhya 2024-02-05 13:10 ` Zhao Zhili 2024-02-01 19:22 ` Derek Buitenhuis 2024-02-04 9:49 ` Rémi Denis-Courmont 2024-02-04 10:02 ` J. Dekker 2024-02-04 10:09 ` Paul B Mahol 2024-02-04 13:41 ` Michael Niedermayer 2024-02-04 14:38 ` Rémi Denis-Courmont 2024-02-04 19:28 ` Michael Niedermayer 2024-02-04 21:21 ` Rémi Denis-Courmont 2024-04-12 23:43 ` Thilo Borgmann via ffmpeg-devel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to='CALE=2=_C1WxFjOwUB1PXiL9G-hnukBxzpDsW70T1NY-s+1wqMg@mail.gmail.com' \ --to=ffmpeg-devel@ffmpeg.org \ --cc=jesusalva@spi-inc.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel This inbox may be cloned and mirrored by anyone: git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \ ffmpegdev@gitmailbox.com public-inbox-index ffmpegdev Example config snippet for mirrors. AGPL code for this site: git clone https://public-inbox.org/public-inbox.git