The amazing adventures of Doug Hughes

I had a meeting today with a new client who has been through the ringer. Over and over again. Several years ago he had an idea. And the idea was a good one. So, he spent not- insignificant money to pay a developer to turn the idea into a real website. That worked for a while, but eventually that developer quit working for him.

So, he found another guy in a basement somewhere who said he could do the work. And, again, that worked for a while. But eventually that guy quit too.

So, he found a firm with a lot of developers. This company sounded like it was reputable and sound. But, one day he gets a message from the company saying their last ColdFusion developer quit and that they no longer want to work with him.

All this time, unbeknownst to him, his site has been being hacked together from a mess of other systems and sites. All of this was done via ColdFusion. It’s not pretty under the covers, but it works. Mostly.

Then, his hosting provider, without warning, shut off certain features of ColdFusion on which his site depends.

Now he’s got a poorly built, not completely functional, buggy, ColdFusion site and no developers to help him fix it.

What are his options? He can shut down his business or he can figure out how to make his business work. Well, that’s easy. He decided to make the business work. But, to do that, he has to either fix his website or build a new one.

To make an educated decision he talked to many developers. Each developer he spoke to gave him a different story. The PHP guy pushed PHP. The ASP.NET guy pushed ASP.NET. Etc, etc. Now, of course, developers pushed their technology of choice. It’s what they know. For example, I’m not going to go push Python as a platform. I don’t know it. Why would I? I do, however know ColdFusion, Flex, and other Adobe tools. So that’s what I push.

But, what I admire about this client are the lengths to which he worked to get educated. He talked to many, many developers about the problems he’s having and discussed many different solutions. As would be expected, he also got a lot of misinformation. For example, one developer told him that ColdFusion has a specific upper limit on the number of connections it can have open at once. Anything beyond that, and the server blows up.

Most people reading this blog will know that’s nonsense. But, the thing is, he didn’t know that. Thankfully, he didn’t take it at face value. Instead, he went to the Adobe forums and asked if this was true. And you know what happened? One of us, an Adobe developer, the same class of people who put him in the untenable position he’s in, called him an idiot for even asking.

Meanwhile, he looks to the PHP crowd to learn about an open source CMS that the community has really rallied behind. And his reception there was with great warmth if not great inconsistency.

So, my gripe is this: We’re constantly fighting the impression that ColdFusion is dying. (It’s not.) And we’re fighting the impression that all ColdFusion applications are garbage. (They’re not.) But, when a customer is trying to learn something to help him decide if he should keep using ColdFusion or not, we publicly knock him down a rung? What are we trying to accomplish here?

Comments on: "Don't Kick 'em While They're Down" (7)

  1. Stefan Richter said:

    Guess who’s the idiot.

    What do they say? There are no stupid questions.

    Like

  2. Sammy Larbi said:

    That’s horrible. I can’t stand it when people communicate like that, but as we know, it’s an internet anonymity thing, not specific to CF.

    I agree that we shouldn’t act that way, but on the flip side I have to ask: why did three different developers ditch this client? One might be a coincidence, but that many is starting to show a pattern.

    Like

  3. Eric Hoffman said:

    I would suggest a public flogging of that idiot and and quick erasing of all his CF knowledge so he can “remember when” as a newbie. πŸ™‚

    I too come across this; not to the extreme such as this, but it is a terrific article and reminder. One of our jobs as consultants is to put the client at ease, instill trust in our solution. The CF community as a whole has a duty to treat everyone fact-checking with respect and patience. Remember: one of your fellow developers is probably trying to land a gig.

    Nice work, Doug.

    Like

  4. Doug,
    You have a link to the question posted on the CF boards? I’d like to flame the offending person.

    I can’t blame the client – if you had the same experience in a store you’d never go back there again…ever. I only hope this was an exception within the community, not the rule.

    Cheers,

    David

    Like

  5. Gerald Guido said:

    I hate that sort of elitist mentality with a passion. It give geeks of all shapes and forms a bad name.

    Like

  6. Ben Burwick said:

    I see several interesting topics in this post.

    Regarding kicking people when their down:
    I absolutely agree that we should all promote civility, even when people ask questions that may seem dumb. As is demonstrated here, the question may not be so dumb as we think at first. And even if it is, why not give them a break? Who hasn’t asked dumb questions?

    Regarding the understandable urge to tar and feather the offending developer:
    Perhaps shaming (but not naming) them on a public blog will be enough to change their behavior for the better in the future. I fear that going further and ridiculing them by name could deter them from contributing at all in the future. I’d propose that the goal should be to encourage them to contribute positively, rather than to run them out of town.

    Regarding developers who didn’t stick with the project:
    I don’t see it as an ethical problem for a developer to leave a project, nor as an absolute indication that the client is a bad boss. To me it sounds more likely that the problems are due to inadequate planning, both in terms of management and development. This website is the entrepreneur’s baby, not the developers’. I can’t see anything wrong with an individual moving on with their life. One project does not a career make. The key is that someone (or everyone?) should prepare for eventual personnel changes. You have to assume that some day your developer is going to tell you one of two things. Either “Hey guess what, I got a sweet job offer that I have to take,” or “Hey guess what, I think I’m going to open a bar in Aruba!”. The management should make sure that someone besides the developer knows enough about the project to be able to find a replacement. On the developer’s side, they should make sure that they organize everything so that a new person is able to jump in and understand what’s going on. The guy who wryly confides that his obfuscated Rube Goldberg code provides job security is fooling himself. The guy who writes obfuscated code unintentionally needs to learn how to clean things up — for his own sake as well as everyone else’s.

    Regarding the development company that didn’t stick with the project:
    Without knowing the details, it sounds like the firm took on a management responsibility, and somewhere the ball was dropped. They should have either been ready to replace the CF developer or if they never intended to continue supporting CF, communicated that to the client before the last minute.

    Like

  7. 0I think you may have written this about me πŸ™‚

    I am a guy, very similar to the subject, who has an idea to revolutionize my industry. I hired a student, then another, then a ‘pro’ who left to get a full time job, then a ‘team’ from india, then they sent an email which said their last CF guy was leaving and they had no replacement.

    Why did they leave? Probably because they couldn’t survive on the peanuts I was paying them. But the “pro’s” tell me they want $50,000us for the project and they don’t even want to follow my development approach (I’m compsci, I know what I’m doing).

    Like you readers I don’t have 50 large in my back pocket.

    So, I’ll just continue to muddle along until it’s complete. And it’s gonna be in CF!

    Like

Comments are closed.

Tag Cloud