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:
-
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.
-
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.
-
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.