Auto Commit



  • Someone nearby just had this problem.

    There is a rules engine. The rules are edited with a GUI by end users. There is a big Save Changes button on the face of the application, that becomes red when there are unsaved changes. Next to it is a dropdown list consisting of "Dev", "Test", "QA" and "Prod", and yes, it does exactly what you think it does.

    It's supposed to only permit saves to the production rule db under certain circumstances.

    Someone guy was requested to make a change to the tool to auto-commit the rules - in whatever state they were in - to the currently selected db, every 10 minutes, when he inadvertently commented something out. This enabled the Production option on the dropdown.The tool passed QA because nobody ever tried to save to the production db.

    Naturally, the end users saw the new db choice, and wanted to work with the latest data, so they selected production.

    Then, as they were making changes, the code was dutifully saving the inconsistent incoherent change, to the selected (production) db.

    Thankfully, we noticed the log entries showing rule updates in production. Fortunately, the application only loads the rules at startup, and so wasn't affected by the crap being dumped to the db. We were able to roll back in time.

    The feature is being removed as we speak.

    Doh!



  • :twitch: Dodged a bullet there ...



  • That sounds like a terrible feature; it practically guarantees you'll get inconsistent rules. True, it's only supposed to happen in the development environment, but that can still cause lots of problems. I'm also surprised your rule editing app doesn't have any kind of access control; anyone who can edit in development or QA can commit to production? WTF?



  • @morbiuswilters said:

    That sounds like a terrible feature; it practically guarantees you'll get inconsistent rules. True, it's only supposed to happen in the development environment, but that can still cause lots of problems. I'm also surprised your rule editing app doesn't have any kind of access control; anyone who can edit in development or QA can commit to production? WTF?

    I'm guessing there was a rule there to prevent that, but this was the one that was commented out and then joyfully commited.



  • @snoofle said:

    We were able to roll back in time.
    The 80s were awesome!

    Yeah, I've got nothing else to add to the conversation, sorry.  Please continue.



  • @snoofle said:

    Someone guy was requested to make a change to the tool to auto-commit the rules - in whatever state they were in - to the currently selected db, every 10 minutes, when he inadvertently commented something out. This enabled the Production option on the dropdown.The tool passed QA because nobody ever tried to save to the production db.
     

    Maybe I'm being ignorant here, but wouldn't it be better to save the data every 10 minutes, rather than commit them? And, like others suggested, have some sort of revision control?

     



  • @Severity One said:

    Maybe I'm being ignorant here, but wouldn't it be better to save the data every 10 minutes, rather than commit them? And, like others suggested, have some sort of revision control?

     

    Sure, on planet Utopia. Nasa needs to get their act together so we can all go there in our lifetime.

     



  • @All: The reason for the auto-save/commit was that the users would work for hours and then forget to hit the big red button (finally, a time when you want them to press the button and they can't be bothered - maybe if they changed the label from SAVE to DO NOT PRESS).

    Yes, it's stupid to save in the middle of a logic change as the stuff in the db is absolutely inconsistent, but it's what they wanted.

    Not my project.

    I just get to listen to the grief they endure.

    Interestingly, my project - a world-o-wtf if ever there was one - is much better - maybe that's why I don't mind this place as much as I ought?

     



  • @snoofle said:

    @All: The reason for the auto-save/commit was that the users would work for hours and then forget to hit the big red button (finally, a time when you want them to press the button and they can't be bothered - maybe if they changed the label from SAVE to DO NOT PRESS).

    "You have unsaved changes. Blah blah blah..."

    For the systems I've built, the rule generation app is separate from the rule management app. So, basically, you build the rules and can save "locally" any time you want to checkpoint your work. Once done, the rules are submitted for deployment to QA where they are run against a battery of automated test cases (to make sure rule changes haven't introduced logic errors) before going through acceptance testing and then being deployed separately to production. The rule management also gives the ability to apply certain sets of rule to certain time periods or user accounts or several other situations.. Basically, each system is independent and the rules are simply exported as XML and imported into a different environment, thus giving lots of people the ability to edit rules but few the ability to deploy for testing and even fewer to deploy to production. I realize that you don't have the ability to re-implement the entire process, but I've found it works very well.



  • @morbiuswilters said:

    For the systems I've built...

    ... you have (or someone has) understood business process workflow, proper stakeholder analysis to document the roles and responsibilities expected of those participating in such activities and coded a system to facilitate that process.

    i.e.... something that seems to be missing in snoofle's organisation. Many design decisions seem to occur as a fundamental lack of understanding the processes they support, lack of stakeholder engagement (leading to mismatched roles/responsibilities) and process circumvention due to overlooked exceptions[1].

    Or lack of time, money... the usual constraints that results in poor-quality products.

    [1] extensions to the happy path; deviation from the normal workflow. Not "coded exceptions".



  • @Cassidy said:

    @morbiuswilters said:

    For the systems I've built...

    ... you have (or someone has) understood business process workflow, proper stakeholder analysis to document the roles and responsibilities expected of those participating in such activities and coded a system to facilitate that process.

    i.e.... something that seems to be missing in snoofle's organisation.

    Yeah, I just said all of that to make snoofie feel sad for his own situation. I mean, it's true, but the reason I brought it up was to make him envious.

    And for the record, I did all the requirements gathering, software architecting and programming myself.


  • ♿ (Parody)

    @morbiuswilters said:

    I mean, it's true, but the reason I brought it up was to make him envious.

    +1 for correct use of "envious" and not saying "jealous."


  • BINNED

    @boomzilla said:

    @morbiuswilters said:
    I mean, it's true, but the reason I brought it up was to make him envious.

    +1 for correct use of "envious" and not saying "jealous."

    It's a noble sentiment, but you're fighting a loosing battle.



  • @PedanticCurmudgeon said:

    but you're fighting a loosing battle.
     

    Loosening.

     

    So, what does it loosen?


  • BINNED

    @dhromed said:

    @PedanticCurmudgeon said:

    but you're fighting a loosing battle.
     

    Loosening.

     

    So, what does it loosen?

    You know how I know you didn't read the tag?

    The losing battle, for those who need it explicitly stated, is trying to get people who can't even spell "lose" correctly to choose words that precisely express their meaning.



  • @PedanticCurmudgeon said:

    You know how I know you didn't read the tag?

    The losing battle, for those who need it explicitly stated, is trying to get people who can't even spell "lose" correctly to choose words that precisely express their meaning.

    I still don't get it, please explain your joke some more in excruciating detail.


  • ♿ (Parody)

    @blakeyrat said:

    http://www.youtube.ug/watch?v=aIbMWzeGORQ#t=21m20s

    Wow. A Ugandan TLD. What will they think of next?



  • @boomzilla said:

    @blakeyrat said:
    http://www.youtube.ug/watch?v=aIbMWzeGORQ#t=21m20s

    Wow. A Ugandan TLD. What will they think of next?

    Whatever. I google the video, the video comes, I care not for URLs!



  • @PedanticCurmudgeon said:

    You know how I know you didn't read the tag?
     

    I read the tag.

    It appears you didn't notice I double-joked you.


  • BINNED

    @dhromed said:

    @PedanticCurmudgeon said:

    You know how I know you didn't read the tag?
     

    I read the tag.

    It appears you didn't notice I double-joked you.

    No, but I did manage to annoy Blakey, so there's always that.



  • @PedanticCurmudgeon said:

    @dhromed said:

    @PedanticCurmudgeon said:

    You know how I know you didn't read the tag?
     

    I read the tag.

    It appears you didn't notice I double-joked you.

    No, but I did manage to annoy Blakey, so there's always that.

    A butterfly flaps its wings in some Indian Call Center, and that annoys Blakey. (Aside -- one of my coworkers and my spouse and his girlfriend went to a museum last weekend, and when we got to the stuffed pangolin on display, I said "And in this exhibit, we have the BlakeyRat." Both other people did the Fry "Not sure if" face. He and I laughed, especially after I threatened to poke it with a stick to hear its rant.)

    This one's my favorite grammar rant. Hyperbole and a half -- the Alot. I wish someone would make an Alot I could keep in my cube. "You like this Alot? Huh? Is this the Alot you're talking about?" If only I cared enough to learn to sew fake fur.



  • @tweek said:

    (Aside -- one of my coworkers and my spouse and his girlfriend went to a museum last weekend, and when we got to the stuffed pangolin on display, I said "And in this exhibit, we have the BlakeyRat." Both other people did the Fry "Not sure if" face. He and I laughed, especially after I threatened to poke it with a stick to hear its rant.)

    Man, Blakeyrat is living rent-free in your head.

    @tweek said:

    Hyperbole and a half -- the Alot.

    What does Hyperbole and a Half have to do Blakey?


Log in to reply