Slashdot Mirror


The Whiz of Silver Bullets

ChelleChelle writes "In an entertaining yet well thought-out article, software architect Alex E. Bell of The Boeing Company lashes out at the so-called 'Silver Bullets' and those who rely on them to solve all their software development difficulties. From the article: 'the desperate, the pressured, and the ignorant are among those who continue to worship the silver-bullet gods and plead for continuance of silver-fueled delusions that are keeping many of their projects alive.'"

8 of 244 comments (clear)

  1. Fred Brooks original silver bullet paper by jonv · · Score: 5, Informative
  2. Re:Why 'silver bullets'? by Tim+Browse · · Score: 2, Informative

    Sheesh

    Kids today.

  3. Re:Bullets? by vadim_t · · Score: 2, Informative
    You kidding? It's trivial to make a program that generates something it can't parse back. Want examples?
    void write_value(int handle, char *key, char *value) {
    /* this is stupid, but not that hard to find */
     
        char buf[1024];
        strcpy(buf, key);
        strcat(buf, "=");
        strcat(buf, value);
        strcat(buf, "\n");
        fwrite(handle, buf, strlen(buf));
    }
     
    write_key(h, "example", " 2+2=4\n4*4=16");
    Here you have a bit of code that very trivially writes something that can't be parsed back. Will the leading space be stripped? And even better, instead of that being written correctly, the data will be corrupted, with the first line being read normally, and the second being interpreted as key "4*4", value 16.

    Encoding issues work the same way. It's trivial to write any random \0 terminated junk. It's a lot harder to correctly parse it back. What if the key is made of multi-byte characters, one of whose bytes has the value 61 (ASCII for '=')? A naive parser made for ASCII will sometimes correctly retrieve the key and value from an unicode file, but choke on the lines including characters it incorrectly interprets.
  4. Re:Silver Bullet in a Concealed-Carry Revolver by Mjlner · · Score: 2, Informative

    "In this case, if you under 18 years of age, I recommend that you buy a box of silver bullets or just plain vanilla lead bullets. Put the bullets into your revolver. Hide the revolver in your jacket. Then, walk into your boss' office. Fire away. You will not be tried as an adult since you are not a legal adult. Better yet, after you reach the age of 18, your criminal record will be wiped clean."

    You don't live in the US, do you? In the US, persons under the age of 18 are tried, convicted and executed on a regular basis. Well actually, they aren't being executed until later on in life (nowadays), since the appeals process does take some time.

    --
    Lemon curry???
  5. Re:Current silver bullets by VAXcat · · Score: 2, Informative

    Just be glad you're not old enough to have gone through the fourth generation language management wars...managers were convinved by that hype that we could buy thes products and then we'd be able to get results by talking to the computers in English, just like the ones on the Enterprise in Star Trek. Instead, some incredibly resource wasting applications were produced, that had to be communicated with in a strange dialect of broken English - sort of a machine pidgin language...

    --
    There is no God, and Dirac is his prophet.
  6. Re:Bullets? by IMarvinTPA · · Score: 2, Informative

    So, you want to represent data, heh?
    Here are three choices I've gotten to work:
    JSON
    XML
    CSV
    Have you ever seen nested CSV files? They're truely bizzare to see, but if you have a sufficiently powerful parser, they can be read. New Line characters are to be record separators only when they are fully outside of quotes. Commas are to be used as field separators, only when they are fully outside of quotes. Quotes are to be used as content descriminators only when not doubled up.
    The closest thing to a CSV spec that I've ever found.
    My silver bullets of choice? Data encoding for transfer.
    My next favorite silver bullet set, Web Services.
    My other favorite silver bullet set, Programming Languages.

    IMarv

  7. Inability to deal with complexity by Aceticon · · Score: 2, Informative

    For a couple of years now, i've been entertaining the theory that a great many people in IT (especially managers) have trouble dealing with tradeoffs, side-effects and feedback loops whenever a choice has to be made on how the development process is to be setup/changed. The longer the chain of side-effects, the more complicated the feedback-loops or the less immediatly obvious the tradeoffs, side-effects or feedback-loops are, the more likelly they will be ignored or not understood.

    Hence the common practice (in some countries) of selling impossible deadlines to customers and then using overwork to (try and) achieve those deadlines (via the "tired developers make more bugs" and the "low morale" negative feedback loops, overwork usually leads to LONGER development times and a longer tail of bugfixing before the software is accepted for production).

    The same theory would also help explain the recurring reliance by some managers on the next "silver bullet" to solve all our problems - silver bullets are always sold as solving everything and having no downsides (thus no tradeoffs) and no side-effects (and thus no negative feedback loops).

  8. Re:Bullets? by Anonymous Coward · · Score: 1, Informative

    Are you sure you've ever used XML? Your complaints about it indicate a lack of knowledge, or a troll. I'll give you the benefit of the doubt and assume you're stupid instead of malicious.