11/1/15

PNSQC 2015 - Day 2

Here are my sketchnotes for the second day of the Pacific Northwest Software Quality Conference 2015 held in Portland, Oregon.  Click on an image to see the larger version.

Ken Pugh, author of "Prefactoring, Interface-Oriented Design,"  spoke about effectively communicating using acceptance tests.  His talk outlined how the triad (developer, product owner, QA) work together to write acceptance tests that become the specs for unit tests, code, and automated regression tests.  This talk was accompanied by a hands-on workshop the following day.

Wayne Roseberry from Microsoft posed some interesting question: Microsoft has a lot of data regarding automated crash reports.  Can this data be used to identify which have already been reported?  Can it help identify areas of code that need refactoring, or have high bug results?  He developed a system using the Microsoft Azure Machine Learning engine to process the bug reports.

Keeping with the theme of the conference, Ron Thompson used the metaphor of how the product owner influences the resulting system in the same way a particular strain of yeast might affect brewing beer. 


Lucy Chang from Intuit gave an amazing technical talk about using Amazon web services with Wiremock to inject stubs and proxies into a distributed system. 

Click here to see the notes for Day 1 of the conference.

PNSQC 2015 - Day 1

The theme of the 2015 Pacific NW Software Quality Conference (PNSQC) was "Brewing Quality Software." That theme alludes to Portland's notoriety for great beer and coffee (and tea), but also ties in the focus on quality software in the Silicon Forest and beyond.

Last year I learned about developing functional unit tests, and this year I hoped to learn more about writing acceptance tests, and feeding these into unit tests.  I was also looking for tips on integrating unit testing in Continuous Integration (CI) environments.

Last year I tried sketchnotes for the first time. This year I focused on simplifying the notes.  I skipped trying to draw the speaker, except in simple cartoon form. I also found that a lot of my notes were simply transcriptions, so I focused on grabbing images from the talks and putting these into the notes. Sometimes these were actual images from the presentation, but more often they were metaphors or images used while speaking.

All these sketchnotes were done live. As a result, I often had to process and understand the section before I could make a note. I think this helped me get a better understanding of what I understood, and what I didn't really grasp.

My tools were my iPad, an app called Paper by 53, and a Musemee Notier Stylus. Click on the images to see a larger version.



Casey Rosenthal from Netflix presented his talk on Chaos Engineering. The basic premise is that future (and current) distributed systems will be so complex that system architects and development engineers will be ineffective without the help of other systems.  Chaos engineering will help build confidence in these systems by providing "turbulence in production," and creating new ways to visualize the systems.

Julie Green from Con-Way Enterprises talked about using pre-mortems as a way to elicit risks in the project.  She says "A Pre-Mortem meeting creates a safe environment where the sole purpose is to predict failure. Instead of a gripe session, the Pre-Mortem is structured so that attendees are asked for a few areas where they think issues will occur...Using the Pre-Mortem strategy you can stop these failures from occurring."


Dwayne Thomas and Kevin Swallow from Crowd Compass presented a session on using coding clubs at work to improve the understand between development and QA.  

Bhushan Gupta raised everyone's awareness on the need for secure web applications in his talk.  Some key points were the owasp.org list of threats, and the NIST800-30 Threat Modeling Risk Assessment. 

Click here to continue to Day 2 of PNSQC 2015.

9/17/15

Tillicum vs Tilikum

Tilikum Crossing opened last week (09/12/15). It was the first new bridge built across the Willamette in the Portland area since 1973, and also the only bridge in the U.S. which isn't for cars, but carries light rail trains, buses, streetcars, bicyclists and pedestrians.

Despite all the hoopla, I was surprised when I walked across it. The bridge name is Tilikum. Until I saw it spelled out, I had been thinking "Tillicum." I wondered why, and did it matter how it was spelled?

Tillicum is a Chinook jargon word that was used with various meaning for a century or more. Chinook Jargon was a trade language based on Chinook, the language spoken by the natives who inhabited what is now the Washington and Oregon coast. The language was used mainly in the 19th and early 20th centuries.

According to Oregon Geographic Names
by McArthur & McArthur, Tilikum in "early Chinook referred to people or tribe or even relatives. With the passage of time the word came to mean also friendly people or even a friend. It also means friendly or agreeable, as in the case of Tillicum Creek. The older Chinook jargon word for friend, applied to persons rather than things, is siks or six."

The word may have changed over time, but did the spelling matter? Is the word simply a transliteration of the spoken sounds? In English, the difference between a single- and double-L is arbitrary, as well as the difference between K and a hard C.

With some online research, I found a free edition of a Chinook Jargon dictionary. Here are the entries that have tilikum, tilicum, or tillicum.
elip tilikum, the first people
Konaway tilicum, everybody.
Kunsih tilikum mitlite? how many people are there?
Til-i-kum. People.
Cultus tilikum, common or insignificant persons.
Huloima tilikum, strangers.
Nika tilikum, my relations.
Hul-o-i-ma.Other; another; different. Ex. Huloima tillikum, a different tribe or people;
Hy-iu. Much, many, plenty, enough.
Hyiu tillicum, a crowd; many people;
This article here mentions that the words were probably spelled phonetically, along with simplifying everything. "Grammatical forms were reduced to their simplest expression, and variations in mood and tense conveyed only by adverbs or by the context."

Tony Johnson on this site has an interesting point about how Chinook jargon, what he calls Chinook Wawa, was different from the traditional Chinook language.

Interestingly, I found that English speakers may unknowingly use some Chinook jargon, for example muckamuck.  People may call a politician or a lodge leader a "high muckamuck."  In its proper Chinook form it's "hyas muckamuck" (pronounced "high-ass" -- ha!).  Sometimes it has degraded to "high mucketymuck."  Many English speakers recognize this to mean the big boss.  In Chinook it means a "big feed" or an "important banquet."

Also, the word and concept of potlatch has been integrated into US society.  In Chinook Jargon it means a ceremony among certain tribes involving food and exchange of gifts.  We sometimes use the term to refer to a potluck dinner, or sharing personal stuff with friends. There are more examples of popular Chinook jarogon here.

Tri-met states "Tilikum is a Chinook Jargon word meaning people, tribe, or family, and the name is intended to honor the Multnomah, Cascade, Clackamas, and other Chinookan peoples who lived in the area as long as 14,000 years ago."

But it is also a way to bridge between the ages and peoples.  The Chinook Nation still exists today. People in the area will use the bridge every day.  Hopefully, this bridge will be a reminder of the people who were here before us, and the legacy that we and the people around us leave for the future.

9/11/15

Haiku: A template for error messages

I see quite a few tongue in cheek references to Haiku versions of error messages. For example:
Program aborting:
Close all that you have worked on.
You ask far too much.

Many people know that Haiku require a certain meter for the phrases: 5 / 7 / 5. In English the meter is equated with syllables, but in Japanese it's called "on" which is more the beat of the languange. In English, Haiku also have other requirements: the use of a word that lets you know the season (kigo), a cutting word that divides the poem (kireji), and often specific references to nature.

I ask people to think like a reporter when writing a software change request or a bug report. A newspaper reporter needs to cover the 5 W's: who, what, why, where, when and how. If you're writing a bug report, then act like a reporter:
  • Who got the bug?
  • What was the problem?
  • Where in the program did they get the problem?
  • When did it occur? Is it time dependent?
  • Why were they doing this and why is it a problem?
  • How can they recreate it and how did they work around it?

Another basic template is the user story in agile development: As a (who?) I want to (what?) so that I can (why?). The (why?) is usually associated with a value statement.

So, why am I writing all this? I had an idea that we need a template for error messages. With all the interest in Haiku, it would seem that software developers might catch a clue in writing better error messages. Just

What's wrong
Why it's wrong
what to do about it

8/30/15

Giant Apartments of Philip K Dick


I recently took a trip to New York City and was walking to the High Line when I was surprised to see an improbably immense apartment building.  Then I happened onto another, and another.  They were huge, each one consuming a NYC city block.  I'd never before seen anything like it, even when visiting communist countries like Czechoslovakia or East Germany.  The buildings were small mountains in the city, like something out of science fiction.  In fact, what they reminded me of most were the buildings in Philip K Dick novels.


In the movie Blade Runner, the Tyrell Corporation building is a huge pyramid in new LA, but in the book "Do androids Dream of Electric Sheep" the more shocking setting is the large empty decrepit apartment building where the fugitive androids meet John Isidore.  Most of Earth's population has emigrated off world, and only genetically damaged people like Isidore, who is a chickenhead, remain. They live in decaying apartment buildings meant for hundreds of people, now housing only a handful.  Blade Runner hints at this when it uses the Bradbury Building in LA as a stand-in for JF Sebastian's mostly empty apartment building.

Dick's early novels often had the protagonist struggling against oppressive buildings.  In "The Man Who Japed" the apartment committee is in charge of tracking moral offensives (such as missing a building committee meeting) and reporting the offenders to the government.  The hero, Purcell, subconsciously nonconforms by performing his japery, which only gets him into more trouble with the building.

The residents of the "great communal apartment building, The Abraham Lincoln" also have to deal with a heavy-handed governing committee in "The Simulacra," except in this case the committee also reviews tenant talent, and pits them against acts from other buildings in a competition weirdly reminiscent of Star Search or American Idol.  The winner of the local competition gets a chance to perform for the president of the US, "Der Alte", and first lady, the lovely Nicole.  People who don't supply talent for the competitions risk losing their apartments, and also their status as citizens.

In "The Penultimate Truth" the apartment buildings are almost a mirror of the image of the skyscrapers of the 20th century.  The elite Yance men live on large spacious estates, while most of the citizenry live in underground bunkers, ignorant of the true mechanics of their government. One of the sub-plots is the power struggle between the Yance-men and a free agent called Louis Runcible who builds apartment buildings for the occasional refugees that manage to escape to the surface.  The penultimate truth is that people have been tricked into believing that they want to live with security, at the cost of their freedom.


In "Martian Time-slip," the oppressive building is planned by the United Nations as part of Earth's colonization of the red planet. The complex will be called "AM-WEB", a contraction of the German phrase "Alle Menschen werden Brüder" (All men become brothers) from Schiller's An die Freude (Ode to Joy).

Meanwhile, Manfred Steiner is an autistic boy living on Mars. It is said that he can predict the future.  But Manfred's greatest fear is a future that only he can see.  Mars is derelict and the AM-WEB is a dumping ground for forgotten people like him, where he will eventually be confined as a decrepit old man to a bed on life-support. I've read enough PKD to believe that AM-WEB is a reference to the German concentration camp slogan "Arbeit Macht Frei" (work will set you free). But, it's unclear whether PKD means AM-WEB to be an allusion to the Nazi concentration camps, or whether it is a metaphor for the fear of schizophrenia.  The feeling of despair is there regardless.




In many of the novels the buildings are ominously present, but passive.  Two of PKD's works have buildings that play active parts in the plot.  The killer building in "A Maze of Death" first appears a tiny model, but then grows into full-sized structure which appears to the colonists on Delmak-O.  Something is written above the entry to the building, and each person each perceives the words to mean what they most hope or fear. One person sees WINERY, another reads WITCHERY, and one character interprets the word as HIPPERY HOPPERY, a place where they have people hop onto animals for “youknowhwat.”  The building has permeated both their consciousness and subconscious mind, representing their hopes and fears.

In a similar way, Heldscalla, a mystical cathedral embedded on the ocean floor of Plowman’s Planet in "The Galactic Pot-Healer" also represents hope, but it speaks to faith.  An omnipotent being, the Glimmung, gathers a group of artisans and craftsmen from Earth to help raise the sunken cathedral.  Each person has their part to play in the project, but as they proceed they learn there's a black Glimmung and a counterpart black cathedral also lurking under the sea.  The team begins to wonder whether they are working on the right side, and whether the project is even possible.  The obvious religious quandaries become even more frustrating when mixed with an unhealthy dash of Dick's paranoia.

In all these novels, the buildings are institutions: a hospital, the government, a church, a bygone way of life, a mental institution. They reek of the impassive face of authority. In all of Dick's stories he obviously preferred people over institutions.

Can we find the roots of this theme of the impassive building vs the all-too-human protagonist?  When Dick was in high school in the mid-1940s he underwent intensive psychiatric treatment for agoraphobia and other psychological troubles.  He wasn't institutionalized, but perhaps he felt a building would be a good metaphor for this combination of school and therapy, or for any authority figure.  Regardless of the source, it seems an apt image: the human against a faceless, massive, stone edifice, something that we think of as permanent.


In the end, PKD was all about humanizing his characters. Bringing a massive story such as colonizing Mars, World War III, or the corruption of the US government down to a personal level: a boy in a hospital, a man trying to find lifesaving supplies for a friend, or two guys who just want to get the jug band back together.  At that's what all good science fiction is about, taking the amazing and larger than life, and asking how does this affect me?

8/22/15

How to Achieve Flow

Have you ever been working on something that's so enthralling that when you pause for a moment you suddenly realize that hours have passed?  It may be well past lunch and you're hungry, but your work session was productive, focused and you felt good about it.  Maybe you wrote ten pages of your novel, or completed a software routine, or wrote a jingle, or just painted a picture, but while you were working, it felt effortless.
"During single-minded work time, people are ideally in a state that psychologists call flow. Flow is a condition of deep, nearly meditative involvment. In this state, there is a gentle sense of euphoria, and on is largely unaware of the passage of time."

That passage is from "Peopleware" by Tom DeMarco & Tim Lister.  The book is a thesis on what later became one of the tenets of the Agile Manifesto, that individuals and interactions are valued over processes and tools.

They discuss the benefits of flow, which are:
  • Total focus, no interruptions
  • High energy work, maximum productivity
  • Finding passion and fun in the work
  • Minimal effort to continue working
This sounds great, but the question is "How do I achieve flow?"  Here are my tips for getting to a state of flow.


Before you start, listen to your inner voice and see if the task in front of you is really what you need to work on.
  • Make a list of ten things you have to do.
  • Prioritize them by urgency and value.
  • Cross off nine of the things.
  • The remaining item is what you need to work on.
  • Throw away the list so it doesn't distract you.
Next, evaluate your task. Is this something that you can do by yourself, or do you really need more research or conversation with other people?  Be honest, but flexible. If you think you can accomplish 80% of the task alone, then go for it.  On the other hand, if you only have 20% of the knowledge, then maybe you need help.  For now, let's assume you have enough resources to accomplish most of the task.

Now that you know what you're working on, and have the right knowledge, you are ready to begin working.

Steps to achieving flow:
1. Get your butt in the chair.
If you're not in your workspace, you're not going to get any work done.

2. Make sure you're comfortable.
Adjust your chair if necessary. Make sure you're not too hot or too cold and the light isn't blinding or too dim.  Get a snack and take a bathroom break before you start.

3. Prevent interruptions.
Hide your cell phone in a drawer. Turn off notifications in your web browser and email. Put your desk phone on standby. Close the office door. Turn your chair away from the window or TV.  Put up a "Do not disturb" sign.

4. Create an audio wall.
Play some background music to reduce distractions. Choose music that you know, but it may not be your favorite. I prefer jazz without vocals.

5. Give yourself permission to work.
Set a mental tickler that says: I am now focusing.

6. Just start working, even if it's not productive.
If you fear starting, write for 5 minutes about what you think you're going to work on. This acts as both a warm-up for the real work, and also helps organize your thoughts.

7. Relax.
Don't try to hurry flow. According to "Peopleware" it will take at least 15 minutes, maybe more.  If you're going to be interrupted in the next hour, you will need to go back to step #3.

8. Focus.
Ignore the voices in your head that lead to other tasks. You've already dealt with that.

9. Let go.
Don't edit yourself. Flow is like falling asleep. You don't realize you're in the spell until it's broken. There's time to edit later.

10. Start.

6/19/15

For Stew - The Drummer

When I first met Stewart he was dressed up like a magic mushroom. Or maybe he was on mushrooms. I forget. It was at a Halloween party.  He’s gone now, so I can’t ask him.

I had gone out party surfing, a Saturday night habit in Corvallis. In a town so small, walking four or eight or ten blocks eventually lead to a party in progress.  A house with the doors open, music rumbling the walls, and college kids swarming the door like bees. Corvallis was also big enough that I could crash anonymously without any questions.  In this case the house was a Dutch-style farmhouse with a half-finished basement filled with a students.  Everyone was waiting for “the band” to play, but apparently they were missing the bass player.  The drummer and guitarist, Stew and Doug, were hanging out in the garage having a beer. I play bass, and usually I’m shy about offering to play music for a crowd, but maybe I’d had a beer as well, or maybe because it was Saturday night and Halloween and everyone was wearing a costume and acting slightly giddy, but I offered to get my bass and amp and fill in.

I don’t remember how I retrieved my instrument -- probably ran home and trudged back, bass and amp in hands. My bass at the time was a Mosrite, purchased from a friend in high school.  The amp was a farty little practice box, barely larger than a… well, in those days I’d say portable record player, or typewriter case, but these days I’d have to say karaoke machine.  It probably pulled 40 amps and the only way it could possibly be heard at the party was if I turned all the knobs up to ten. Which I did.

Doug had wild curly brown hair, was wearing a blue lumberjack shirt about ten years before grunge made it popular, and had apparently shaved off half of his full beard – left side clean, right side fuzzy. Stewart, in addition to the mushroom hat, was wearing what I’d come to recognize as his standard uniform: a rainbow tie-dye shirt.  When he saw me with the bass in hand he gave a huge grin, blue eyes as big as quarters, and helped me schlep the amp into the basement.

Doug had a set of songs that he’d written, as well as a couple of crowd-pleasers like “Louie, Louie” and “Tequila,” I just tried to stay in tune and on the beat.  Most of the time Stewart favored a shuffling beat, so it was easy to follow along.  The audience apparently liked it because nobody was leaving and half the crowd was actually dancing. The basement buzzed with the sound of guitar, bass and drums, and the shouts and cheers of a happy college crowd. We played for hours, taking a couple breaks for beer, and at the end of the night when they asked if I wanted to join the band, I jumped at the chance.  They were called “Maurice and the Chevaliers,” Doug was Maurice, so I became a Chevalier.  I still don’t know what happened to their former bass player.

At heart, Stewart was a happy guy. Maybe the reason I thought he was on mushrooms was because he always flopped into the room with the sort of grin that suggested a psilocybic euphoria.  In college he had slightly longer hair, almost a Dutch-boy haircut that gave him an aura of innocence.  I don’t believe he was innocent, but at peace with himself and this reckoning gave him serenity.  He liked the Grateful Dead, listening and playing music, making art and meeting people.  Both he and Doug were in the Fisheries program at OSU, so none of my computer science classes intersected with theirs.  A couple times he came into the restaurant where I worked to order a sandwich, but for the most part we interacted in the context of the band: getting ready to practice, practicing, playing a party, or hanging out after practice.

In our trio, Doug was the driver. He wrote songs and worked up the lyrics.  While Stew and I sang backup, he took on the lead vocals and played guitar.  If it weren’t for his direction, the band wouldn’t have any shape at all. Stewart was more laid back. If the gig happened, he was happy. If it didn’t – oh well, there’s another day.  He liked to play music, but if that failed, he enjoyed talking or just hanging out.  I like to think that I provided the bass riffs that held everything together. I smoothed over the rough patch that might appear during a song when Doug switched from vocals to guitar solo.  If Stewart lost the beat, the bass helped find it again.

During the time we played together I didn’t write any songs, but Stewart came up with one. The only lyric I remember of it is “see it shine, shine, shine.”  I have never much listened to the Grateful Dead, but it seemed like something they might play.  I don’t think Stew played any instrument other than drums, so when he described the melody to us he had to sing it.  His eyes went toward the ceiling as he recalled the lyrics, like he was getting a message from a particular star.  He sang the song to us, pretty sweetly, “see it shine, shine, shine..”  We tried for an afternoon to get it right, but it never worked as well as he imagined it, and I don’t think we ever performed it.

One song written by Doug was “Volkswagen,” popular among the fans of the band. It was an ode to the car manufacturer, touching on Hitler, Woodstock, hinky repairs, and the culture dedicated to their vee-dubs and hippie buses.  Doug hit the chords on the off-beat, and I chimed in with a Reggae-style bassline, while Stewart stuck to a Grateful Dead drum beat.  The chorus ran

Give me Type I, Beetle, 
Karmann Ghia, Funky Bus 
Squareback, Fastback, Scirocco or Thing 
The new ones aren't as cool, but give any to me 
As long as they're made in West Germany!

Both Doug and Stewart had Volkswagens.  Doug’s was a gunmetal gray VW Bug circa 1965.  Stewart had the hippie bus – I think it was the 1963 23-window model that he finally started to restore in 1999. As a poor college student, I didn’t have any car, but the song influenced me enough that I ended up owning two Rabbits, and two Fastbacks.  VWs had a certain cachet. Yes, they were promoted by Hitler, but they were also popular with the hippie generation, and one center of the 60’s was Eugene, Oregon, only fifty miles south of Corvallis.  At lot of the drop-out generation had migrated to Corvallis while dropping out, and perhaps we had picked up some of that nostalgia through osmosis.  Stewart loved jamming on this song, egging us on with a wild grin, or closing his eyes and feeling the beat.

We were young and we could play forever. I’d get blisters on my fingers, but that only built up my stamina for next time.  Stew, however, always got the full body workout on the drums. One time, after an hour of jamming, he’d worked up enough of a sweat that he pulled off his tie-dyed shirt. I was shocked by the scar on his sternum.  I’d had other friends that that had similar scars. They usually had a heart problem when they were born, or as young kids.  I don’t remember if I asked Stewart about this, but somehow I knew that he had a heart problem.  He never mentioned it.  Whatever problem he had had, it didn’t seem to interfere with life.

At the end of the school year Stewart graduated, and that incarnation of the band broke up.  Later in Portland we found a new drummer, and “Maurice and the Chevaliers” continued for a few more years.  But after graduation I never saw Stewart in person again.

When I think back on the whole experience, one night sums everything up.  We had been practicing, and were at Doug’s house. A week earlier he had bottled a batch of homebrew stout, and we decided to sample the results.  Doug’s girlfriend Sharon had shown up and the plan was to go to a party later. It was a late spring evening and the mild weather was a nice change after months of rain.  The party started late, there was no hurry, so we kept opening 22oz bottles of homebrew.  After a while we realized it was nearly 11pm, and thought about going to the party, or maybe to get something to eat.  Doug said he’d drive us somewhere, and even though he was probably drunk, all four of us clambered into his bug. The combined weight stressed the shocks enough that we scraped the curb pulling out of the driveway.  Doug pulled the car out of the driveway, but accidentally killed it changing gears.  With the engine dead, in the middle of the street, Doug decided to open the sunroof.

In the night sky over Corvallis, where we had been used to the comforting clouds of rain, all of a sudden there was a clear starry sky.  Everyone in the car grew quiet, and even the background noises of the small town disappeared, not even a barking dog or the faint motor of a car cruising 9th Avenue.  In my head today I hear what Stewart was trying to describe in his song: “see it shine, shine shine.”  For a moment it was peaceful, and then we all cracked up laughing.

Some might see in this a wasted youth. Kids drinking, playing, going nowhere. They should have been industrious at their studies.  I see it as a moment captured in time, a gift. There’s a saying, “Youth is a wonderful thing. What a crime to waste it on children.”  When you’re young you don’t realize how beautiful you are, and how life is a fleeting thing.  A moment like this, when reason is reduced to nil, free from responsibility, but able to see all the beauty of the universe, is a rare thing.

I walked home under the stars that night.

For Stewart Alcorn  June 23, 1964 - March 19, 2015