10 Ways To Fuck Up Your Software Project

We all know that software just writes itself. However, if you are willing to work really hard at it, you can still fuck it up.

Are you the person in charge of executing a large-scale software build? Then you need to know these 10 sure-fire ways to ruin a software project:

  1. Be Vague.

    Always state what you need in as general terms as possible. If your team gives you specific requirements, always rewrite them into more general forms before giving them to developers. Developers love to hone their skills by rewriting the same components over and over again when you tell them it wasn’t what you wanted without first telling them what you wanted.

  2. Ask For Quotes Before Giving Requirements.

    If you have an internal team, you’ll want time estimates. If it’s an external team, you’ll want costs. Either way, insist on those after the briefest possible discussion (nothing in writing) of basic requirements. If they insist on something in writing, don’t write more than can comfortably fit on one side of a napkin. Then hold your developers to those estimates. This ensures that the team spends half their time just finding out what is needed, and the other half doing everything they can to squeeze the work into insufficient time. The result will be a wonderfully crap project with an excitingly low quality ceiling, and general depression and ill-will between all parties.

  3. Always Make Changes After The Plans Are Locked In.

    A professional team will make you pay for late changes, but that is ok. The main thing is to provide significant key changes after the solutions have been architected, thus ensuring that the delivered project will contain plenty of “tacked-on” elements, that it was never designed to incorporate.

  4. Change The Direction of The Business During Development.

    If you are building a product for a certain target market, try to change your market during development, and instruct developers to “keep this in mind”. For example, if you are building an online community for financial planners, change your market to target foreign students instead.

  5. Never Explain “why”.

    Don’t tell your developers why you need this project. Don’t tell them what it will do for its users, or for the business. Avoid sharing details about the reasons why certain features are needed. Thus your developers will be forced to stick to your own scantily-defined requirements as their sole source of knowledge about the purpose of what they are doing. This virtually ensures that you will get exactly what you asked for, rather than what is needed.

  6. Always Hire Non-English-Speaking Teams.

    All developers speak “code” right? By hiring foreign-language developers, you will also save a lot of money, which is really important, because you will need it to pay for the same project 4 or 5 times.

  7. Set The Timetable On Business Objectives, Not Work Involved.

    It is very important to be firm about your timetable. Always insist on having important milestones completed “for the presentation to Jim on the 25th”, rather than actually choosing dates based on the work involved. And try to do this once all the milestone timing has already been set. This is one of the best ways to ensure that each delivery is loaded with bugs, key features don’t work, and the things which do work were done early on, and have thus become unnecessary.

  8. Avoid QA.

    Only bad developers need Quality Assurance checking. If you have a skilled team (and a quick check of their foreign university transcripts can tell you that) then you should not worry about QA. Also, you should insist that if any QA is done at all, it should be done by having the developers check their own work. Don’t let them check each other’s work, as that can sometimes lead to accidental productivity.

  9. Don’t Research Your Needs First.

    One of the more subtle, yet highly effective ways to ensure project failure is to build the wrong solution. If you avoid basic preliminary research, you have a much better chance of crafting a solution that doesn’t take into account your market, your business case, your competitors, or the purpose of the solution. This way, even if a project turns out accidentally successful (it happens) it can still be rendered entirely useless.

  10. Always Leave Things Unfinished.

    You should never fully

If you diligently take these rules to heart, you are almost guaranteed to fuck up your software project. Happy building!

If you think of any other ways to sink a development project, let me know in the comments below.

Excuses, Excuses, Excuses!

Anyone who has ever managed any technical infrastructure will know how important it is to have a ready supply of cryptic and impressive-sounding reasons for why something didn’t get done.

But sometimes, you are just too busy Facebooking to think them up. So here is an automated, randomized excuse generator, that will give you a beautifully-crafted, technically impenetrable error message, perfect for those times when you need to get your boss off your back for just a few more hours so you can finish watching the rest of the season of the original lost Doctor Who episodes from 1964.

Just hit the button to produce another error message:


Customer Service Joys, Part 2

It’s time for another customer service anti-rant! Every now and then, I write about instances of excellent or notable service. A recent example is a long-time provider of search engine optimisation (SEO) tools, HitTail.

I’ve had an account with HitTail for many years now, and have got a lot out of it. They have provided me with a valuable (and very clever) service for some of my clients that I would have been hard-pressed to find anywhere else. In a nutshell, they watch the web searches that lead to my site, and make suggestions of which keywords I should use in my next article or blog post on those sites. The keyword suggestions are sorted by their likelihood of increasing traffic, and therefore whenever I have time to write up a few blog posts, I visit HitTail first and fetch the first few suggestions on the list, which become the subjects of my new posts. Most SEO providers come up with “long tail” keywords by looking at traffic logs for hours and guessing. Using HitTail has allowed me to focus on just a handful of keywords and thus apply my time most effectively, only writing posts for those keywords that sure to generate more traffic.

A while back, HitTail moved from their “freemium” model to a paid model. This is understandable, because each hit on each page of each site of each HitTail customer, generates some processing on the HitTail server and database. That’s a lot of resources, so I wasn’t surprised when they did this. Unfortunately it meant that my account (free in the past) was changed to a limited time trial account. Now I only get around to SEO article-writing once in a while, and so the account expired before I was able to make use of HitTail’s keyword suggestions once last time. I was sent an email explaining that the account had timed out and been deactivated, and that I would need to register for one of the paid products in order to continue using it.

This was a sad day for me, as I had banked up keyword suggestions over the past 6 months or more, and I really didn’t want to loose them. Getting this level of keyword suggestions in any way other than HitTail is really not viable for someone with just a few SEO clients, with a limited budget, and it’s not something that can be coded in-house without a significant software development investment.

Being in the service industry myself, and knowing what I’d do if the situations were reversed, I decided to ask HitTail if they would consider allowing me to make use of the latest keyword suggestions without upgrading to a paid account. Within a few hours, I received a response explaining that they were willing to offer me a FREE account for a year, to allow me to collect those keywords and make use of them. To say that I’m overjoyed with this outcome is an understatement. This kind of customer service is rare these days, and HitTail have now set the bar very high on customer service.

It seems to me that what we see most of the time, are companies that view customer service as a tedious but necessary part of doing business. But occasionally, companies like HitTail come along and turn the model on its head, by viewing customer service as an opportunity to grow their business by actively making – and keeping – customers happy.

Top 20 Obscure Insults For Geeks

Okay, So you wanna geek your speak? Here are 20 (give or take) of the more obscure technical ways to insult someone. How obscure? Well, some you won’t even find on Google – which is just how we like it.

The lights are blinkenflashen but nobody’s home. This is usually applied to a person who has no clue, with no clue that they have no clue. Named after a server response code issued when you try to visit a webpage that simply isn’t there.

Assmosis in action. Used by geeks to describe those people in the office who are continuously sucking up to their superiors in order to absorb their success through “assmosis”.

BFI operator
Brute Force and Ignorance. A BFI operator is someone (usually in a corporate software development environment) who uses set policies and methodologies fanatically while studiously avoiding any rational thought.

code grinder
A suit-wearing, cubicle inhabiting minion who is one of thousands of identical minions hired to write banking systems or payroll packages in RPG and other unspeakable horrors. See BFI operator.

Similar to a rubber-necker, who can’t help looking, a digi-necker will whip out a camera or phone to snap a video at any awkward moment, such as when grandma falls down the escalator and bursts her colostomy bag.

Drunk Mouse Syndrome. A condition afflicting some users, causing them to be unable to follow the simplest of instructions.

Someone who regularly googles their own name.

An amateur who knows nothing about photography, and just clicks at everything, then photoshops in some lens flare and calls it art.

Someone who refuses to acknowledge others’ privacy by insisting on sending out emails with dozens of addresses (including yours) in the “To” field, visible to everyone.

A code known to support services and helpdesks that describes a customer who is too dumb to use a computer. Often recorded in call logs and sometimes even on the user’s computer. For example:
“Mkay, just type that code at the top of your Win.INI file.”
“Will that fix the problem?”
“No, but it will help the next guy to understand what they’re dealing with, so you won’t have to go through that whole process again”.
“Gee, thanks!”

A video gamer or who insists on using crap hardware, a poor connection, or both, thereby spoiling it for everyone else. They don’t usually last long: in the virtual world, they get fragged without remorse, in the real world, they are always first to get sent for pizza and cola.

lemming clicker
Someone who will click on any link they are sent, often happily entering their banking passwords as well.

A particularly useless user.

The smooth-talking member of the marketing department who signs up users by promising that the next version of the product will have features which are unplanned, extremely difficult to implement, and/or in violation of the laws of physics. By next Thursday.

An individual so utterly loyal to a particular operating system or platform that they have achieved a state of religious zeal. Microserfs typically drool in response to a rigged demo.

mouse potato
A computer equivalent of a couch potato.

A person with no knowledge or awareness of anything remotely related to computers. The IT equivalent of Harry Potter’s “muggles.”

read-only user
An ID-10-T user who simply cannot absorb what you are telling them. They cannot or will not listen. For example:
“So when you click on the ‘start’ button, what do you see?”
“What button?”
“The ‘start’ button, in the bottom left of your screen.”
“But it’s all just pictures!”
“Just click on the ‘start’ button.”
“The what button?”

A user who will agree to anything without reading it. Especially infuriating when you are trying to give technical support and they keep clicking “OK” on all the useful messages. See lemming clicker.

seagull manager
One of those bosses who is not good for much except when things go wrong, at which time they swoop in, make a lot of noise and crap all over everything.

Someone who maintains an online presence as a campaigner for causes, but is actually just another sallow, spotty youth who lives with their parents, and wouldn’t be caught dead at a protest rally.

An obnoxious individual engaged in the profession of marketing or management, who pretends to know “how it all works” – very annoying to those who actually do.

Wikipedia Kid
That student or co-worker who doesn’t really know the job, but pretends to by just slapping together everyone else’s contributions. For example (from “The IT Crowd”):
Mr Reynholm (the big boss): Jen, did I just see you googling “IT manager”?
Jen (the IT manager): Um…



Customer Service Joys

Yes, this is an anti-rant! I feel a need to get up and shout about a couple of instances of phenomenally good customer service.

Customer Service Joy #1: MoistureCure:

I bought a dehumidifier some time ago from MoistureCure. It was a fairly large thing, weighing about 20Kgs. Last January, it died. Just stopped working. This was still in the warranty period but with one thing and another it was March before I finally picked up the phone to call MoistureCure. That’s when I realised it was out of warranty. They accepted my word that it died in January (I had no proof) and agreed to fix it under warranty. A friend of mine who was visiting Port Macquarie agreed to drop it off there. MoistureCure not only fixed the unit at no charge, but they then shipped it back to me free also (and by the way 20Kgs is a fair shipping cost). Dealing with MoistureCure was a joy.

Customer Service Joy #2: JMG Technology:

At various times, I have bought various bits of tech equipment from JMG Technology. The ADSL modem that I bought a few years ago turned out to be so great that I got the same one for the office and for the parents. Recently (and outside it’s warranty) it’s wireless (WiFi) service stopped working. I gave Jason from JMG a call, and he advised me that the newer models had a 2-year warranty, so he would try to get the modem fixed under the warranty it would have had if it had been a newer model. Within hours he had a reference number and an address to send it to. A few days later, it arrived back in the post, not repaired but completely replaced. Every dealing I have had with JMG has been extremely satisfying, and I routinely recommend them to others.

It’s All About Satisfaction

The implied purpose of any business is to make money, but some do it with utmost understanding and respect for their customers. We should trade with these businesses whenever we can, in preference to others that may be larger or cheaper or have a bigger marketing spend. In the long run, investing in someone who values customer satisfaction can only lead to more customer satisfaction.

Do you have a joyous customer experience you wish to share? I’d love to read about it, please post in the comments.