The Pretty Reckless with “Heaven Knows”:
Sometimes it does feel like they want to keep us in our place at the end of the process, ainna?
The Pretty Reckless with “Heaven Knows”:
Sometimes it does feel like they want to keep us in our place at the end of the process, ainna?
The Australians and New Zealanders have a word, rort, that we should employ as part of our software testing lexicon.
I’m going to rort this Web site.
Feel free to drop that in your next stand-up. Bad Australian accent is optional.
So much of our written communication, including emails, texts, tweets, and online conversations are informal, but I still take pride in using full sentences, correct punctuation, and the right word for the job. It differentiates me from people who don’t, and I hope it serves me well in picking up clients and contacts.
A developer has a bit of a right-on rant about programming is stressful insanity:
Imagine joining an engineering team. You’re excited and full of ideas, probably just out of school and a world of clean, beautiful designs, awe-inspiring in their aesthetic unity of purpose, economy, and strength. You start by meeting Mary, project leader for a bridge in a major metropolitan area. Mary introduces you to Fred, after you get through the fifteen security checks installed by Dave because Dave had his sweater stolen off his desk once and Never Again. Fred only works with wood, so you ask why he’s involved because this bridge is supposed to allow rush-hour traffic full of cars full of mortal humans to cross a 200-foot drop over rapids. Don’t worry, says Mary, Fred’s going to handle the walkways. What walkways? Well Fred made a good case for walkways and they’re going to add to the bridge’s appeal. Of course, they’ll have to be built without railings, because there’s a strict no railings rule enforced by Phil, who’s not an engineer. Nobody’s sure what Phil does, but it’s definitely full of synergy and has to do with upper management, whom none of the engineers want to deal with so they just let Phil do what he wants. Sara, meanwhile, has found several hemorrhaging-edge paving techniques, and worked them all into the bridge design, so you’ll have to build around each one as the bridge progresses, since each one means different underlying support and safety concerns. Tom and Harry have been working together for years, but have an ongoing feud over whether to use metric or imperial measurements, and it’s become a case of “whoever got to that part of the design first.” This has been such a headache for the people actually screwing things together, they’ve given up and just forced, hammered, or welded their way through the day with whatever parts were handy. Also, the bridge was designed as a suspension bridge, but nobody actually knew how to build a suspension bridge, so they got halfway through it and then just added extra support columns to keep the thing standing, but they left the suspension cables because they’re still sort of holding up parts of the bridge. Nobody knows which parts, but everybody’s pretty sure they’re important parts. After the introductions are made, you are invited to come up with some new ideas, but you don’t have any because you’re a propulsion engineer and don’t know anything about bridges.
We’re not a above a bit of absurdist civil engineering metaphors to describe our predicament.
But it’s good to see a developer with a forest level view of the strange nature of software development.
(Link via tweet.)
On Quora, a recruiter explains recruiters.
Why do recruiters always contact me about jobs that are below me?
I’m a director at a major company, why do I constantly get recruiters contacting me about senior designer and design manager roles, when these are clearly below my skill set?
The beginning of the answer:
1) Recruiting is a pyramid with high turnover. By definition, most recruiters are not as skilled, which means they’re just calling anyone and everyone. Maybe you show up in a database with an old resume. Maybe they’re searching off keywords. Maybe they’ve been taught to call up the chain in hopes of getting new job orders. But you’re experiencing something a systemic fault. While it seems annoying, it works enough to keep many of those people employed.
He lists some other reasons which might be valid, but this one is the most prevalent in my experience. When they try to connect with you via LinkedIn, note how many of them look to be 23 years old. That’s another clue that they’re casting a wide, wide net, and your name is just a temporary variable in their patter.
Full disclosure: I’ve done some work for this guy before, so he definitely falls into one of his later categories. So I’ll take his word for it that not all other recruiters are nebbishes.
A slideshow of What I Learned in Engineering School presents a number of lessons for software development if you look at them the right way.
A skyscraper is a vertically cantilevered beam. The primary structural design consdieration is not resistance to vertical (gravity) loads, but resistance to lateral loads from wind and earthquakes. For this reason, tall structures function and are designed conceptually as large beams cantilevered from the ground.
Just like how we have to test software. A building is supposed to stand up, so simplistically speaking, you’d think it would have to be strong and rigid against gravity. But there are other forces at work to account for.
So with a piece of software: simplistically, it’s designed to perform a task, and simplistic testing makes sure it does that task adequately. However, when looking at it from the tester’s perspective, you have to account for other forces besides the drive to get to the software’s goal. You’ve got to account for the real world, people making mistakes, and interactions that are sometimes hard to predict in a requirements guide or on a napkin.
Work with the natural order. The locks of the Panama Canal are operated without pumps. Gravity moves millions of gallons of water from lakes to the lock chambers, where ships are raised and lowered 85 feet in passing between the Atlantic and Pacific oceans. As long as precipitation refills the lakes,the locks continue to function.
Your software will work better for your users if it conforms to their knowledge, their expectations, and their habits. Also, your processes will work better if you take into account your corporate (or organizational) environment, people, habits, and whatnot. You can’t come in and make everybody change to the better way you know just because you know it’s better. You have to take stock of what’s already going on and craft the better processes without trying to push water uphill.
At any rate, it’s worth a read with an eye to the lessons you can apply to software development.
Wayne Ariola in SD Times:
Remember: The cost of quality isn’t the price of creating quality software; it’s the penalty or risk incurred by failing to deliver quality software.
Word to your mother, who doesn’t understand why the computer thing doesn’t work any more and is afraid to touch computers because some online provider used her as a guinea pig in some new-feature experiment with bugs built right in.
Talking about automated testing once, I said:
Automated testing, really, is a misnomer. The testing is not automated. It requires someone to build it and to make sure that the scripts remain synched to a GUI.
Quite so, still
Do you really know what it’s like to walk a mile in their shoes?
Or are your organization’s concepts of what the user wants or needs based on the speculations of twenty-somethings with computer science degrees who’ve known nothing but working with computers their whole lives?
Nobody would ever do that: Dunedin man changes name to 99-character monster:
A Dunedin man has changed his name to the longest legally allowed, after apparently losing a bet five years ago.
The 22-year-old man from Normanby is now legally known as ‘Full Metal Havok More Sexy N Intelligent Than Spock And All The Superheroes Combined With Frostnova’ – just one character shy of Department of Internal Affairs’ (DIA) 100 character limit.
Which proves the man is not in QA; otherwise, he would have renamed himself with a 101-character name.
Unsub, as you fellow fans of the all-too-brief David Soul television series know, means Unknown Subject in television law enforcement, or it did briefly in the first Bush administration.
In the IT world, it could refer to Unknown Subcontractor. And while it’s not a crime, it’s unethical.
Have you ever sat in on a conference call with a developer who talks a good game at a high level, but when asked specific questions, he defers and dissembles? Someone who is not very responsive to issues: when you call him or email him about something in the morning, you can’t reach him, but the problem is solved (or is taken a stab at) overnight?
You know why he’s like that? Because he’s not the one doing the work. And sometimes, contractors hide that they’re subcontracting from their clients.
On the Internet and in remote/distributed work environments, nobody knows you’re a cat or if you’re using a cat as a subcontractor
I can see how it would happen semi-innocently. You’ve been working with a bunch of clients, and they’ve all got tasks that suddenly overlap. So you reach out to a colleague and offer him a couple dollars less just this one time. That works out, so you think, “Hey, maybe I’ll use Joe for this client….” and suddenly someone’s running a clandestine contracting company without the client or clients knowing.
It’s unethical to present your resume to a client and then to use someone else to do the work. It’s okay if you plan to do this at the outset and make sure your client understands you’ve got staff that will handle the work. That’s about the only way a day laborer like an IT consultant can grow a business. But if you say or hint that you’re going to do the work but don’t, that’s lying.
This hidden subcontractor is testing your mobile app for t4/hr. (Four Treats an hour).
If the ethical considerations don’t stop you, consider the practical risks. One day you’re a beloved national treasure of a composer, the next you’re an embarrassment with a ghost composer. Or you’re a highly respected scientist/politician who ends up on a Cracked.com list because your behind-the-scenes temporary hires are lazy.
Don’t do it. And if you’re hiring or contracting the work out, make sure to ask, “So you will be doing this work, won’t you?”
Software development has broken our hearts. It’s time to burn down the trailer park:
On a personal note, when I lived in a trailer park, we were in a trailer larger than an Airstream, but 12″ by 60″ is about the smallest you can get in an actual mobile home. And burning down an entire trailer park would take more effort than you think.
Gather round, children, and listen to the music your parents would have listened to if your parents were awesome:
That’s Judas Priest. Go look it up in your history Kindles.
In this case, the development of software automobiles:
Once upon a time, software was written by people who knew what they were doing, like Mel and his descendants. They were generally solitary, socially awkward fellows with strong awareness of TSR gaming. They were hugely effective at doing things like getting an Atari 2600 to run Pac-Man or writing operating system kernels that never crashed, but they weren’t terribly manageable and they could be real pricks when you got in their way. I once worked with a fellow who had been at the company in question for twenty-three years and had personally written a nontrivial percentage of the nine million lines of code that, when compiled, became our primary product. He was un-fire-able and everybody knew it. There were things that only he knew.
This kind of situation might work out well for designing bridges or building guitars (not that Paul Reed Smith appears to miss Joe Knaggs all that much, to use an inside-baseball example) but it’s hell on your average dipshit thirty-five-year-old middle manager, who has effectively zero leverage on the wizard in the basement. Therefore, a movement started in the software business about fifteen years ago to ensure that no more wizards were ever created. It works like this: Instead of hiring five guys who really know their job at seventy bucks an hour each, you hire a team of fifty drooling morons at seven bucks an hour each. You make them program in pairs, with one typing and the other once watching him type (yes! This is a real thing! It’s called “extreme programming”!) or you use a piece of software to give them each a tiny bit of the big project.
This is what you get from a management perspective: fifty reports who are all pathetically grateful for the work instead of five arrogant wizards, the ability to fire anybody you like at any time withouiret consequence, the ability to demand outrageous work hours and/or conditions, (I was just told that a major American corporation is introducing “bench seating” for its programmers, to save space) and a product that nominally fulfills the spec. This is what you get from a user perspective: the kind of crapware that requires updates twice a week to fix bugs introduced with the previous updates. Remember the days when you could buy software that simply worked, on a floppy disk or cartridge, with no updates required? Those were the wizards at work. Today, you get diverse teams of interchangeable, agile, open-office, skill-compatible resources that produce steaming piles of garbage.
He doesn’t speak about xth generation languages, which allow the software to be badly written far away from and with little knowledge of the hardware it’s running on by developers without knowledge of it and who are forgiven by advances in that underlying hardware (and now virtual hardware) that can cover-up some poor design and coding practices, third-party components of dubious provenance relied on for core processing, and Internet cut-and-paste.
But, other than that, he explains very well why my next car is going to be a Mercedes. A Mercedes 35 hp.
In my automated test scripts, I always put one-line comments at the end of loops and methods that show what is closing. For example, in Ruby, it looks like this:
puts("Waiting for delete confirmation")
It makes it just a little easier to figure out where I am in the code, and it also makes sure I close the loops and functions appropriately.
That’s so simple and obvious it can’t possibly be a helpful tip, coud it?
A game player tries to score 1000 points in Madden NFL 25, but instead finds a defect at a common point:
About 10 minutes into the game, I had scored 262 points. The above score is actually wrong. We’ve run into this problem before: once you get to 255 points, Madden stops counting correctly. Not that it doesn’t try.
At the bottom, it says the Seahawks have scored 255 points. At the top, 266. Neither was correct, and I was pretty amused that a computer could attempt the most basic of tasks — addition — and come up with two kinds of wrong.
From what I saw of the actual Superbowl yesterday, this is uncannily accurate.
Remember, friends, in QA numerology, 256 is a magic number. You should try it out even when there’s no explicit boundary stated for an action or a variable. Along with magic numbers like 1025, 65537, and other talismanic digital sequences.
(Link via tweet.)
Five Finger Death Punch, “Battle Born”:
An essential quality of a good manager is the desire to seek bad news rather than deny it. An effective manager wants to hear about what’s going wrong before he or she hears about what’s going right. You can’t react appropriately to disappointing news if it doesn’t reach you soon enough.
You concentrate on bad news in order to get started on the solution quickly.
That’s my philosophy, too. And I share bad news willingly.