InstantLinqDataSource



  • So a client my company did work for some years back has come to us asking for a bit of assistance. They want to rewrite their main app in C# but they didn't want to pay us (the original designers of said app) to do it, so they hired a team of in-house devs (who I know for a fact are more expensive than us, but I digress). Said devs were having a bit of "trouble" so the client asked us to send a few of our guys over to "supervise". A little more encouraging finally got the client to admit that their super awesome dev team had been working on a be-all end-all application framework, designed around all the buzzwords - TDD, DDD, Agile, Scrum, Entity Framework, etc. The problem was, their devs had spent a year creating the framework but hadn't yet managed to produce a single screen.

    At that point I would've politely ushered the client out the door, but unfortunately I don't make executive decisions. Hence a few unlucky saps got sent to work on-site at this client; they've only been gone 2 weeks and they've already uncovered more WTFs than you can shake a stick at. I thought I'd share one of the most poignant with these forums.

    It's a class called the InstantLinqDataSource. If you know your C#, you'll immediately recognise major WTFs from the class's name, to wit:

    1. The result of any LINQ query can be used as a data source. You don't need to wrap it in another class and bind to that class.
    2. LINQ is not instant; it uses deferred execution, which makes it fast.

    Did I mention this class doesn't even work? One of our devs (with 6 years' experience) spent his entire day trying to get a grid to display data from one of these monstrosities (our guys are forced to use the shit created by the inhouse devs) and he couldn't get it right, and the class's creators are too busy building their framework to help him. And by "building", I mean the equivalent of propping up a 100-metre-high spire with bits of wood and poo and hoping the whole thing doesn't fall over.

    The main pity is that it's such a missed opportunity. If we'd told the client to bugger off, they would've come crawling to us in 6 months' time begging us to fix their "new" system, and we would have been happy to do it... for many times the rate we're currently charging, of course. After all, if you can charge more for stupidity, why not?



  • I think I can predict what's going to happen: C# will fall from grace, and the whole thing will have to be rebuilt in Java. First a team of architects will study the new design and take TWO years to come up with a set of documents no-one can understand but alas don't have any code to show. And there will be a loss of functionality, of course, since such is the price of progress.



  • @The_Assimilator said:

    (our guys are forced to use the shit created by the inhouse devs)
    TRWTF.  How can you be expected to make something work - akin to breathing the divine breath of life into a lifeless lump of dried-up shit - without being able to replace the faulty code?  What a nightmare.



  • @hoodaticus said:

    @The_Assimilator said:

    (our guys are forced to use the shit created by the inhouse devs)
    TRWTF.  How can you be expected to make something work - akin to breathing the divine breath of life into a lifeless lump of dried-up shit - without being able to replace the faulty code?  What a nightmare.
    Well, the in-house devs need something to justify them breathing air and consuming resource for the past year, no?



  • @C-Octothorpe said:

    Well, the in-house devs need something to justify them breathing air and consuming resource for the past year, no?
    Very nicely put!  And refreshing.  Most Americans evolved beyond wit shortly after Lewis and Clark discovered vulgarity, leaving us remarkably unskilled in the art, as Matt Westwood pointed out a couple weeks ago.



  • @TGV said:

    I think I can predict what's going to happen: C# will fall from grace, and the whole thing will have to be rebuilt in Java. First a team of architects will study the new design and take TWO years to come up with a set of documents no-one can understand but alas don't have any code to show. And there will be a loss of functionality, of course, since such is the price of progress.

    Yes, this is how things work. Enteprise Architects take 1 year to create swimlanes and togaf diagrams, then Software Architects take another year to create hundreds of UML documents (no class diagrams of course). Then the programmers take another year to recreate Yet Another Framework, and once the client is about to blow a gasket, a bunch of consultants are hired to save the day. The consultants create a pile of crap that is delivered to QA, who refuse to approve because the test cases and the actual software have no relationship whatsoever. The client overrides the QA decision but the systems guys refuse to deploy the software because it does not use Enterprise Authentication and they send the file to the Office of Security , which makes a quick call to Legal to make sure nothing moves further. Then, and only then, the client gives up and either keep using his bootleg VBA software written by an intern, or open an account on Salesforces.com.

    And everybody think that the other departments suck.


Log in to reply