• Sam (unregistered)

    IMHO: VP/CTO/Salesman = bad place to work.

  • (cs)

    This gives a whole new meaning to "DLL Hell"

  • Brian (unregistered)

    Alex Papadimoulis:
    It's also his job to do what the client wants, even when it goes against his advice, and then gracefully apologize without a single "told ya' so" when the client's plan goes terribly wrong.

    As a contractor, yeah. As a consultant, no. I'm not in the business of working on obviously-doomed-to-fail projects. 

  • (cs)
    Alex Papadimoulis:
    That, for the most part, ended their working relationship. Josh agreed to maintain the code he developed for the old FoxPro application and silently watch the VP/CTO/Salesman lead the redevelopment effort. It was quite a show.


    Sorry, for me that would end the working relationship in a "Get bent, asshole" manor, in which I would refuse to maintain any of their code.
  • Otter (unregistered)
    Alex Papadimoulis:

    (a single 68k DLL)

    For a few moments there, I was wondering how they were getting this to run on an old Mac, or an Amiga.
     

  • Christophe (unregistered)

    To paraphrase one of my college profs:

    Engineering is the art of doing for $99 what any idiot can do for $30,000.

    I'm sorry, did I just drastically underestimate that last dollar amount?

  • anonymouse (unregistered)
    Alex Papadimoulis:

    I've been talking with another developer. He says that with C#, we don't need DLLs and that, unlike your precious FoxPro, .NET does not have a runtime!

    My previous boss was a notch below. He could only think terms of EXEs. 

    "I want to see your program run.......hmmm... there is no exe.....how is it running ?........... you are not interested in your work....."
  • Anonymous (unregistered)

    They should've gone with XML.

  • (cs)

    Alex Papadimoulis:
    How could anyone turn him down?

    Instinct of self preservation, maybe?

  • JL (unregistered)
    Alex Papadimoulis:

    .NET doesn't have a runtime; it has a "Framework".

    Ouch.  Potato, potato.  Tomato, tomato... Hmm, this doesn't work as well in text.

    Interesting note: The Microsoft download page for .NET 1.1 contains the word "framework" but not the word "runtime".  The 2.0 page, on the other hand, contains both words.  So I guess 2.0 got a "runtime".  Either way you slice it, both are chock-a-block with dlls.  Maybe they'll all be OS dlls eventually, but most of his existing customers will have to download them.

  • Hit (unregistered)

    I can't count how many times I've dealt with a variation of this.

    There time old question of "Buy vs. Build".  Too many managers out there seems to always be on a "build build BUILD!" mentality.  For whatever reason, developers  are apparently "free".  No way I'm purchasing that $50 component when I can have a developer make my own...for FREE!

    Great, someone might say.  More work for you, the developer.  Well, if you're a GOOD developer, then this will bother you, since you know you're essentially wasting a ton of time writing an inferior version of something that someone else has already done.  

  • Rob Sirloin (unregistered)

    hahaha.

    I'm really enjoying all of these story wtfs. But is his last name really "Assing", or is that made up to protect the innocent?

     

    Captcha: photogenic - I certainly am:) 

  • (cs) in reply to Otter
    Anonymous:
    Alex Papadimoulis:

    (a single 68k DLL)

    For a few moments there, I was wondering how they were getting this to run on an old Mac, or an Amiga.
     

    When are you going to join us in the 21st century?! Sounds like your just too much in love with your old Macs and Amigas! 

  • Willbo (unregistered) in reply to Rob Sirloin
    Anonymous:

    hahaha.

    I'm really enjoying all of these story wtfs. But is his last name really "Assing", or is that made up to protect the innocent?

     Captcha: photogenic - I certainly am:) 



    I had a first post commenting on that fact... I read the first sentence like "Ass a consultant, Josh Assing's role is to assass problems"

    I guess it wasn't popular. /cry

    -- W
  • (cs) in reply to JL
    Anonymous:

    Maybe they'll all be OS dlls eventually, but most of his existing customers will have to download them.



    Fortunately, there won't be that many.  He's already lost most of his customers.   Well, a significant amount of business.  Doesn't surprise, but does sadden.

  • (cs) in reply to Rob Sirloin

    This reminds me of my last project. In order to avoid the cost of buying a $10K tool, our CTO decided to build our own. Now, I'm all for a good dev project, mind you. However, it took six of us 8 months to get it done. Let's see, that's 4 man years, and we collectively make substantially more than $2500/year, not to mention the opportunity cost.

    *sighs*

  • grud (unregistered)

    best in show! helluva article boys.

  • RNH (unregistered) in reply to Hit
    Anonymous:
    I can't count how many times I've dealt with a variation of this.

    There time old question of "Buy vs. Build".  Too many managers out there seems to always be on a "build build BUILD!" mentality.  For whatever reason, developers  are apparently "free".  No way I'm purchasing that $50 component when I can have a developer make my own...for FREE!

    Great, someone might say.  More work for you, the developer.  Well, if you're a GOOD developer, then this will bother you, since you know you're essentially wasting a ton of time writing an inferior version of something that someone else has already done. 
     

    You're not thinking like a manager. Developers are free because they've already been budgeted for.  A $50 component is outside the current budget and thus requires justification to the higher-ups.
  • (cs) in reply to Sam
    Anonymous:

    IMHO: VP/CTO/Salesman = bad place to work.

    Actually, I work for one of those guys.  Except, unlike today's WTF, he's not completely fucking insane.  It's great, because I have no degree, and little professional experience (but tons of off-the-job and internship experience) --  I started here at age 21 -- and yet am able to take on lots of responsibility, and lead projects.

     
    At any larger company, I'd never have been able to acrue so much experience in so little time.

    With out a doubt, working in such a small company is definitely a risk -- *most* of the time, you're probably going to end up with a nutjob for a boss, but if you get lucky, you're golden.
     

  • (cs)
    Alex Papadimoulis:

    .NET doesn't have a runtime; it has a "Framework". Maybe you should join us in the 21st Century and get your head out of the FoxPro sand. You'd probably learn something.

     That's when I say:

    "Well, maybe you should join us in reality instead of making technical decisions for things you don't know anything about!"
     

    Was this guy's attitude really that bad? I hope I never have to work for someone like that VP/CTO/Salesman.

  • (cs) in reply to R.Flowers
    R.Flowers:
    Anonymous:
    Alex Papadimoulis:

    (a single 68k DLL)

    For a few moments there, I was wondering how they were getting this to run on an old Mac, or an Amiga.

    When are you going to join us in the 21st century?! Sounds like your just too much in love with your old Macs and Amigas! 

    Don't be so quick to trash those old boxes...

    I recently had the opportunity to chat with one of the senior people at my savings bank. He knew I am in "computers" via a mutual friend, so he thought I might be able to help him with a (personal) computing problem. It was pouring cats-n-dogs and I had nothing better to do that day, so I figured what the heck.

    As we go into the guy's office, something catches my eye. It was an original IBM PC off to the side, with dual full-height 160K floppies and the green-screen monitor, and it was actually running a DOS 1.1 application. I *had* to go investigate. Apparently, the thing simply worked, and never needed upgrading, so they just turn it on every morning, autoexec fires up the .com, and it runs until someone shuts the power. It turned out to be a Turbo-Pascal 3.01 25K program. It doesn't use dates in any way, so they just set the date waaaay back in time (I'm thinking Y2K might have done in the BIOS), and it keeps on working.

    Of course, they've got modern systems too, but I found it fascinating that they still used this thing.

    Apparently, if it works, it stays.

  • (cs)

    While this is clearly a big fat WTF, it's worth noting that far too often, the opposite happens:  people choose to bundle dozens of their favorite pet third-party offerings when (A) it would have taken less than one day to write it in-house, and (B) the third-party offering has a terrible, even inscrutable API.  As with pretty much everything, a wise programmer learns to strike a balance.

    A major component of that wisdom is understanding the high cost of dependencies.  Code with few or no outside dependencies is dramatically more portable and reusable.  It's something I always bear in mind when I decide whether to use a third-party offering.  I wish more programmers considered it.

  • Dazed (unregistered)
    Alex Papadimoulis:
    The VP/CTO/Salesman blew up:

    You're joking, right? Another DLL!?! There's absolutely no reason for that. I'm sick of all of these add-ons!

    ... [snip 5 minutes of ranting] ...

    I've been talking with another developer. He says that with C#, we don't need DLLs and that, unlike your precious FoxPro, .NET does not have a runtime!

    Josh tried to explain to him that .NET does, in fact, use DLLs. He agreed that .NET is an excellent choice, but that redeveloping would be significantly more expensive than the $99 component fee. He also added that .NET would, in fact, have a rather large runtime of twenty-five megabytes compared with FoxPro’s three megabytes. Naturally, the VP/CTO/Salesman disagreed.

    When you get into this sort of discussion with someone who is madly barking up the wrong tree - in fact in completely the wrong forest - about all you can do is back out gracefully ("I'll go and research it a bit further') and go look for something that he can't so easily dismiss as just your opinion. Like a printed directory listing of the .NET DLLs.

    I don't claim to be an expert at it, but I have on a couple of such occasions been subsequently assured by the manager in question "oh, I wasn't really disagreeing with you ..."

  • anonymous (unregistered) in reply to GoatCheez
    Alex Papadimoulis:

    .NET doesn't have a runtime; it has a "Framework". Maybe you should join us in the 21st Century and get your head out of the FoxPro sand. You'd probably learn something.

     

    CLR: Common Lenguaje fRamework.

  • (cs) in reply to Hit

    Hit:


    There time old question of "Buy vs. Build".  Too many managers out there seems to always be on a "build build BUILD!" mentality.  For whatever reason, developers  are apparently "free".  No way I'm purchasing that $50 component when I can have a developer make my own...for FREE!

     Now don't be too hasty to say "It's always better to buy than to build your own."  Sometimes, not always, the only components available for purchase are just downright terrible.  In this case, and assuming (!) you have some good developers working for you, it just might make sense to build your own.  It's a dramatic oversimplification to compare $99 for an off-the-shelf component with $300,000 spent developing it in-house.

    http://www.joelonsoftware.com/articles/fog0000000026.html

    http://www.joelonsoftware.com/articles/fog0000000007.html

    The quote at the end of this second article is one of my favourites: paraphrasing slightly: "The only exception to this rule [of doing all of your core business functions in-house] is if your own developers are so bad that whenever you try to build something yourself, it's botched up."  This, of course, sounds suspiciously like Josh's case... 

  • (cs)

    The real WTF is that Josh gave in and agreed to play everyone's doormat. I just hope he at least charged them big time for this screaming farce.

  • (cs) in reply to VGR
    VGR:

    While this is clearly a big fat WTF, it's worth noting that far too often, the opposite happens:  people choose to bundle dozens of their favorite pet third-party offerings when (A) it would have taken less than one day to write it in-house, and (B) the third-party offering has a terrible, even inscrutable API.  As with pretty much everything, a wise programmer learns to strike a balance.

    A major component of that wisdom is understanding the high cost of dependencies.  Code with few or no outside dependencies is dramatically more portable and reusable.  It's something I always bear in mind when I decide whether to use a third-party offering.  I wish more programmers considered it.

     

    That reminds me of a consultant who insisted we should use Spring MVC framework for...dynamic classloading.

    Eventually we managed to convince him that it takes about a dozen lines of code to write it as opposed to the 18 megs (37 with dependencies) of Spring. It took half a day for the three of us, showing him the code that had been running in one of our systems for over a year without any problems. He then admitted that he knew nothing of Java. Apparently he simply grepped the product specs of third-party libraries stored in his head for the string "dynamic classloading"
     

  • (cs)

    Once again a real world scenario.  A manager with no experience and a jaded view of a developer.  A budget driving the manager to ask for constraints that defy logic and the need to be in charge. sound familiar? it's also known as FUBAR.

  • (cs) in reply to Christophe
    Anonymous:

    Engineering is the art of doing for $99 what any idiot can do for $30,000.

    In accordance with the last paragraph of the story, that should be:

    Engineering is the art of doing for $99 what any idiot can't do for $30,000.

  • SomeCoder (unregistered) in reply to VGR
    VGR:

    While this is clearly a big fat WTF, it's worth noting that far too often, the opposite happens:  people choose to bundle dozens of their favorite pet third-party offerings when (A) it would have taken less than one day to write it in-house, and (B) the third-party offering has a terrible, even inscrutable API.  As with pretty much everything, a wise programmer learns to strike a balance.

    A major component of that wisdom is understanding the high cost of dependencies.  Code with few or no outside dependencies is dramatically more portable and reusable.  It's something I always bear in mind when I decide whether to use a third-party offering.  I wish more programmers considered it.

     

    This is so true.  Where I work there is a fellow developer who constantly litters his projects with 3rd party crap.  All of it is free, but God help you if you have to build one of his projects.  It's so cluttered up that it ONLY builds on his machine and usually takes an entire day of searching for, and installing all the 3rd party tools just to build the application.

    This developer is really a pretty good guy and codes reasonably well but this facination with 3rd party tools can be really irritating.

    As for the subject of large projects buy vs build... well my company just bought a project that we really should have just built from the ground up.  It's a huge WTF in itself...

  • Builder (unregistered) in reply to Hit

    Anonymous:
    I can't count how many times I've dealt with a variation of this.

    There time old question of "Buy vs. Build".  Too many managers out there seems to always be on a "build build BUILD!" mentality.  For whatever reason, developers  are apparently "free".  No way I'm purchasing that $50 component when I can have a developer make my own...for FREE!

    Great, someone might say.  More work for you, the developer.  Well, if you're a GOOD developer, then this will bother you, since you know you're essentially wasting a ton of time writing an inferior version of something that someone else has already done.  

    I like the people who buy stuff out of the box and then hack it all to hell to make it work with their unique situation. Most of the time they give up flexibility in their process to adapt to that boxed solution, and then complain about how they were able to do something in the past that they can no longer do now. Unless that box came with source and documentation, it's only saving you an initial investment and gaining you more long term maintenance.

    Why build over buy? Because if you can build it right the first time you can shape it exactly how you want it to work, and you don't have to make any compromises. Of course there's always exceptions, like buying a program to make a graphic change colors... but chances are if it only cost 10 or 100 bucks to begin with.. it's not that unique or complicated to code, or there's already an open version of it running around. 

  • (cs) in reply to Builder
    Anonymous:

    I like the people who buy stuff out of the box and then hack it all to hell to make it work with their unique situation.

    They just try to think out of the box. The box their brains were delivered in, that is.
     

  • (cs) in reply to biziclop
    biziclop:

    They just try to think out of the box. The box their brains were delivered in, that is.

    The ones with the Burger King logo?

  • KattMan (unregistered) in reply to Builder

    Buy versus build?  It really is an easy question.

    Never buy something you can't try a demo of first.  If the demo does what you need without compromising functionality it's a vote for buy.  If the component comes with decent documentation it's a vote for buy.  If a component comes with very strict liscecing terms (x amount per machine per processor) this cost can skyrocket fast on a distributed system depending on where it is used in that system.

    Basically, if the component can do what you want it to cheaply, then buy, otherwise build.

  • (cs) in reply to Rob Sirloin
    [At] first, the VP/CTO/Salesman decided to go with a Java-desktop application. The .NET programmers he hired to do this built
    This is the WTF.
  • my name is missing (unregistered) in reply to SomeCoder

    I once briefly worked on a project that had custom online store written all over it, maybe 6 months at the most work for 3 people. However some ibm sales guy convinced the head guy (not tech saavy) that their web catalog product was customizable. So after 40 developers and 8 months later (including a dozen ibm folks) from 3 countries flown in every week to Mexico they finally tossed everyone out and then spent 2 more years with local staff trying to completely customize a package whose only customizable feature was ... colors and fonts and such. How to turn $300,00 into $3,000,000 and go out of business in the process.

  • Jimbo (unregistered)

    Wow. This story has way more than one WTF. This is a Composite WTF design pattern. Someone should write a book. Instead of the GOF, the GOWTF. Normally I laugh at the dailty WTF. Today I actually felt bad for the guy. Sheez.

  • mastmaker (unregistered)

    Hope "join us in 21st century" becomes a new legend as much as "brillant", for example. We can certainly do with a few more of those.

  • (cs) in reply to Rob Sirloin

    "I'm really enjoying all of these story wtfs. But is his last name really "Assing", or is that made up to protect the innocent? "

    Does http://jassing.com/ answer your question? :-)

  • (cs) in reply to RNH

    Anonymous:
    A $50 component is outside the current budget and thus requires justification to the higher-ups.

    I have often found it's easiest to buy the component yourself and file an expense report. While the higher-ups will complain when you request $50 to buy a component, they don't bat an eye when you spend your money on it and then ask them to reimburse you. I've even been promoted this way.

     

  • Dazed (unregistered) in reply to CDarklock
    CDarklock:

    Anonymous:
    A $50 component is outside the current budget and thus requires justification to the higher-ups.

    I have often found it's easiest to buy the component yourself and file an expense report. While the higher-ups will complain when you request $50 to buy a component, they don't bat an eye when you spend your money on it and then ask them to reimburse you. I've even been promoted this way.

    Indeed - I've been asked to do just that by a fairly senior manager at a large oil company beginning with S. Reason: he could then approve it, whereas otherwise someone else would have to be convinced to approve it. A major management anti-pattern.

  • (cs) in reply to GoatCheez

    GoatCheez:
    ...

    That's when I say:

    "Well, maybe you should join us in reality instead of making technical decisions for things you don't know anything about!"

    Since most people like this have an enormous ego, you'll probably have to add, "You can't fire me.  I quit!"

     

  • Anonymous (unregistered) in reply to Builder
    Anonymous:

    Why build over buy? Because if you can build it right the first time ....

    keyword: if 

  • Anonymous (unregistered) in reply to Ghost Ware Wizard

    Ghost Ware Wizard:
    Once again a real world scenario.  A manager with no experience and a jaded view of a developer.  A budget driving the manager to ask for constraints that defy logic and the need to be in charge. sound familiar? it's also known as FUBAR.

    All Hail BOHICA! 

  • Flipside (unregistered) in reply to Dazed

    Actually, I do that same thing myself when I'm the person approving the transaction - it is far easier for me to sign an expense report than to put together a purchase requisition and have it go through the purchasing department. The item in question always gets acquired much more quickly that way as well. It may sound ridiculous or lazy, but I'm sure most people in a position to approve expenditures would agree with this.

  • (cs) in reply to CDarklock
    CDarklock:

    I have often found it's easiest to buy the component yourself and file an expense report. While the higher-ups will complain when you request $50 to buy a component, they don't bat an eye when you spend your money on it and then ask them to reimburse you. I've even been promoted this way.

    What!  You paid for your own raise and then submitted an expense report?


  • (cs) in reply to anonymous
    Anonymous:
    Alex Papadimoulis:
    .NET doesn't have a runtime; it has a "Framework". Maybe you should join us in the 21st Century and get your head out of the FoxPro sand. You'd probably learn something.
    CLR: Common Lenguaje fRamework.

    They really should have called it CR/LF:  Common Runtime / Language Framework.

  • mjo (unregistered) in reply to GeekMessage

    GeekMessage:

    They really should have called it CR/LF:  Common Runtime / Language Framework.

     

     

    Deciding to use CR/LF when everyone else in the world already uses just LF: Priceless. 

  • (cs) in reply to triso
    triso:

    What!  You paid for your own raise and then submitted an expense report?


     

    Now why didn't I think of that at my last salary review?! 

  • (cs) in reply to Brian
    Anonymous:

    Alex Papadimoulis:
    It's also his job to do what the client wants, even when it goes against his advice, and then gracefully apologize without a single "told ya' so" when the client's plan goes terribly wrong.

    As a contractor, yeah. As a consultant, no. I'm not in the business of working on obviously-doomed-to-fail projects. 

     

    Don't know where/what/how you've done consulting before, but I used to work in management consulting.  I think Alex pretty much defined Management Consulting in that quote there.  Maybe consulting in IT works differently - actually I'm sure it does, given that you're actually expected (presumably) to deliver something, be it software or whatever.  

    IMNSHO when a boss hires a management consultant they are often after two things: 1) confirmation that their opinion/course of action is correct, and/or 2) someone to blame when it goes pear shaped.  And they pay hansomly for the priviledge (not that any single consultant will ever see any of that booty).

Leave a comment on “Not Another DLL!”

Log In or post as a guest

Replying to comment #:

« Return to Article