But I designed it to be performant



  • The person who originally designed and built the product (that I've spent the better part of the past two years fixing) moved on to another new project, where he created the exact same performance and scalability issues (that they're starting to ask me to address). He was then promoted to a purely architectural role (no coding) where he can redesign the whole set of applications as a new and modern Swiss Army Knife application suite, capable of virtually instantaneous response time, regardless of how much data is in the database.

    He built a prototype to demonstrate his concept to the brass. It ran like a crippled snail stuck in molasses on a cold winter day.

    He had it configured to run in a single thread when he was doing development so only one handler was instantiated. When he had to scale it up to 50 handlers for the demo, it ran slwoer than the system it was designed to replace. The brass asked me to take a look:

      public class Handler extends Thread {
    private static Connection dbCon; // instantiated via Spring

    public void run() {
    while (true) {
    // read message from queue
    // crunch a bit
    synchronized (dbCon) {
    // query a bunch of data
    // crunch
    // query a bunch more data
    // crunch crunch
    // save all of it to the database
    }
    }
    }
    }

    When I explained his faux pas, he replied: But I designed it to be performant!



  • I think you've explained it before, but how has this guy not been fired (preferably out of a cannon) again?



  •  @locallunatic said:

    I think you've explained it before, but how has this guy not been fired (preferably out of a cannon) again?

    He builds the systems and gets them to work for 1 or 2 users. The brass are happy that he delivered their new functionality. Then he moves onward and upward, and others are left to clean up the unscalable mess. Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.


  • @snoofle said:

     @locallunatic said:

    I think you've explained it before, but how has this guy not been fired (preferably out of a cannon) again?

    He builds the systems and gets them to work for 1 or 2 users. The brass are happy that he delivered their new functionality. Then he moves onward and upward, and others are left to clean up the unscalable mess. Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.
    I think it's worth investing the time in building a test rig with many concurrent (simulated) users.  Perhaps someone has already done some of the groundwork for you in a framework or library somewhere.




  • @snoofle said:

    Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.

    I believe the common term for someone this has happened to is "manager".



  • @snoofle said:

     @locallunatic said:

    I think you've explained it before, but how has this guy not been fired (preferably out of a cannon) again?

    He builds the systems and gets them to work for 1 or 2 users. The brass are happy that he delivered their new functionality. Then he moves onward and upward, and others are left to clean up the unscalable mess. Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.

    There is nothing wrong with that. Some people are good at coming up with business features, other are better at industrializing them, and often both must painfully make their way to the right place. At some point that POC dude will mostly work on power points and visios, he will have a small sandbox to play with code and build shaky prototypes, and everybody will be happy.



  • @spacecadet said:

    @snoofle said:
    Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.

    I believe the common term for someone this has happened to is "manager".

    More likely: business analyst.



  • @snoofle said:

    He builds the systems and gets them to work for 1 or 2 users. The brass are happy that he delivered their new functionality.

    Ask the brass why they don't care about maintainability.

    @snoofle said:

    Then he moves onward and upward, and others are left to clean up the unscalable mess. Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.

    You're just counting on the Peter Principle to solve the problem? Yikes.



  • @Ronald said:

    @spacecadet said:
    @snoofle said:
    Hopefully one more promotion, and he'll be far enough removed that he won't be able to do any more damage.

    I believe the common term for someone this has happened to is "manager".

    More likely: business analyst.

    Accent on the "anal".

     


Log in to reply