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.
Archive for the ‘Miscellany’ Category
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.
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?”
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.
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.)
Beginning next week, your software users might bring with them some new email addresses and URLs as new top-level domains become available:
Starting Jan. 29, the first of hundreds of new top-level Web domains—the suffixes that appear at the end of website addresses like .com and .net—will become available for the first time in more than a decade.
Seven Web domains will be released next week, including .bike, .clothing and .singles. The new domains are expected to draw interest mainly from entrepreneurs and small-business owners seeking Web addresses that more closely relate to the products and services they sell than the Web addresses that are currently available to them.
This means that any part of your application that validates email addresses or URLs might need to get a little exercise.
And then I almost fainted when I saw the sample code they included for Hello, World programs.
As you know, gentle reader, I’ve often thumped tubs about how any program used to teach students and that outputs
Hello World is teaching the youngsters to program defects at the outset because, as “World” in this instance is a noun of direct address, it should be offset by a comma (
So when I saw the sample code included, where the programs for Java and C have that very comma in them, I was amazed. I had to immediately tweet about how it changed my life.
But then I looked closer: In addition to Java and C, the article includes samples of Python and Perl. And the commas are missing.
So I guess it’s more of a crash course in development than the writer intended.
It’s a collection kludged together, and nobody’s going to think to check consistency or know if there’s a problem in different areas of the software except for QA. Because the milestone and the deadline were met.
Nearly 20 million Americans have now experienced the broken Obamacare website first hand. But Ben Simo, a past president of the Association for Software Testing, found something more than a cumbersome login or a blank screen—clear evidence of subpar coding on the site.
Cracked (I put the name in italics because it was a magazine in my day, sonny, and I fancy myself the IT world’s Sylvester P. Smythe) has a piece entitled 5 Reasons Tech Companies Make Bad Gadgets (An Inside Look) that you might want to read.
It’s not about software per se, but it looks awfully familiar.
Apparently, there’s an Android game called Send Me To Heaven that… Well, I can’t explain it any better than:
S.M.T.H. (Send Me To Heaven) is a sport game. Player throws his phone as high as he can. The higher, the better. The phone registers the height and uploads result to leader boards. World Top 10, Week Top 10 and Day Top 10 lists are available.
That’s about the funniest thing I’ve read all week.
Apple, though, rejected it.
A motorcyclist riding on Interstate 5 survived a lightning strike Thursday as a tumultuous day of weather saw thunderstorms and rain roll through Washington on both sides of the Cascade Mountains.
The biker was riding through Chehalis in western Washington when the lightning hit Thursday morning, Washington State Patrol Trooper William Finn said.
Remember, remote chances of a bad thing occurring are not the same as no chance, and you need to assess your risk accordingly. Individually, people have a very remote chance of winning the lottery, yet someone wins the lottery every couple of weeks.
Make sure when assessing your risk, calculate in the severity of the problem and the number of users mashing the keys in addition to the remoteness of the possibility of that happening.
The first step on software testing appearing in Diagnostic and Statistical Manual of Mental Disorders 6: a scientific-sounding name for the QA mindset: negative dispositional attitude:
New research has uncovered the reason why some people seem to dislike everything while others seem to like everything. Apparently, it’s all part of our individual personality — a dimension that researchers have coined “dispositional attitude.”
People with a positive dispositional attitude have a strong tendency to like things, whereas people with a negative dispositional attitude have a strong tendency to dislike things, according to research published in the Journal of Personality and Social Psychology. The journal article, “Attitudes without objects: Evidence for a dispositional attitude, its measurement, and its consequences,” was written by Justin Hepler, University of Illinois at Urbana-Champaign, and Dolores Albarracín, Ph.D., the Martin Fishbein Chair of Communication and Professor of Psychology at Penn.
Realism is an illness.
If this had happened to Amazon, Google, or another company geeks love, you would have heard about it already: Computer Problems Leave Goods Stranded at New York Port:
Computer problems at one of the East Coast’s biggest ports have snarled the flow of cargo across the Northeast for weeks, delaying the delivery of consumer goods needed for back-to-school sales and the start of the holiday shopping season.
The problems at the Port of New York and New Jersey began in June, when Maher Terminals LLC, one of the world’s largest handlers of shipping containers, launched a new computer operating system, according to shipping, trucking, retail-industry and government officials.
. . . .
Maher Terminals and the operating system’s maker, Navis LLC, a division of Finland-based Cargotec Corp., said in a joint news release last week that “real-time interactions between the various system components deployed in the container yard were not operating as designed.” As a temporary solution, certain automated components of the system were scaled back, the companies said. They didn’t reveal the source of the problems.
Rest assured, it worked on a developer’s machine.
Meanwhile, even though it did not impact geeks directly, this bug had huge impact all down the logistical downstream.
An article entitled An Important Life Lesson from Blackjack and Baseball: You gain more by not being stupid than you do by being smart has this brief takeaway:
The moral: You gain more by not being stupid than you do by being smart. Smart gets neutralized by other smart people. Stupid does not.
The gist: In some competitions, you can lose on purpose, but you can only try to win on purpose, so making the smart moves won’t necessary lead you to success and winning. But making stupid moves can and will thwart you.
In software development or startups, it’s easy to fall into that bad habit of pursing something new, neat, or smart and forgetting to take care of the little things like user experience and bounding your edit boxes.
That’s where QA comes in: We’re trying to box out some of the stupid.
Mozilla announced on Tuesday that Firefox 23, the latest version of its browser, will not support the HTML tag blink.
I would tell you to enjoy it while you can, but it’s already gone, and you never noticed it.
I’ve always used the blink tag to test whether edit boxes appropriately strip HTML formatting because it was a nice, obvious way to see if that failed. Oh, well, I still have the h1 tag, I suppose.
UPDATE: This post was originally entitled Fortunately, It Still Works in IE 6 until someone pointed out it does not work in IE 6. Deep down I knew that, but I was too quick with the quippy headline. Thanks, Jen. I have updated the headline with an alternate quip.