Quick and Effortless



  • So... our data collection system is quite a pain to configure. Mainly because all configuration changes require numerous server reboots (for various reasons outside of our control - thats not the WTF, but it should be).

    One of the simplest (and more common) configuration changes people want to make is changing the database settings. Normally the users have to edit a file, which contains a grand total of 1 line;

    jdbc:mysql://localhost:3306/thedb

    This confuses users. We'll ignore the fact that only system admin's should be messing with this setting, but still.

    So one of my colleagues was assigned to create a config tool. We all had a meeting about it, where we discussed making it nice and easy with checkboxes, etc... He started work.

     

    2 Weeks later he checked in the first version. Strike One.

    It consisted of a Java App which opens the file, and dumps its contents into an edit box. There are no other controls on the screen. Strike Two.

    You have to run the Java App a second time with a command-line to save the changes in the first app. Strike Three.

     

    He's been relieved of that project. It was handed to the most junior member of the team. A day and a half later the junior checked in version 1, with it all done. In version 2.0 he expects to have fixed one spelling mistake and added a graphic.

     

    mod: changed PRE tags to P, you silly user you! -dh



  • @deathy said:

    2 Weeks later he checked in the first version.
     You can stop at that point and fire him :)

     



  • @deathy said:

    You have to run the Java App a second time with a command-line to save the changes in the first app.
     

    Wow. It seems more complicated than sticking a "save" button that writes the contents of the edit box to the file, so I have to wonder: how does it even work?



  • @dargor17 said:

    @deathy said:

    You have to run the Java App a second time with a command-line to save the changes in the first app.
     

    Wow. It seems more complicated than sticking a "save" button that writes the contents of the edit box to the file, so I have to wonder: how does it even work?

     

    That is a very good point - he created an application that can communicate with another instance of its own process!?!? If you'd ask me on the spot how to do that I would start to talk about sockets or JMS.



  • @erikal said:

    @dargor17 said:

    @deathy said:

    You have to run the Java App a second time with a command-line to save the changes in the first app.
     

    Wow. It seems more complicated than sticking a "save" button that writes the contents of the edit box to the file, so I have to wonder: how does it even work?

     

    That is a very good point - he created an application that can communicate with another instance of its own process!?!? If you'd ask me on the spot how to do that I would start to talk about sockets or JMS.

    I am guessing that the first process writes a file and the second process installs this file.

     



  • @Rick said:

    I am guessing that the first process writes a file and the second process installs this file.

     

    Of course, so simple it must be true. I got a bit distracted by the "save the changes IN the first app" part. Thats the trap of interpreting too literally :)



  • @Rick said:

    the first process writes a file and the second process installs this file.
     

    My guess too, but it still seems so convoluted and error-prone that I can't imagine why he would want to do that



  • Extra points if he used Spring xD



  • @deathy said:

    mod: changed PRE tags to P, you silly user you! -dh
     

    I beg to differ - community server sucks. On a positive, thanks for the edit.

    @tchize said:

    @deathy said:

    2 Weeks later he checked in the first version.
     You can stop at that point and fire him :)

     To have the power...

    @dargor17 said:

    @Rick said:

    the first process writes a file and the second process installs this file.
     

    My guess too, but it still seems so convoluted and error-prone that I can't imagine why he would want to do that



    I have no idea why he did this way, to be entirely honest and to save my sanity I never looked at the code. Java isn't one of my major strong suits, but last time I messed with it IPC wasn't exactly easy.

    The current thinking among the rest of us is that he tried several different ways, which is why it took so long, and settled on this method purely because people were starting to ask what the hell was taking so long. It raises the question of why. But we're all of the opinion our heads would explode if he explained it to us.

    The guy is well known for the convoluted format of his work, but since he's a subject-matter-expert for one particular project he's considered "important" to those at the top. Thankfully, he doesn't get allowed anywhere near the important stuff by the rest of us. 

    To be entirely fair to him, he does make the most awesome cup of coffee I've ever had. And his missus cooks the most amazing cakes.

     

     



  • @deathy said:

    Thankfully, he doesn't get allowed anywhere near the important stuff by the rest of us.

    To be entirely fair to him, he does make the most awesome cup of coffee I've ever had. And his missus cooks the most amazing cakes.

    You're doing the right thing.  TRWTF would be allowing the cook near your important production code.


  • @deathy said:

    Mainly because all configuration changes require numerous server reboots (for various reasons outside of our control - thats not the WTF, but it should be).

    I absolutely hate changes that require reboots.

    (cue tale of a hosting company that rebooted my root server after plugging in an external USB disk. There was a reason I paid for the USB option, rather than the internal option. Fuckwits.)



  • @Cassidy said:

    @deathy said:

    Mainly because all configuration changes require numerous server reboots (for various reasons outside of our control - thats not the WTF, but it should be).

    I absolutely hate changes that require reboots.

    (cue tale of a hosting company that rebooted my root server after plugging in an external USB disk. There was a reason I paid for the USB option, rather than the internal option. Fuckwits.)

     

    If only the reboots were because of software... Its more because the configuration changes are applied to hardware devices which are fussy at best - but thats a WTF for another time.

     


Log in to reply