On Fri, 11 Nov 2022 at 02:34, Demi Marie Obenour <demiobenour@gmail.com> wrote:
On 11/10/22 21:02, Gary Buhrmaster wrote:
> On Fri, Nov 11, 2022 at 12:52 AM Stephen Smoogen <ssmoogen@redhat.com> wrote:
>> On Thu, Nov 10, 2022 at 18:55 Neal Gompa <ngompa13@gmail.com> wrote:
>>>
>>> I sympathize greatly here. It was a pain to wire up "logout" to the
>>> "relogin" property in updateinfo (the field had been in bodhi for a
>>> decade and nobody wired it up to the appropriate rpm metadata field!).
>>> Bodhi is an unusually difficult codebase for what it does.
>>>
>>
>> From what I can tell is that every time someone says that and then tries to fix it they find about 20 reasons why the code is not complex enough for all the corner cases and “obvious” requirements that people expect of it
>>
>
> The code is both too complex, and nowhere near complex
> enough.
>
> I really dislike code like that.
Time for some serious refactoring?


You can only refactor it when you have a steady set of requirements. The code has been 'refactored' at least 4 times but what happens is that you will get into about 1/3rd of the way into it and find you have now to add a bunch of new requirements. You will still have to keep the old ones working also because of older releases. OK you have gotten to adding that and you find that the business logic has a major flaw in it that FPC and FESCO need to explain when they said 'SHOULD' in something, did they want it enforced in Bodhi or not.. oh wait it turns out they both disagree with each other. OK go do some other refactoring while that works out. Oh look another conflict and you now have to refactor in that the message bus is changed AND now you need to add in containers in 3 different formats made by different tools. And look 3 new tools need to be added into the logic. And two parts of the things you were told you had to call out to no longer exist.. 

And crap we are in freeze so nothing changes except fixing the little bugs you can. Freeze is over, deploy the stage and find out that production and stage don't match well enough because there isn't enough resources in people, time and servers to do a 1:1 stage/product environment. Crap crap crap.. need to get it all working before the mass rebuild.. put off all the refactoring for another month. Oh new requirements to add in.

Repeat every 3-6 months until you are reassigned to a different project.


--
Stephen Smoogen, Red Hat Automotive
Let us be kind to one another, for most of us are fighting a hard battle. -- Ian MacClaren