This isn't for the brilliant programmers and systems analysts of the SDMB.

It’s for the code monkeys and the idjit moe-rons who guide them in business today. It was intended for the Pit, but it went from a rant to sounding more frustrated and long suffering, which isn’t a Pittish amount of fun.

There are basic rules to follow when you are developing and maintaining software:

  1. If you are designing an application, get a clear plan from your customer as to what he wants and needs. Assume that he has been promoted to, or beyond, his level of incompetence. Press him for answers. Assume his answers are wrong. Talk to some of his users because they might not have reached their own levels of incompetence and still know what they are doing. When you present your improved plan, make him think it was all his idea. Remember that you are the smartest guy in the room and use that to your advantage to suck up to and manipulate him.

  2. If you are coding the application, bear in mind that if the designer has not yet reached his level of incompetence he’s at least close, that he got his job through sucking up and manipulation, and that if he was the smartest guy in the room when talking to the client it does not reflect well on the client. Show the design you were given to some of the more-ept users to see where your boss fucked up.

  3. When you think you are done, do not toss it over the wall as if it were the received word of God. Test it first yourself. Then get some beta testers to try to break it so you know where you fucked up. Then FIX it; that’s not a feature, it’s a bug, and it will make life difficult for the users. Yeah, I know we are as dumb as domestic turkeys, but we are responsible for bringing money into the company and paying you. Humor us.

All of that is remedial-level software design that far too many people have forgotten. My system at work is a kluge of 40-yr-old terminal screens (four squeezed into one 4:3 SVGA screen that most people stretch to 16:9 because they think they get more–see my turkey comment), a highly crippled IE tab for security reasons, and a Windows tab for our script, with vital tools like the TAB and arrow keys randomly disabled. All inputs are converted to straight uppercase because it’s 1973 and disk space is too expensive to waste on ASCII codes above 90. The script itself looks more like a COBOL program, with loads of IF-THEN-GOTO statements all toploaded where you start the conversation with the prospect. That may be good programming practice, with all the subroutines stuck at the bottom where only Gollum will find them, but it’s awkward as hell when you are trying to figure out the needs of a person who you just “met” five seconds ago.

Speaking of seconds, I know that in business-to-business inside sales (yeah, I’m a telemarketer; we’ve been through that) sales are, in part, determined by how many people I can annoy in an hour so the dialer gives us calls at a pace that would leave Lucy stuffing leads down her bra. Unlike the planners and managers, I also know that another part of success requires us to not fuck up the customer’s name. We get exotic and complex names and literally a fraction of a second to grok them. I can See and Say a lot of them, but others need to be Phonicsed out, with adjustments according to what ethnicity I think they are. And they are not all that exotic; MCNAMARA threw me for a second before I realized it was Mc Namara, and McNamara’s Band got stuck in my head. But I got hung up on by one person today because I screwed up his name. People have an odd attachment to their names, and it wouldn’t kill my productivity if I had a few seconds to wrap my head around it before saying it. It’s just good manners.

I get exposed to every automated phone system on the market and all of them blow chunks. Yes, I know that if they piss me off they are doing one of their jobs, but if a crafty noid like me who is good with mazes and see it as a challenge can’t find a way to get through to a human being, what can your customers or your kid’s school nurse do? It is far too easy to end up in dead ends and loops. And let folks search on either first or last name. If it’s only last name and I don’t know that my old rep Delphinia Smith got married and is now Delphinia Jones I can’t get to her, even though she’s the only Delphinia who works there, and you lost my sale today and in the future.

So basically, test the shit out of everything, then have someone else test it to failure, then listen to feedback from the users and fix your fucking software. Don’t leave people bitching for decades about something your grandfather should’ve fixed. And when you’ve fixed one thing, look for what you broke while fixing it. Show your worth and you, too, can rise to the level of your incompetence. You’ll be inept, but paid better.

And programmers, remember that the point of our company is to link our client to potential customers who want to talk to them. The idiots who created the design may have told you that the goal was appointments, but the goal is also to provide our reps with interested parties and notes telling something about them. I had several calls today that ranged from “I’m so busy that I can’t plan for a meeting,” to “We were already looking into that and you guys are on the short list so I’d love to talk to him, but I’m so busy that I can’t plan for a meeting,” to “I’m so busy that I can’t plan for a meeting so give me his number and I’ll call him when I get a break,” to “I’m Chinese and formal so I cannot imagine meeting with a total stranger so send me a letter, not an email, and include his business card and I will respond with my business card and we can eventually arrange a meeting.” Okay, that last one is partly an interpretation because I understand formal customs, but all of these had one thing in common: because there was no appointment to set I had to code all of them as refusals and any notes were wiped when I clicked Submit. Idiotic.

There has been a software industry for 60 years now. In all that time, nobody has managed to invent anything good.

I wish you had put this in the Pit so I could join in a rant. I wouldn’t know whether to start with Microsoft – which has spent $50 billion and is still unable to equal what Dennis and Ken produced in a few months of spare time – or Gimp 2 – after I spent excruciating hours learning how to do trivial tasks in Gimp, they changed the interface drastically for Gimp 2 – twice as complicated, thrice as infuriating.

I don’t see the problem there. :smiley: Code them as appointments for the Twelfth of Never.

Since this isn’t in the Pit, am I allowed to complain about the “QC setup” we have or not?

We’ve got the client. Say “hi,” client! :smack::(<— client trying to say hi and realizing it didn’t work
We’ve got us. Say “hi,” us! :smack::(:slight_smile: <— us trying to say hi, realizing it didn’t work, and putting a good face on it cos you gotta be positive
And we’ve got these people who have created the lists of “requirements” based on:

  1. stuff cut and pasted from those of similar companies. Similar but not identical, at one point the client said “you know, I think I’ll make a placard saying ‘we’re cosmetics, not pharma’. I’ve been saying it for every single item for the last… three quarters of an hour!”
  2. someone transcribing recordings from meetings without any separation of who said what, and without paying attention to whether the answer to a “do you want XYZ?” question was yes or no. They just listed everything.
  3. the publicity for the program we implement. Oy vei. There’s a lot of stuff listed which is possible but was never required by the client, and some of it is XOR choices: you can do A and you can do B, but not at the same time.
    Say “hi,” QC people! :smack::smack::smack::smack:…

While we were allowed to make comments, that means the final approved list has a lot of requirements with a note saying “not a requirement”. It’s still in the list, tho. And everything is listed at the same level. “Being able to bill customers correctly and at the proper times” is on the same level as “being able to input results in a <x format” (which btw is not a requirement, damnit, and we’re not doing it, damnit, but it’s in the list. Damnit).

Who the hell thought it was a good idea to hire these guys?

One reason why software is so crappy is that management cares more about getting “points” signed off/completed from the project plan rather than actually producing good software. If it runs, ship it. Programmers are steered away from making things better and told to hurry hurry hurry and implement the rest of the features on the list rather than making a few good features that people would want to use. I’m dealing with a software application where the people who use our software (who are a “captive” audience because their employer bought our software to use) often just throw up their hands and refuse to use our software because it is so hard to use and try to do stuff manually. What am I spending my days doing? Adding more features to the software off of a list of features that bigwigs insist that the software also do. In the meantime, fundamental usability issues are getting little attention.

If I spend my days trying to make the software better in general rather than sending reports that Features X-55 (locator map must support Uzbekistani roving caravans) and T-332 (Users filling out the online Form G-A-5 during Request Week must be allowed to attach PDF documents, but only if the user has at least a Level 3 Privilege or if the user has received Supervisory Permission through the new Supervisor Request module) are complete, I get yelled at. That’s why your software doesn’t work.

It’s my party so you can rant if you want to. Maybe it’ll get sent to the Pit. I just wasn’t feeling so stabby once I got home so it came out too polite for the Pit. I’ll ask a mod to move it, if you like.

I love fucked up software. It smells like money. I hope no one ever gets it right until after I retire.

Moving it to the Pit, as you requested.

I’d very much prefer to write good software, but the fact is, crappy software sells better, at least in the corporate world. The suit with the buying power is rarely an actual user of the software. so whether or not it takes the underlings 2 hours to do a 15 minute job with the software matters little to him. He just wants a nice list of fancy-sounding features he can list as bullet points in his PowerPoint presentation. Does the UI that the worker bees have to use on a daily basis suck major donkey dick? Well, who the hell cares, because this reporting portal that I might look at once every six months sure is schnazzy!

It’s one of the most soul-sucking aspects of the corporate software industry - investing your time to actually benefit the users instead of targetting the buyers is a good way to go hungry.

Aaaaamen!

Some times, the reporting tool isn’t even something Mr Important will enter once every six months: it’s his secretary who will. But the account has to list Mr Important’s name, not the secretary’s, because the rules about not entering the system under another person’s name, not sharing usernames or passwords etc can get a shift worker fired, but is what Mr Important and his secretary always do.

Silly dropzone, you don’t need testing! That’s just extra overhead, less money for us. We can get the customer to ‘test’ it for us for free! Then we can ‘fix’ the bugs, and sell them the updated version for more money, and that’s more money for us. Why bother testing anything anyway? We have good developers who don’t make those kinds of mistakes. Testing is just a waste of time, like training or breaks.

I’m a professional software tester, and I’m really tired of this crap.

I guess things have changed changed since I was in the business, but then a mainframe environment was always a lot more structured I supposed. We had well defined development, test and production environments. Things would get moved methodically from one to the other and backed out just as methodically if need be. Even in the production environment, IIRC, if there were errors, they could be backed out.

The only time I remember when things had to be perfect was working on one of the first optical storage systems. The disks were pretty expensive and write once only so you had to get it right on the first try.

So do we. But the methodology used to be methodical has a lot of glitter and very little cloth.

It’s why I’m trying to break into game development.

</naivete>

To the OP:

You are complaining that your how-to-irritate-people-software sucks?

It is a sign of how karma actually works.

But I don’t merely want to irritate them myself, I want to send someone out to irritate them IN PERSON! I am just a cog in the machine of universal irritation. It is my duty as an acolyte of Ganesha to keep the wheel of commerce turning, and Shiva’s thugs are making that difficult.

No, not normally. But sometimes if you build up enough bad karma fast enough, it can warp the very fabric of Tathata so that a karmic worm hole is created and karma loops back into the present timeline. :eek: :cool:

But that’s beside the point, and as I have noted above and before I know I am the scum of the Earth. But the second part of the OP affects anybody who tries to call somebody in an office. Maybe you don’t have the spelling of his name right. Maybe you have a speech impediment or a thick accent and the voice recognition software gives you two tries then hangs up on you. Maybe you’re from Publisher’s Clearinghouse but can’t work your way through Voicemail Hell so you give the million bucks to the next guy on the list. I am exposed to every version of automated phone system on two continents and they all suck.

And remember that to someone somewhere we all have thick accents. I’ve had a number of English people tell me they can’t understand a word of my flat, Midwestern accent, even when I slow it and enunciate clearly, like I’m talking to a preschooler. The Welsh, Scots, and Irish have no problems with it. I don’t know why the English bother going to Tom Cruise or Will Smith movies if they don’t have subtitles.