Tuesday, December 30, 2014

Short Story/Serial Book Review: Markram Battles

"And now, for something completely different!"

I am one for whom Dan Carlin's phrase "History has all but ruined fiction for me" rings true. I find that the real life exploits of historical figures, and the reality of their worlds, tends to make many aspects of fiction story telling, well, just not hold much interest. Fictional Mob Boss or the struggle for Alexander the Great's throne? Mythical marauders or real life Scythian warriors and their waves of descendants? Seriously, how can anyone top the Mongols, in fiction or elsewhere?

Still, there's a part of me that loves the "what if's" of both the near and distant future, with the possibilities, be they wondrous or terrifying, that make science fiction a place I enjoy spending time in. Added to that is my love of Role Playing Games, especially those that come from Japan (think the Final Fantasy series, Shin Megami Tensei, and Suikoden). Also, I love Animé series that look at the struggles of everyday people against overwhelming odds (think "07-Ghost" or "Gantz").  When something hits that sweet spot of all of those interests, and still focuses on the humanity of story telling, I pay attention. Add to that having an author of such material being a personal friend? Well, what else can I say? I want to share, and share I shall :).

M.C. Muhlenkamp is putting together a series of short stories that feel one part ancient Rome, one part Eurasian steppe, one part Japanese RPG and one part Young Adult dystopian struggle. Weave these all together and you get what is shaping up to be "Markram Battles". More to the point, "Markram Battles" takes a cue from the past, in that it is really a serialization. If you liked the idea of Alexandre Dumas publishing his "Three Musketeers" in small pieces, waiting to see where and when the next "dose" will appear, then here's an opportunity to do exactly that.

M.C. takes us into a word where "Earth as we know it no longer exists." In its place is an empire that looks to "recruiting" humans as "battle entertainment", specifically women. The rules of the battles are simple. Fight and win, or die trying. The story focuses on the interactions between the the empire of the Markram and the humans who are forced to play their game to survive. The first and second deliveries ("Genesis of an Uprising" and "Omens of Doom") focus on the interactions between Seven, a Unit Leader whose sole purpose is to lead recruits in battle, and Thirteen, an unwilling recruit who refuses to play the game, at least not in the way that the Markram want her to play.

The chapters are short and taut. The characters are believable even in their other-worldly space. Little in the way of useless exposition is given. The reader is expected to go with the story and figure out the world and its parameters without long winded explanations as to what has gone on before, except where it makes sense to give context to the situation. Even in the first short sections, you find yourself caring for the characters and wondering what will happen next, on both sides, Markram and human.

The cover sets the tone and the mood of the stories, and in this way, I can't help but feel drawn to parallels made in video games like "Shin Megami Tensei: Digital Devil Saga" or Anime like "07-Ghost", each with a fight to survive ethos and a shadowy "other" pulling the strings. The stories feel like they are designed for a YA audience, but don't let that dissuade you, as the themes and the stories focus are strong enough for all ages.

Bottom Line:
The serialization approach works well for this series. It feels like a Manga without the pictures, and that's meant as a solid compliment. Two issues in, I find myself asking "OK, so when will number three be ready?" If stories about human spirit and desire to not cave to the rules of an unfair system hit a sweet spot for you, give these stories a try. They are quick reads, and at $0.99 apiece, less expensive by far than a manga series, and every bit as engrossing and satisfying. Yes, MC and I are friends, but I'd dig this series even if we weren't ;).

Monday, December 29, 2014

In Praise of Khan Academy

Back a couple of weeks ago, I tagged along with my daughter Amber to bring her to Hour of Code. The class that she chose was being taught through Khan Academy, and as a person there, I figured I'd tag along and see what she was doing. In the process I set up an account, and then I forgot about it for a couple of weeks. 

During my holiday break, I was reading some posts about mathematics education, or in some cases lack thereof, and a friend of mine, who is a long tenured engineer, told me that he had gone back through Khan Academy and walked the Mathematics section, solely for the purpose of seeing how much he had forgotten over the years. His final analysis. It turns out he'd forgotten a lot of things, but more to the point, he mentioned that he came in contact with concepts that he had never studied, and how fun he found it to go through and check those areas out.

I must confess, it takes a special kind of masochist to go and do math "for the fun of it", or should I say, that was my initial reaction. Still, I found myself with several days off last week, and will have several more this week, so I made a personal challenge for myself to take on the same challenge. There is a track called "The World of Math", and it covers everything from the basics of Kindergarten level arithmetic all the way through to Linear Algebra. For the record, I managed to make my way through in my twenties to completing mathematics courses up to and including Differential Calculus, and then I hit a wall. I fancied that, maybe, I could give my old rusty neurons a workout and see if I could push through it all and get to those areas I never learned.

To date, here's where I stand (after three days of off and on focus on this goal):

To add to that, I have pulled in several other topics that just tickled my fancy, and I've been having a lot of fun walking through and checking them out (as of last Tuesday, I've gotten through entire lecture blocks on World History, Biology, Music Appreciation and Greco-Roman art). The materials range from really well produced to someone's screencast on a topic that interests them. All of them are proving to be a fun way to spend time and learn. Because much of the material is bite sized, i.e. can be viewed in anywhere from five to ten minutes, you get the feeling that you are getting a broader appreciation for these subjects, and doing so a little bit at a time (and quite often, you find yourself realizing that you are spending a lot of time, but you don't mind it one bit!).

If someone told me earlier this month that I would have spent close to twenty hours on Khan Academy in less than a week, I would have said "aw, come on, who has time for that?" Well, it turns out, I do! You might also notice that I haven't mentioned anything about their computer programming or computer science offerings. In addition to their Hour of Code, they also offer some respectable HTML/CSS and JavaScript tutorials and coursework, and some stuff on algorithms, cryptography and information theory. It's not enough to cover all the details, but paired with Codecademy and some other initiatives, there's a good chunk of material there to get anyone curious about programming to be able to make a fair stab at getting proficient. What's also cool is that Khan Academy keeps adding more and more material all the time.

My apologies for being late to this particular party, but I have to say, for anyone looking to brush up on long forgotten basics, learn something new in a super low pressure environment, and just plain have fun doing it, seriously, give a gander to Khan. I think you will enjoy what you find :).

Monday, December 22, 2014

BAST in the Saddle Again: New Talk for January, 2015

As many of you saw last month, we had some dramatic happenings in the Bay Area Software Testers Meetup group. We want to usher in 2015 with a bang, and to that end, I am please to say I will be giving a talk on Thursday, January 8, 2015 and I want you all to come.

Now, granted, this is probably going to work best for people who will happen to be in the San Francisco Bay Area on Thursday, January 8, 2015, but hey, why be exclusive ;). Seriously, though, if you can make it, here's the details about the event and what we will be covering:

All for Web, and Web for All: Designing and Testing for Accessibility - Michael Larsen

As the web, mobile, and other devices we have yet to fully comprehend proliferate around us, we want to do our best to cater to the customers that best represent the users of our products. However, there is a population that is frequently left with little to work with, and that is those who have to deal with physical disabilities. Issues with sight, sound, motor movements, comprehension and other disabilities puts many sites and apps out of reach for those who would most like to use them.

Making products that are accessible is more than just implementing a few tags so a screen reader can spell out the terms, it involves designing a product from the top down to be navigated easily and seamlessly.

In this talk, I will present some challenges those with disabilities face, ways that we can design products to better work for those with various physical disabilities, and that testing for accessibility can be a fun, interesting and important part of your organizations product offerings.

To RSVP, please see the formal invitation and event details HERE.

Friday, December 19, 2014

For Your Listening Pleasure: TESTHEAD’s Podcasts

It’s the end of the year, and it seems that people are going to be getting all sorts of new devices for the holidays. Smartphones, tablets, computers, etc. will likely be purchased by many, and with those purchases will be a need to fill them. In my personal opinion, while video tutorials and such are cool and all, nothing is as portable, engaging and good for short bursts of calm time, semi-active physical exertion or long road/air trips than podcasts. 

Thus, in the spirit of giving, I would like to give everyone a taste of my current listening habits, my podcasts of choice. Some of these have been with me for years, some are relatively new, all of them are informative and engaging (well, at least I think so). 

Additionally, I have also included websites with background info and storage for previous episodes. All are free for newer episodes, some sites charge for back catalog items. Most of course appreciate donations to help them keep the shows going, so by all means, if you can offer them support to keep producing stuff you like, hey, show a little love :)!

And now, without further ado…

AB Testing
Alan Page and Brent Jenson (AB testing, get it ;)?) talk about a variety of software testing topics and their combined four decades of experience, as well as their own meandering thoughts and topics that happen to come into their heads. Both Alan and Brent are long time Microsoft veterans, so there is, of course, a Microsoft flavor to the podcast, but don’t think that just because you don’t live and work in a Microsoft shop that this isn’t for you. There’s plenty to keep a tester (or anyone interested in software quality, regardless of role) interested. What I love about this is that it’s done in a very casual tone, as though they are just kicking back with a couple of beers and ranting about the topics that come up (please note: I have no idea if they are kicking back with beers as they do their podcast, it’s just the vibe it gives me, and I love it :) ). 

Back to Work
Two hundred episodes in, this is still one of my favorite guilty pleasures. Dan Benjamin and Merlin Mann generate a lot of banter in their podcasts, and for those who want the business end of the podcast each week, I’ll help you now with this tip, just fast forward twenty minutes and you’ll be much happier. However, if you’ve been with the show since the beginning, you’ll know that some of the most fun parts of the show actually take place in these twenty minutes, as well as the banter that carries over every show. It’s goofy, messy, often unfocused, but filled with gems if your goal is to really get into the things that make for creative work. Oh, and don’t be surprised if, after a few weeks of listening, you start to look forward to the rambling intros, because you feel like you are getting a glimpse at two of your friends just kicking it and getting caught up on what matters to them, only part of which is the actual podcast.

Common Sense with Dan Carlin
This is the first of two “indispensable” podcasts for me, ones I have listened to for several years, and that I consider the “gold standard” of what the podcast medium can deliver. Dan Carlin is a cantankerous, fast talking, highly caffeinated and animated commenter who bills himself as being “political by way of Mars”. Dan is based in the U.S., and many of the topics he covers are from a U.S.perspective, but what makes Dan different is he refuses to approach problems or issues from a partisan position. For tester looking to exercise their critical thinking skills when it comes to political topics, this podcast is a jewel. 

Freakonomics Radio
The subtitle of this podcast is “The Hidden Side of Everything”, and it tends to remain true to that tagline. Stephen Dubner and Steven Leavitt are the hosts of this eclectic show that mostly looks at economics, but is wonderful for testers because it looks at teasing out what the data tells us about a variety of topics. We think we understand how things work, and why the world looks the way it does, but very often, the hidden realities go counter to the agreed to narrative. Often controversial, always fascinating.

Grammar Girl: Quick and Dirty Tips for Better Writing
This is the first of the “Quick and Dirty Tips” podcasts that I follow, and the fact that I fancy myself a bit of a writer on the side of being a software tester, it should come as no surprise that I would appreciate a regular infusion of grammar and interesting ways to improve my game as a writer. Grammar Girl is hosted by Mignon Fogarty, and is full of interesting tips and tidbits about language, grammar construction, writing tropes, and etymology. There are as of this writing 446 episodes. That’s a lot of potential grammar tips, and while you may not want to listen to every one of them, you will not surprise me in the slightest if you come back and tell me you have heard them all ;).

Hardcore History with Dan Carlin
Of all the podcasts I listen to, most of the episodes are listened to once or twice, and then I delete the ones I listened to already. I do not delete episodes of Hardcore History! I have saved every one of them since the beginning, and I have listened to each episodes multiple times (and that’s no small feat, considering several of the Hardcore History podcast episodes are multiple hours long). Dan Carlin uses the same “Martian” approach to thinking as used in the Common Sense podcast and applies it to historical events. Earlier podcasts were brief entries, while the most recent podcasts would count as full audio books. Dan has a style of delivery that is dramatic, intense, and for me personally, enthralling. Many of the podcasts are continuous series. He’s currently doing a multi part series on the causes and effects of the First World War. The combined total time for this series (titled 'Countdown to Armageddon") is currently almost fourteen hours, with more episodes still to come. Do not be surprised if you find yourself listening for hours at a time. In my opinion, Hardcore History is the perfect long drive or long flight companion, and is still, to me, the gold standard of podcasting.

Philosophize This!
Stephen West hosts this podcast that endeavors to be a chronological exploration of philosophy and epistemology, and if listened to in order, does a very good job of being exactly that. Stephen goes to great lengths to keep a consistent narrative between episodes, and flashes back to what previous philosophers have said to help develop the context for current episodes. He mixes in modern metaphors to help make some of the esoteric bits make sense, and it makes for an overall very enjoyable and interesting series.

Planet Money
Hosted by NPR, and born from the wreckage of the 2008 Financial Crisis, Planet Money has a similar feel and approach to Freakonomics. It’s a very economics based program, with a smattering of finance and a lot of current events, and much like Freakonomics, ventures into territory that is unexpected and open to interpretation. If you think you know that’s going on, you may be surprised to realize how different things look when you “follow the money”.

Ruby Rogues
Ruby Rogues is a revolving cast of commenters, many of which are well known in the Ruby world, and frequently feature guests that talk about a variety of programming topics. I started listening to Ruby Rogues when I worked at a primarily Ruby and Rails shop, and while I have moved on to a work environment that uses different languages, I still listen regularly to this well done and well presented podcast. You do not have to be a Rubyist to reap benefits from listening to the show, but if you are familiar with Ruby, it makes each episode that much more interesting.

Savvy Psychologist: Quick and Dirty Tips for Better Mental Health
This is another Quick and Dirty Tips podcast I enjoy following, and I became interested in it due to some of the challenges I’ve dealt with around my own diagnosis and repeated wrestling with issues related to ADHD. Dr. Ellen Hendrickson tackles a variety of psychological challenges, puts it in terms that every day people can understand and relate to, covering topics such as procrastination, anxiety, depression, motivation, mood and creativity. Understanding the challenges we all face helps us relate better to those we interact with, as well as ourselves. 

Still Untitled: The Adam Savage Project 
You may know Adam Savage from his ten year plus run on the Discover Channel’s “Mythbusters”, but this series goes beyond his most well known career choice and talks about his involvement with special effects, the maker movement, and tests and explorations related to oddball interests. If you enjoy the Mythbusters approach and delivery, you’ll probably enjoy this podcast, too.

Stuff You Missed in History Class
As my interest in Hardcore History will likely tell you, I am a fan of history. I love the obscure and interesting bits and the connection to us today. However, Dan Carlin puts such time and attention to each episode, it can be months between episodes. This podcast (which is part of the “How Stuff Works” series of podcasts) is a twice a week history snack fest. Shows cover a wide variety of topics, often focusing on the weird or unusual. It’s great fun and a must listen for the avid history buff.

Stuff You Should Know
How did leper colonies come into being? What is terraforming? What did the enlightenment actually “enlighten”? If you’ve ever found yourself wondering about these things, and literally hundred more areas, then this podcast is right up your alley. Twice a week, the podcast covers interesting and unique topics that, when taken together, cover all sorts of areas that I may know a little bit about, but I always learn just a little bit more. If the idea of learning more about rogue waves, X-rays, and stem cells interests you, then this is a great destination.

TED Radio Hour
If you’ve ever seen or heard a TED talk, you know the format and approach. TED Stands for “Technology, Entertainment and Design”, and each hour long episode is based around a theme, with a talk from one or several presenters to build each themed episode. Programs range from games and gaming and how it relates to psychological development, to self determined education in Africa, to working with perceptions, to our relationship with animals. Guy Raz hosts this weekly podcast, and each week is a unique exploration into the unexpected.

Again, these are my favorites for this year and as of today. Next year, this list may be entirely different (though some will probably be perennial favorites). Here’s hoping some of these will be interesting to you, and hey, if you have some favorites you’d like to share, please post them in the comments below.

Thursday, December 18, 2014

Spreading Some E-Book Holiday Cheer: #Packt5Dollar Deal

For the life of this blog, I have deliberately avoided any direct advertisement, or made any attempt to "monetize" it. I plan to keep it that way, since not accepting advertising allows me to say exactly what I want to say the way I want to say it.

Having said that, there's no question that several book publishers have been more than kind, giving me several dozen titles for free over the years as review copies. More than half my current technical library consists of these books, and many have been great helps over the years. If I can return the favor, even just a little bit, I am happy to do so.

Packt Publishing, located in the United Kingdom, is one of those publishers, and they are currently holding a special $5 E-book sale. Any and all e-book titles from Packt are available for $5 for a limited time (until January 6, 2015).

Again, Packt has been very generous to me over the years, and I appreciate the fact that they are offering this opportunity. I've already take advantage of it... and have added even more books to my Tsundoku list (LOL!). For those curious, I decided to purchase the following:
  1. Backbone.js Cookbook
  2. Java Script Security
  3. JMeter Cookbook
  4. Kali Linux Network Scanning Cookbook
  5. Learning JavaScript Data Structures and Algorithms
  6. Learning Python Testing
  7. Responsive Web Design By Example
  8. Selenium Design Patterns and Best Practices
  9. Selenium webDriver Practical Guide
  10. Web Development with Django Cookbook
  11. Wireshark Essentials
Happy reading :)!!!

A "Linchpin" Challenge Revisited: New in "Uncharted Waters"

Yes, this is shameless self promotion, and yes, I would love to have you all read my latest post over at the Uncharted Waters blog titled "You Can Live Without a Resume!" I'm kidding of course. Not about wanting you to read the article, but about the shameless self promotion part. If I were really all about shameless self promotion, that's all I would say, but you all know me better than that (or at least I hope so ;) ).

When I say "Live without a Resume", I do not mean live without any reference to you or what you do. What I mean is "spend less time on the resume and spend more time on visible, tangible aspects of your work and what you can do".

If I were to try to convince someone I know my stuff about testing, and all I sent in was my resume, that may or may not get anyone's attention. What I do know is that, if it doesn't match their particular filtering criteria, it may never even get looked at. Personally, I don't want to start a conversation from that position. Frankly, I don't even want to have a conversation stemming from "hey, I looked over your resume, and..."

So what do I want to have happen? Personally, I'd prefer any of the following:

"Hey, I was looking over your LinkedIn profile and I noticed you had several talks posted. I listened to a couple of them, and I'm interested in talking more about what you said"


"I was looking at the Weekend Testing site, and I noticed your name listed on many of the sessions. I read a few, and hey, I think we might have something to discuss"


"I read several of your published articles. Could we get together and talk?"


"I spent an afternoon reading several posts from your blog. I think you're insane, but you might be a good fit for a friend of mine's company. Can I have them contact you?"

For the record, I have had every one of those things happen. No, this is not a way for me to strut and act cocky. Instead, it illustrates the power of having your work be on display in a way that steps outside of having a resume.

I owe this whole experiment to Seth Godin, and I've tried it now for almost five years. Granted, I could be proven wrong tomorrow. The bottom may fall out of the market, I could find myself unemployed, and then all of what I'm suggesting may not work any longer. That is of course possible. So far, though, Seth's hypothesis has proven to be sound, and for that, I am seriously grateful :).

Wednesday, December 17, 2014

Teaching by Example: Slowing Down to Get Ahead

It's been an interesting month with my daughter, Amber. We have been engaged in an interesting little "tug of war" over the past several weeks. I am realizing that I have to be very careful here, because enthusiasm on the part of the "teacher" can either inspire a student, or completely demoralize them and turn them off.

We've agreed to a simple goal, and for now, that goal is the Codecademy streak. I've told her I don't care if she only does one lesson on a given day, as long as she at least does that one lesson. Of course, I'd be really happy if she did two, or three, or ten, or heck, even do fifty like I did about seven months ago. Yes, I spent a free Saturday and completely pounded through the entire jQuery course. No, I'm not convinced that was the best use of my time, considering how much I still have to look up to write anything today.

What I realized from that particular experience was that my own enthusiasm to "push through" caused me to take shortcuts. I violated what I jokingly refer to as "The First Zed Commandment" which is "thou shalt not copy and paste". Those who have read any of Zed Shaw's books on "Learn [Language] The Hard Way" know that he espouses this pretty heavily, and I do too... most of the time. However, my own impatience often gets the better of me, and yes, I find myself cheating and copying and pasting. If I were looking to get in physical shape for a run, would I get the same benefits if I agreed to run 5K each day, but when I got impatient, I hopped on my bike and rode the rest of the way? Would I get the same training benefit? Would I get the same physical conditioning? The answer is, of course, no. Writing code is the same way.

At this stage, I may wish my daughter were moving faster, but if the net result is that she scores a lot of points, gets a lot of badges, but doesn't remember fundamental syntax or hasn't put the time in to recognize where she has made a mistake, what am I really teaching her? This has prompted me to, instead, ask her what time she wants to sit down with me, her with her computer, me with mine, and we work either face to face or side by side. This way, she sees what I am doing, and how I'm doing it. It may encourage her to do likewise, or she may say "hey, that looks odd, what are you doing?" Either way, it will start a conversation, and then we can discuss the fundamental details. I have to realize that it's better for her to pull from me rather than me push to her.

So fundamentally simple, so easy to say, yet so hard to do when "Dad Brain" wants to carry her along as fast as he can. On the positive side, this is also allowing me to step back and make sure I really understand what I think I understand, with the often neat realization that, hey, I really didn't know that as well as I thought I did. Consider this my solid recommendation to anyone wanting to learn how to code... teach your kid how to code. If you don't have one, see if you can volunteer at a school's computer club and offer your time. What I'm realizing anew is that the example of working through problems for them is a pretty amazing teacher in its own right.

Tuesday, December 16, 2014

The Weekend Testing Family is Expanding

It is with great pleasure, and a little bit of familial pride, that I announce there is a new kid on the Weekend Testing block.

During the first couple years of Weekend Testing Americas, Albert Gareev assisted me in getting the group off the ground, working on some more interesting and technical topics, and even worked with me to propose and try out the "Project Sherwood" project. We decided that the Weekend Testing model as it was designed at the time wasn't the best model for this expanded idea, but Albert didn't give up the fight.

We've talked a number of times over the past couple of years about how the Weekend Testing model works both as a distributed communication model, but that it can also work well as a live and in person event. We realized that what "Project Sherwood" was missing was that in-person direct give and take element. Albert figured for that to work, it would make sense to try it with a group he already had familiarity with and in a community where such events could be developed and focused on. Since Albert is in Toronto, he figured "why not set up a Weekend Testing chapter in Toronto?"

Why not, indeed :)?!

For those on the East Coast, and especially those in the immediate Toronto area, you are going to get a cool opportunity. Albert is a dedicated and accomplished tester, with a wealth of knowledge and a fountain of ideas. For those wondering if this is going to dilute the current Weekend Testing Americas offerings and sessions, I'm going to say "unlikely", because those who enjoy participating in these events will go to those that make sense for them and their availability. I've attended events in just about every of the chapters over the past five years, so in my mind, the more the merrier. The real winners are the testers that want to participate and learn some cool things.

So what should you do? For starters, go and join the Weekend Testing Toronto Meetup. Follow @WT_Toronto on Twitter. Check Weekend Testing's main site for scheduled sessions. Most of all, get ready for a fun and engaging opportunity with an interesting and passionate advocate for testing.

Monday, December 15, 2014

Companies Abhor a Vacuum

Over the past several years, I have seen time and time again that companies frequently say one thing but act in a totally different way. One of the key places I have noticed this is when someone leaves, especially if they are responsible for a critical area.

The common line is that they will hire someone to take over that role, but I've rarely seen it work that way. In fact, the large majority of the time, it falls to someone on the team who either has the misfortune of being assigned the task, or someone is crazy enough to jump into the breach.

I would recommend to any software tester, if you get the opportunity to find an area that is suddenly vacant, even if it may not be a skill or area you are entirely comfortable working in, take the person who is leaving out to lunch and ask them about that key area. It's possible they may not have time for you, but it's also possible they may be more than happy to show you how to work in that area.

As an example, we recently received word that one of our programmers was going to be leaving. There was some discussion in the Engineering meeting about some of the things this engineer was responsible for, and one of those areas (the management of virtual instances) was discussed as something that would need to be reassigned. I threw up my hand and said "I realize I may be out of the main flow of this at the moment, but in my past life I was responsible for handling the Hyper-V virtualization servers at a previous company. I wouldn't mind learning what might be different and where I could be helpful here".

Expecting to hear "Oh, that's OK, we can manage", I received an answer of "Wow, that's great! Yes, could you two get together and make that transfer happen?"

Truth be told, I felt pretty confident that this would be the case. Part of the reason was that I didn't ask permission, I just said "hey, I'd like to learn that". I relied on the fact that my company would have to either look for a person to fill the role, or let someone who volunteered try to take it on first. By voicing my interest, I solved a problem for them; they don't need to look for a new person to do that work. I also gave myself a jolt of electricity to take on something I wasn't currently doing, but felt would both help the organization and, additionally, help me ;). What I also did was couch the opportunity by saying I had a similar experience that I could use to draw upon. I wasn't saying "I know nothing about this, but I can learn". Instead, I phrased it as "I have some experience from this other domain that I think might help me bridge the gaps".

I can only speak for myself here, but I think we tend to wait for others to say it's OK for us to take on a particular responsibility, or to have someone tell us we will be doing something. We likewise might feel that we don't have the seniority or technical ability to take something on, or we may perceive our organization may believe we don't. My recommendation is, if you want to up the odds in your favor of getting an opportunity, ask after someone has announced they are leaving. I'm willing to bet that they would give you the benefit of the doubt. The alternative is to leave a vacuum, and companies abhor a vacuum ;).

Sunday, December 14, 2014

Book Review: Lauren Ipsum

As part of my current experience with teaching my daughter how to write code, I am finding myself getting into territory that I somewhat understand at various levels, but struggle to explain or make clear enough for a thirteen year old to likewise understand. How does someone explain recursion without causing a bunch of confusion in the process? In the past I have found myself struggling with ways to explain certain topics that help ground ideas of computer science, computing and programming, and how they actually work.

Carlos Bueno feels my pain, and to help answer it, he has written a book that is a perfect companion for a young person learning to code. That book is “Lauren Ipsum”. It’s subtitle is “A Story About Computer Science and Other Improbable Things”. More to the point, it is a computer science book without a computer. Wait, what? How does that work?

Carlos prints the following in the pages before the story starts:

I feel I should warn you: You won’t find any computers in this book. If the idea of a computer science book without computers upsets you, please close your eyes until you’ve finished reading the rest of this page.


You can also play with computer science without you-know-what. Ideas are the real stuff of computer science. This book is about those ideas and how to find them. In fact, most of the characters, places, and thingamajigs in Userland are actually based on those ideas. Check out the Field Guide at the back of the book to learn more about them!

“Lauren Ipsum” is the name of a girl who goes for a walk after a fight with her mother, finds herself lost, and in the process, meets an improbable cast of characters in a magical world called Userland. Through her travels, she solves various problems for herself and others and tries to find her way back home. Each of the people and creatures she meets personifies a different problem in computer science, and ways that can be used to help solve problems related to them. We are introduced to the “traveling salesman” problem, logic and choices, algorithms, cryptography, heuristics, abstraction, construction and deconstruction, networking, and branching paths, to name but a few.

At the end of the book is a section called the Field Guide to Userland, which goes into additional details about each of the chapters, the concepts mentioned in each section, and what they represent. If you are an adult looking for a quick reference for the book and the concepts being covered, this is it, and is frankly worth the purchase price of the book by itself. Having said that, don’t think that you can’t learn from the story itself. In fact, I'd be surprised if yo didn't find yourself enchanted by the main story as well. 

Bottom Line: This is a fun way to introduce problem solving and logic to kids who want to learn how to program. While we have lots of tutorials that talk about the syntax of code or the ways to build a program to do something, we often skip out on these other important topics until later, and then struggle with trying to understand or explain them. To that end, “Lauren Ipsum” does a great job at breaking down what can be difficult to explain topics in a way that a teenager can understand, but also in a way that grown ups who should know this stuff, but struggle with it, can have some new stories to work into their understanding. If you have a kid looking to learn how to code, share this book with them. Have them read it, of course, but take the time to read it yourself, too. You might find yourself much better equipped to explain the concepts as time goes on.

Saturday, December 13, 2014

Guest Post: Inside an "Hour of Code" with Amber Larsen

This blog entry comes courtesy of my daughter. On Saturday, December 13, 2014 in San Bruno, she and a number of kids from her intermediate and the local elementary schools participated in "Hour of Code". Amber signed up for the "Intro to Java" class. The materials being used for this class can be seen at the Khan Academy, and is an "Intro to Drawing" using Java syntax.

I'll let Amber take it from here:

I would say that the web site we used was very "child friendly". It helped to make it possible for children and teenagers to work on code. It had videos, so instead of reading it, you could see it happen in front of you. We also worked on projects where we were able to make shapes and add colors and work with a palette. It was a good introduction and it was easily doable in an hour.

The course was listed as an "Intro to Java", and while I learned how to make shapes and fill in colors, and yes, I know that I was using Java to make those changes, it felt like I was working with a very small area of the code. I don't feel like I learned how to make websites or an actual program, but then I don't think that was the point. They had a full programming tutorial for Java that we can continue with at the end of the hour.

I think some of the explanations needed to be listened to a couple of times. Some of the other kids I was working with got stuck, but we were able to talk together and straighten it out. It reminded me of the HTML and CSS modules I have been working with in Codecademy.

Speaking of Codecademy, I think my having spent the last month working through the projects there helped me a lot, maybe too much. I finished the set of videos and projects 25 minutes before everyone else.

One of the nice things about what the Intro to Drawing course had was that the videos could run and we could change the code as it was put on the screen. Also, there wasn't a big setup time. When I downloaded Python I had to install it, set up my IDE to work with it, make sure that the compiler worked, that my PATH variable knew about Python, and that the IDE could use the compiler. If we all had to do that, we would have easily spent an hour just getting all that set up.

If I had to say there was anything I didn't like, it's that right away it told me if I made a simple mistake (well, sure, but I'm not finished yet, hang on!). Maybe it's because I'm used to the Codecademy approach, where you fill in what you want to write, and then submit the whole thing, and if there's an error, the screen shows it and it makes a suggestion, and you have to figure out what you did wrong. In a way, that felt more like "testing". With this, it came right out and told you what you were doing wrong. I think I might have learned more without the frequent reminders, but it was an intro, so I understand.

I think that instead of calling it an Intro to Java, it should be called an Intro to Drawing (using Java) because we focused more on the drawing (making lines, making rectangles and circles, filling them in) than we did on the Java. Having said all that, I think it makes sense to do what they did, because they want to make it interesting for kids to want to learn more, and with that, I think they did a pretty good job.

Friday, December 12, 2014

Time is an Asterisk

It is that time again. It's the end of another year, and it's the time that I do my typical retrospective on the year that was, what I wrote, what I learned, what I did and what I didn't do. I did a little search for my "Retrospective" tag and smiled, realizing that this is the fifth entry in this series, and an (almost) fifth year of writing this blog. I think that's somewhat noteworthy, as I have very few endeavors that I can point to that have survived for five years, much less thrived. Outside of my marriage and family, and a couple of jobs, this may well be the single longest running entity I've ever managed. No, that's not a sign I'm looking to end this, in fact I'm just getting warmed up. Also, yes, the title is, once again, a nod to the Talking Heads song 'Once in a Lifetime". I'm not sure how many more years I'll be able to keep this streak going, but it worked again for 2014.

The year started with a lot of promise, and in some ways, a need to recuperate. Last year, I took on a daunting challenge of writing 99 action plans for what a software tester can do to become a better software tester. I have the contents of what could be a pretty cool book, but it needs editing, curating and a lot of revision. If there's anything I discovered about myself in 2014, it's the fact that huge looming projects can easily get derailed because I see and feel that they are huge and looming. I did the same thing with an idea to approach technical testing with Noah Sussman's guidance. In some ways, the sheer size and order of magnitude of these projects spooked me, and they got pushed to the back of my focus. 

At the end of the year, I realized I was perhaps too ambitious, and needed to step back a bit and rethink my approach. The saving grace for both of these projects is that they have the potential to turn into an interesting collaboration with my youngest daughter. Because of Google's "Made with Code" events, she has decided she wants to learn how to code. This brings back both of these initiatives, and several others, but now it puts it in a much clearer focus. The ideas I had are interesting, but unfocused. Helping my daughter learn how to code and text, that's a focus. I anticipate those earlier initiatives will get some fresh air and the embers will be stirred and blown back to life. It no longer just about me and my musings, now I have to put up or shut up ;).

This year has been an interesting transition, in that I have been receiving a lot of requests to write for other publications. I am grateful to sites like Smartbear, Zephyr, Techwell and IT Knowledge Exchange, among others, in that they have given me a platform to write about my experiences and pay me for them, too. Of course, that creates an odd tension. Do I hold back and publish for those who will pay me? That's great, but what about the articles that don't fit what they want to publish? What about the things that really only interest me and the readers here? Am I short changing my audience by holding back from this blog? I had to give this some serious thought and see what made sense to do, and ultimately, I decided that I needed to come back and say "what is TESTHEAD ultimately about?" It's really about the education of a software tester, and part of that includes learnings that come from unexpected places. My experiences have a value, and people enjoy reading them. Even more surprising is just how many people still visit my blog even when I haven't posted anything in awhile. What also fascinates me is to see what posts consistently show up as perennial favorites. As of today, my top ten posts are:
  • Testing as a Service? A Post-POST Post (workshop review)
  • Read Articles, Blogs, Forum Posts: 99 Ways Workshop (how-to guide)
  • Introvert? Extrovert? Or Both? (exploring diversity)
  • Learning to Tell Different Stories (exploring diversity)
  • Exercise 5: More Variables And Printing: Learn Ruby the Hard Way (how-to guide)
  • Inflicting Help (lessons from home)
  • BOOK CLUB: How We Test Software at Microsoft (5/16) (book review)
  • Onboarding and Not Getting Mau Mau'd (interpersonal relationships)
  • When Things Just Aren't What They Seem (interpersonal relationships)
  • I Used To Be a Staffer… (volunteering and leading)
What this shows me is that there is no clear theme as to what posts are most appreciated. It's not like there's a "type" of post that specifically gets more traffic than others. The one telltale sign I do see, though, is that of these top ten reads, most of them have to do with my own personal takes on things. Not some authoritative commentary, but just my fallible opinion of why things seem to be the way they are. Also, it seems the areas where I try something and it doesn't work out well, or an area where I am stepping in with guarded enthusiasm are where you all tend to come back to or tell others about. It means my goofy optimism and occasional cluelessness is appreciated and entertaining. I think I can mine that vein for a very long time ;).

This year saw me bring the testing message to a few different venues, some of which were not testing related. I spoke at the ALM Forum 2014 in Seattle, WA, Developer 2014 in Burlingame, CA, I shared the stage with Harrison Lovell at CAST 2014 in New York City, and went to be a participant and correspondent at EuroSTAR 2014 in Dublin, Ireland. During all of those events, I had a chance to meet many new people, start new friendships, discover new opportunities, and generally expand my world just a bit larger than it was before.

2014 was a year of transitions for me. It was a year that saw my eldest child move from High School to college. It was a year where  I lost several close friends. It was a year where I stepped down as the Chair of the Education Special Interest Group and relinquished my role as Treasurer within the Association for Software Testing, and accepted the role as President of the organization. It was a year that saw a Meetup group grow and flourish in San Francisco, then drift a little bit, and then have a hostile takeover attempt take place, to which the core community fought back. It reminded me of an amazing connection I have with many people, and how, when it looked like we might have to walk away, they stood together and said "Oh hell no you won't!" Weekend Testing Americas turned four years old, and has a healthy core of interested facilitators and participants who eagerly ask us "when is the next session?" BTW, December being so jam packed with other events related to families and other groups, we are taking December off, but we will be back in January, and we have a lot of cool new ideas to explore.

Most of all, I have to give my thanks and gratitude for this little forum, what it's become, and how it continues to surprise me, both with what I post here, and with how people react to it. Seriously, to whoever is reading this, whenever you read it, the fact that you took the time to come to my blog, to read something I wrote, to leave me a comment or share a link on a social media site, that you engage with me year after year, it's touching and humbling. Were it not for you, I'd have no reason to do this. Also, so many of the opportunities that come my way start here. Thank you for following up, for asking questions, for holding me accountable and for keeping me honest. It makes writing this blog a whole lot more fun because of that.

As the title says, Time is an Asterisk. It's not just a line to continue a theme (though it does that quite well ;)), it also reminds me that, truthfully, I don't know what next years letter will look like, or what forces are going to shape the next year, or what the flavor of the posts that come will contain, though I can probably offer some guesses. I have a lot of books I want to review. I have a lot of ideas I want to test out with my daughter to see if they work or not. I have a lot of goals I want to see myself obtain. Which ones I will actually cover, and which ones will be written about here, that remains to be seen, but I will do my best to make sure it's something interesting and unique to my own experiences. That I can pretty much guarantee. The rest is a wildcard ;).

Thursday, December 11, 2014

Book Review: Zero to One

As a birthday/Christmas present, a  friend sent me Peter Thiel’s “Zero to One” in a four CD audio format. Peter reads through and presents nearly four hours of audio that goes much faster than the elapsed time would indicate. On the audio production aspects and delivery, it does very well. Having said that, how about the book as a whole?

Zero to One is a book about being an entrepreneur. For many of us, we may stop right there and think “ehh, I’m not an entrepreneur, so this book isn’t for me”. I would encourage anyone with that attitude to not think that way. Regardless of whether or not we work for a company, or we are the founder of a company, or we do freelance work in various capacities, all of us are entrepreneurs. In the curation of our own careers, absolutely we are. To that end, we want to create, to do something interesting, and maybe, dare we say it, change the world.

Most businesses we will see tend to copy someone else in some capacity. They are content to copy what has been successful for others. This is what Peter refers to as "One to N” improvement. It’s incremental, it’s a shaving of time, it’s an improved efficiency, it’s streamlining of process. It may keep you afloat, but it will not rocket you ahead. For that, you need a different approach, a true sense of innovation, a mindset that will bring you from Zero to One.

Thiel presents many anecdotes from the past thirty years in Silicon Valley, with many familiar stories, ups and downs, and memories, oh the memories (having been at Cisco Systems in the 1990s, and with several smaller companies through the ensuing fourteen years, Thiel’s stories are not just memorable, they are my history, and some of the stories hit a little too close to home ;) ).

The book is structured around seven questions that any company (and any individual) should be ready and willing to ask themselves before they commit to a venture or creating what they believe will be a “killer startup”. Those questions are:

Zero to One:  Can you create something new and revolutionary,  rather than copy the work of others and improve upon it?

Timing: Is NOW the time to start your business? If so, why? If not, why?

Market Share:  Are you starting as a big player in a small or underserved market?

People: Do you have the right people to help you meet your vision?

Channel: Can you create and effectively sell your product?

Defensibility: Can you hold your market position 10 and 20 years from now?

Secrets: Have you found a unique opportunity or niche others don’t know about?

Additionally, Thiel encourages that any product that will qualify as a Zero to One opportunity will not just compete with other options, but it will offer a 10X level of improvement over what has come before. If it doesn’t, then competition may overtake and erode anything you may offer. Harsh, but perfectly understandable.

Thiel addresses topics like success and failure, of disruption and collaboration, of replacement and complementarism, and of the fact that any real good technology, no matter how good, needs to be sold and marketed. Engineers believe that if their products is as good as they think it is, it will sell itself. History shows time and time again that that is not the case, and Thiel comes down hard on the side of sales being a driver, and that sales must be shepherded.

Bottom Line: Zero to One makes the case that true entrepreneurship needs to start from the idea of doing something unique, and being willing to look at the seven questions realistically and determinedly. If you cannot answer all seven of the questions with a YES, your odds of success are greatly diminished. Even if all seven can be answered with yes, there are no guarantees. This book is not a tell all guide as to how to be an entrepreneur, but it does give some concrete suggestions as to how to approach that goal. It’s a what and a why book, not a how book, at least not a "formula" how book. It does, however offer a lot of suggestions that the future entrepreneur, company worker, or freelance creator could learn a lot from. If you get the book, read it twice. If you get the audio version, listen to it three times. I think you’ll find the time well spent.

Wednesday, December 10, 2014

Diversity is More than Skin Deep: New Uncharted Waters Post

A short post to say that I have a new entry up over on the IT Knowledge Exchange Uncharted Waters blog. It's titled, "You Keep Saying Diversity, Does it Mean What You Think it Means?"

As I discussed in my live blog posts at EuroSTAR a couple weeks back, many of the discussions are based around "external diversity". Understand, the current environment for many companies and events makes that conversation extremely relevant. I am sensitive to the fact that there is not a broad representation in the computer sciences or in information technology, and yes, gender, ethnicity, and mobility are important areas to focus on.

Less discussed are the areas inside of each of us that make us unique, and dare I say it, possibly hard to manage. This article is meant to keep the conversation going and look at the other less obvious areas where diversity may be taking a hit, even while we are focusing on external factors.

Please have a look, share your comments on the article page, and hey, while you're at it, perhaps consider making Uncharted Waters a regular stop. Between Matt, Justin and myself, we post a number of interesting articles about software delivery, technology, work, the changing technical landscape, and yes, even some software development and software testing, too.

Libretto: The Father/Daughter Coding/Testing Project Gets a Name

As I posted late last month, my daughter Amber has embarked on a journey to learn about software development and software testing, and has proven willing, most of the time, to work through the examples in Codecademy and some other example projects to learn more about code and how it works.

Tuesday  marked a milestone point for her in that she has now set a 30 day coding streak. As of right now, she is most of the way through the HTML and CSS course, and is about 10% through the Python course on Codecademy. I figured it would be a good time to have Amber tell us a little bit about what she has been doing and her reaction to all of this so far.

It's been 30 days, and in that time, I've worked through about 150 exercises, and I have installed my own Python compiler and a program called Geany, which is a nice little window where I can write all of my code for different stuff. I can write HTML, CSS and Python code in this tool, and I can compile and run the Python code I am running. 

Geany was a new tool to me, I learned about it when I was in Dublin, and it was used for the Programming for Testers workshop. What I like about it is that it is fairly unpretentious; it's a simple editor that gives the user color coding of different languages, the ability to hook up different compilers for different languages, and a stripped down interface that focuses on the core needs of the person using it. As an exercise for her, I asked her to download the code, get it installed, and get it working and try to do so with as little input from me as possible. By doing so, she had the chance to look at available sources, make a choice about what she downloaded and utilized, and then put it into use.

When I saw the different versions, I decided to download the newest one, which was Python 3.4.2. It was easy to install (I just followed the screens) and it was easy to put in the code and see the coloring of the letters. I noticed that the code I was working on in Codecademy wasn't working in Geany. I read a bit about Python 3 and found out that the print statement now needs parentheses. Since I'm just starting off, and I've only been doing this for a few days, I haven't really gotten into the habit of writing the code a certain way, so making the shift from Codecademy and Python 2 to Geany with Python 3... it's not hard, it's just something I need to do, and I just do it. It's a little bit of a challenge, but it's easy to handle.

One of the things I encouraged Amber to do with the materials she was working on and reviewing was to take the time to set up files in Geany that reflect what she is learning. Sure, there's a lot you can learn in Codecademy, and there's a list of all the exercises, but going back to review can take a long time, and locating the different items takes a while. When I worked through "Learn Ruby the Hard Way" a couple years back, I made local copies of each assignment, but even then, it was a litter of code and took time to find what I was looking for. As I was talking to Amber about organizing the things she was learning, I suggested that she make a personal project so that each item she learns, she can write it into the project and have it be part of a larger whole. I'm of the mind that we can learn a lot of things, but if we don't have an authentic problem to solve, or a way to put what we are learning into daily use, we will lose what we learn, or we will struggle to find it later.

I'll let Amber pick up from here...

As we were talking about gathering up each lesson, the idea was that I would make a set of files (a web site for HTML and CSS, some longer program in Python) and we'd make it grow and show examples, both on the screen itself and in comments. As we were talking about it, we were joking about the need for "sheet music" for the project. We both started talking about writing a "libretto" for the project, and we said "hey, that's a neat name", so we are now calling our project "Libretto". We are also using Dropbox to keep everything up to date so we can both look at it and "work on it" together. 

As Amber said, we happened on the term "Libretto" to describe what we are making. Borrowing from Wikipedia:

Libretto (pl. libretti), from Italian, is the diminutive of the word libro (book). A libretto is distinct from a synopsis or scenario of the plot, in that the libretto contains all the words and stage directions, while a synopsis summarizes the plot.

This seemed the perfect metaphor for this project. Instead of words and stage directions, this project would contain examples of what she is working on, as well as comments in the code to explain the code itself. It will be verbose, it will have lots of comment space. It won't be particularly elegant, but over time, we want to make it become a collection of classes, methods, IDs pseudo-classes, and other aspects that she can look back to and say "Oh, yeah, I made a pseudo-class that does this one thing, and I can use that as a framework to make something else". The idea is that, as she learns each language, the "Libretto" will tell the same story for that language. By doing so, she can work with the pieces and see how different technologies would solve similar tasks, and do so in a space that can be periodically refactored. The cool thing is that, at least for the time being, Geany looks to be up to the task.

Also, completely on her own, Amber signed up for a weekend class as part of the "Made with Code" initiative. She'll be spending a fair part of this Saturday working on something related to coding with others, most likely an intro to JavaScript, but there will be other opportunities as well. Perhaps our next check in will be to see what her experiences from that event are. Until then, happy coding :).

Tuesday, December 9, 2014

Book Review: Good Math

I am going to get this out of the way at the outset. Mathematics has often been a struggle for me. I managed to make my way through to my first semester of Calculus, and then I hit a wall. Having said that, I’ve always been fascinated with mathematics, and the history of how discoveries have been made always interest me.

Also, as a software tester, I often have to look at the calculations being made, and make sure they are right. For 90% of what I do, the math I have learned to date is fine, but there’s still that crazy rush I get when I look at higher order math, or math in areas I’m not familiar, and that door creaks open just enough for me to get a glimpse of something I didn’t understand before, or I feel I’ve come a bit closer to understanding it.

"Good Math” by Marc C. Chu-Carroll has proven to be very helpful in creaking that door and giving me a glimpse into things I thought I understood, but didn’t really understand. The subtitle of the book is "A Geek's Guide to the Beauty of Numbers, Logic, and Computation” and to be fair, the second two areas are the meat of the book. Yes, it goes into the classic popular numbers topics like the development of our numbering system, roman numerals, the discovery of pi, the concept of zero, etc. but it moves on from those pretty quickly.

Mark is the author of the "Good Math, Bad Math" blog. Many of the topics that are covered in this book (and many more that are not) can be read there. Those debates, and some of the confusion regarding different areas of math and computation inform much of this book.

Part 1 deals with Numbers, the one’s we are most familiar with, but also does so in a way that focuses on the rigor of mathematics to make the case for them. Natural numbers, Peano Induction, Integers, Real Numbers, and Irrational numbers get covered here.

Part 2 focuses on Funny Numbers, including the concepts of Zero, e, the Golden Ratio, and i (the imaginary number, what it does and what it means).

Part 3 focuses on the written numbers throughout history, including Roman Numerals, Egyptian Fractions, Fibonacci numbers, and the development of the arithmetic we so often take for granted.

Part 4 delves into Logic, or more specifically, the mathematical proofs that define logic. This section also covers ways of programming using logic and Peano arithmetic, with examples written in Prolog. Note: these examples are not comprehensive, but merely to give a taste of how to use the concepts.

Part 5 deals with Sets, and the variety of ways to look at sets in mathematics, including Axiomatic Set Theory, Models, Infinite Sets, and Group Theory/Symmetry.

Part 6 focuses on Mechanical Math, or Computation. Here is where the Computer Science aficionados may check out, but I was intrigued with clear descriptions of Finite Set Machines, Turing Machines, implementations of systems that are Turing Complete, and how Lambda Calculus is at the heart of the development of programming languages, especially Lisp and Scala.

As one who studied computers from an IT perspective rather than a CS perspective, I never fully got into the logical nuts and bolts of how computers really work. The sections on computation, as well as the sections of defining logic as a computer sees it, and in the strict notation of mathematical proofs, was fascinating.

Good Math is geared towards programmers, and is meant to introduce topics of higher math in ways that will help programmers understand how to implement the ideas, as well as to help them understand how computers actually go about doing what they do. Truth be told, for many of us who use higher level interpreted languages like Ruby, we can go a long way in writing code without ever being exposed to any of these concepts. There are several examples shown, but none worked out in detail. Again, that’s OK, as this is meant to be a survey book about mathematical concepts as relates to computing and logic, not a full blown course in how computer languages implement these models.

Bottom Line: If I were to suggest a core audience for this book, it would be to people like myself, people who have worked with programming languages, may even know a few cool tricks and have some system internals knowledge, but don’t have a strong foundation in higher math. Having said that, if you made your way through typical high school math courses, most of this will feel familiar and accessible. Some of it will feel strange, too (lots of symbols I’ve personally not used in years, if ever), but Mark writes about them in a way that makes them accessible. You still may find yourself reading various sections a few times. Well, I did in any event.

Saturday, December 6, 2014

Don't Know What You've Got Until Someone Tries to Take It

The past three days have been, shall we say, emotional, frustrating,  and wonderful, all at the same time. Most of all it has shown me that a group of vocal people can make a difference, but more on that in a bit.

First, some perspective. Last year, Curtis Stuehrenberg and I, along with Josh Meier, decided it was high time there was a software testing Meetup group in San Francisco. May not sound all that revolutionary, and wait, weren't their plenty of software testing groups already? Well, yes, if your main focus was on a specific tool. The Selenium Meetup group has been a de-facto testing group for years, and it's where a lot of software testers go to participate and share in testing topics from time to time, but what we noticed was missing was a focus on the "ilities" of software testing, as well as the areas that go beyond the programming aspects of software (or "paradev" aspects, to borrow from Alister Scott). Thus, we decided to inaugurate the Bay Area Software Testers group, or BAST, as we colloquially refer to it, with the following goals in mind:

The Bay Area Software Test Association originally formed as an impromptu attempt to provide software testers and quality engineers from San Francisco and the East Bay a place to meet and network without having to brave the Silicon Valley traffic snarl. Currently we meet on a monthly basis, providing a chance to hear people talk about general topics and socialize/network/schmooze some of the more interesting people on any software development team .... the testers!

We enjoyed several months of great talks, great conversations, and great activities, and then the summer and fall time frame saw less activity, due to scheduling challenges all of us were dealing with, and just a general challenge to get everyone on the same page. Sometime in this time frame, my Meetup account had been hacked, and I stopped receiving updates. Sad thing is, so much else was going on that I didn't get a feeling for what was happening until just a few days ago. A post to Twitter, though, definitely got my attention:

My first reaction was confusion, then bewilderment, then anger. How could someone hijack our group? Well, we discovered how quickly enough. In the interim as we were looking to transition out of the previous payment and registration (which Curtis had held) and to our new payment model (which Josh and SalesForce had offered to help us with) a member of the group jumped in and made the payment for the next year. In the process, they set themselves up as the organizer, effectively blocking us from being able to administer our own group. What followed was a conversation between Curtis, the person who shall remain nameless, and the folks at Meetup. We were, of course, frustrated that this new entity took over the group from us. We were doubly frustrated when they wouldn't give it back, and we were triply frustrated, and then enraged, when the group started to get spammed with commercial training dates posing as Meetup events. 

To add to the frustration, Meetup gave us the standard policy line of "sorry, it's not up to us, you need to work this out with the new organizer, as they have paid for the group". It was at this point that Curtis, Josh and I, as well as many other people, went on the offensive and started to look for other options. Would we abandon BAST? Make a new group? Drop Meetup altogether and go to another service (Eventbrite perhaps?). Several people took to the interwebs and started calling out the individual who had hijacked the group, and Eventbrite responded to us publicly and said that, if Meetup couldn't help us, they'd be happy to help us establish a new home.

This story, I am happy to say, has a happy ending. Due to the pressure and the vocal comments from several members of our broader community (many of which aren't even in San Francisco), Eventbrite willing to help us make a new home, and our own members posting to the BAST forum that they would not stand for their group being hijacked, and would therefore leave (myself being one who posted a similar comment), Meetup came back to us, allowed us to reinstate Curtis, Josh and myself as organizers, and we were able to deal with the person who hijacked the group and ban them from further participation.

Several lessons came out of this experience, but none more poignant than the fact that we realized we had a great thing, and that it could be take away from us far easier than we ever imagined. Second to that was the fact that we have a great community that cares about what we have created and were wiling to fight on our behalf, not just to say how sorry they were that this was happening, but actually step in and help us resolve it. Third is that people vote with their feet, and if you abuse their trust, you can lose their support very quickly. Fourth, it showed me that we can't take this group for granted. It needs to be cared for and it needs to be nurtured. To that end, for those who left BAST because of this recent mutiny, and for those who were unhappy with the change of events and chose to abandon ship, we want to let you know that everything is back to normal (perhaps even better than normal) and that Josh, Curtis and I are looking forward to making 2015 an active and involved year of discussion and get togethers. Perhaps we let time and momentum take over, but this recent upheaval showed us all how much this group mattered to us, and we are not going to let such a thing happen again. If you left us, please come back. If you want to help us develop events for 2015, we'd love to hear from you. Most of all, we look forward to getting together to socialize/network/schmooze with some of the more interesting people on any software development team .... the testers ;)!

Thursday, December 4, 2014

Crash Course: Making "Dry Subjects" Fun

As a software tester, this next recommendation is probably going to seem a little out there, but I think if you spend some quality time with it, you'll feel differently. Also, I'm a total fanboy of this series, and I want to make sure as many people know about it as possible.

Have you ever wanted to have an introduction and then a continued consideration of topics that are big, meaty and maybe just a little terrifying? Would you like to have those topics be fun to listen to, and be something you'd like to go back to again and again? Finally, would you like something that would be a great catalyst to help you change up the way you think about the world and, well, how you think in general.

Then Crash Course is for you :).

What's Crash Course, you ask? It's the brainchild of brothers John and Hank Greene. Put simply, it's a series of video collections that cover a variety of course areas. World History, U.S. History and Literature are taught by John. Chemistry, Biology, Ecology and Psychology are taught by Hank. A collection called "Big History" is taught by both of them with input from Emily Graslie of "The Brain Scoop". All of these "courses" are available via the Crash Course YouTube channel. Below is a sample video that explains the series:

OK, so this is the preview they used to launch the series in early 2011.
They have *lots* of videos up now :).

So why would I bring this to a testing audience's attention? Because it has been my experience that the more literate we are, the more engaged we are with our work. We talk a mean game about being epistemologists, so learning how we learn and what we learn should always be a priority. Additionally, we bemoan the fact at times that testers are (sometimes) lacking in scientific education and scientific rigor. 

Also, and my personal favorite reason, we don't know where we are going unless we know where we have been. Perhaps its my own personal projection going on here, but it's possible that I enjoy these so much because I NEED them to help fill out stuff I would have learned at a younger age would I actually have been a diligent student. 

Regardless, I think these are great examples of how to take potentially tough topics and make them engaging. They may not work for you the same way they work for me, but give them a try, and let me know if you don't find them as fun and as addicting as I do :).

Tuesday, December 2, 2014

Book Review: Accessibility Handbook

The past couple of years have been telling ones for me, in that I took on the responsibility at a new job to oversee the testing and updating of a group of stories that were the focus of an accessibility audit. By doing so, I walked into the world of Accessibility Testing and site development with Accessibility as its focus.

There are a handful of tools out there, and some books that describe what Accessibility means and things to consider when testing sites, but I was confused as to how to actually make the sites I was testing accessible in the first place. Katie Cunningham, the author of the Accessibility Handbook, felt the same way. Her goal was to make a book so that people who were programming websites would have a quick reference as to the what and the how of making sites accessible, with an emphasis on Section 508 Compliance, which is the primary standard for Accessibility in the United States. Akren stated her goal for the books  as follows:

"I decided to write a book that focused on the disabilities rather than the patches. Yes, alt text should always be used and tables should always be scoped. What’s even more important to understand is how poor alt text or tables with no scopes affect the experience of a user. Understanding a user’s tools and limitations helps developers and designers make the next generation of web applications without excluding anyone.”

So how does the "Accessibility Handbook” measure up to that stated goal?

The book breaks each chapter up into different physical challenges, and what defines those challenges as per the recommendations spelled out in Section 508. The chapter describes a set of “Annoyances” that would be present for the user without accessibility considerations, a list of tools available for the users in that capacity, and the methods used to remedy those issues.

Chapter One focuses on “Complete Blindness” and the primary tool for those who are legally or medically blind, and that is the screen reader. Utilizing a variety of tools depending on the platform to be used, this section explores how to optimize HTML and CSS to use screen readers. In addition, aspects such as WAI-ARIA tags are discussed, and aspects of how the product can be tested as well.

Chapter Two focuses on other types of Visual Accessibility, including issues related to Color Blindness and contrasting colors as well as issues dealing with low vision (where the challenges are that text is too small rather than completely unreadable.

Chapter Three deals with Audio Accessibility, which could be for those who are deaf or seriously hearing impaired.

Chapter Four focuses on physical disabilities, and alternative ways to navigate around the page.

Chapter Five deals with a variety of Cognitive Disabilities, including Dyslexia and ADD/ADHD, and how a variety of formatting options can make working with these individuals easier.

Chapter Six is about Selling accessibility to the organization.

Chapter Seven is for Additional Resources to help get the most out of developing for accessibility, including resources for information, for testing, for design, and about the various tools available for them.

Bottom Line: This is a thin book, coming in at 98 pages total, 80 pages of specific content, but don’t let its size fool you. This book will pay for itself with the first usability issues you find.  As you get better, you will be tempted to start creating unique personas for each of the areas, and by all means, do so. The process of seeing how solutions are presented, and how to make changes to those solutions, is well worth the purchase price.

Monday, December 1, 2014

A Yankee Let Loose In Eire: Some Less "Testy" Reflections

As it has probably been abundantly clear, I spent most of last week in Ireland, and the remainder of the work week getting there and back. Some of the situations I witnessed were humorous, sometimes frustrating, often educational, and also very eye opening.

Let's start with the actual travel. As is routinely the case, we are recommended to get to the airports three hours ahead of time when any international travel is involved. I heeded that call, and was, of course, in and out of security in less than twenty minutes. Having the freedom to therefore relax and just wait for my flight, I did exactly that. As a little bit of housekeeping, I went through and got everything together I could for the flight, and made sure my adapter was working. I reminded myself that last time, I brought a power strip with me to help make things easier, and the net result was the blowing of the fuse of the hotel room when I was in Malmö. I learned this time, one device at a time, and also, I greatly reduced my packing footprint. Just my MacBookPro, my iPhone, their power cords, and the converter to handle UK/Ireland monster plugs. through judicious packing, I managed to get everything I needed into a single bag I could carry on my back. It was thick, but it met requirements to get under the seat, so I was golden.

I am  grateful that trans-continental and transoceanic flights now have power outlets readily available in most seat rows, if not for each and every seat. I finally had the ability to keep power to my devices for the entire trip, which was wonderful. Keeping the devices actually plugged in? That's another story. I think with the frequency of use of these receptacles, it's near impossible to keep an adapter plugged in without it dropping of at some point. I quickly became adept at rigging up various jigs to hold the adapter plugs and such in place so they wouldn't disconnect mid flight.

My two hour layover in Washington, D.C. turned into a five hour layover because the oven in our trans-Atlantic flight was having problems. I'm sure some of you might be thinking "an oven caused that much trouble?" Actually, yes. Without an oven, a Trans-Atlantic flight cannot heat food, and going seven hours without food makes for a cranky set of passengers, so we were all shuttled of the plane and onto another plane at another terminal, along with its requisite checks (yes, the over worked this time :) ). One fantastic bonus was the fact that I had no seat mates for this flight. Not that I am not one who likes conversation with my fellow travelers, but the fact I could actually lie down across three seats, stretch out, and get some actual sleep? Awesome!!!

Out flight landed in Dublin at just a little after 12:00 noon. A quick step through Customs and Immigration including why I was in Dublin ("a software testing conference"... "a what?!" "yes, a software testing conference". I'm now three for three on having to explain that ;) ), and a trot over to get on the double decker green air bus, and I was whisked away to the Dublin Convention Center. I kid you not, I walked in, got my badge, walked up to the third level auditorium, sat down, opened my MacBook, and the official conference program and opening keynote started, right then and there. Sure, I'd have liked to have checked into my hotel first, and maybe changed clothes, but in a pinch, this was fine.

The half day program went quickly (my full running commentary of the day one of EuroSTAR can be seen here) and at the closing of the official session, we were treated to a drum corps that got our attention and then led us downstairs for the evening reception. As there was a dinner being held at Trinity College, but I didn't realize it until it was too late that we had to do a separate registration for that, I was happy to go out and explore Poet's Corner with Michael Bolton, Zeger Van Hese, Jokin Aspiazu, Ruud Cox and several other testers, including helpers in The Test Lab. We settled on The Bachelor Inn, which was a nice pub with good food and drink (and even something for a tee-totaler like myself :) ). As is always the case, the conversation was wonderful, and it is so hard to resist the temptation to hang out all night at these events. Alas, I was missing eight hours from my day, and I knew if I didn't make at least an effort to get some sleep, I would be struggling the next day.

I stayed at a little place called the Maldron Pearse, which was about a half a mile from the Convention center, across the Samuel Beckett bridge, and inside an area of Dublin that was an interesting mix of old and new. Many fresh new buildings stood next to those that looked like they were built in the early 1800s (or earlier). the Maldron Pearse is an older hotel, but undergoing some modernization. For the first time in awhile, I was hit with what it would cost to have WiFi service as a separate payment, and so I agreed to do so the first night, but not thereafter (worked out to being close to $20 a day!). Another factor that took a little getting used to is the latitude. At this time of year, sunrise wasn't until 8:00 a.m. and sunset happened just before 4:00 p.m. Also, though it was chilly in the mornings and the later evenings, it never felt frigid. I was able to make do with regular street clothes and a light snowboard jacket most days (it mostly stayed in the 40s F).

Day two covered a lot of ground. It would be the one full day end to end, so I made sure I was actively engaged in each session. My comments of day two can be seen here.  Additionally I took some time to check out the Test Lab and see some of what they constructed and how they were encouraging participants to get involved. Outside of that, I will confess to walking over to chat with some friends over at SmartBear, but I spent very little time in the expo itself. If there was any one thing I was able to take away from the conference (and this may come down as blasphemy to some) it's that the tools and the peripheral software rarely solves the real issues facing a company or an initiative. there are so many issues that are more important to focus on up front that, frankly, if your biggest problem is that you don't have the right CRM solution or you need a different test management suite, I'll be frank, you're probably doing awesome.

For me, the bigger view was the fact that, even in Europe, the problems tend to be universal. They are issues with communication, with culture, with hiring, with getting a disparate group to mesh. In fact, if there was any one takeaway that I could sum up from this conference, it would be the fact that we are focusing a lot of attention on "physical diversity" (which is great, do not get me wrong, and I'm happy to see that happening), but we are still failing at recognizing the "emotional diversity" that our teams carry. We can do everything right on the hiring front as far as the gender, ethnic background, and sexual orientation, and yet we can still build teams that are remarkably homogeneous, because we tend to hire people like us, all external aspects considered and factored out. Getting a truly diverse team means you have to go into harder areas to quantify, such as emotional connection, communication styles, verbal and written expression, analytical and creative thinking, and being willing to be fluid with roles and responsibilities. Seriously, good luck getting a software tool to help you with that.

One of my favorite aspects of any conference is the ability to meet people I've never met before, but have had some communication with through other mediums. Software testing has taken to social media like few other disciplines I have seen. Through blogs, Twitter, Facebook, Quora and other initiatives I participate in, there are so many software testers that I "know" but hadn't met in person. This event really drove home how many people "knew" me, by reputation, by prose, by initiatives I have been part of. I was able to meet someone in person for the first time and realize they knew a tremendous amount about me, about how I think, and about how I communicate. It was a thrilling feeling, and at time, I will confess, a little unsettling. Granted, I opened up myself for that by having a blog and a presence in social media, but I never quite get used to the feeling when I am talking to someone and looking to explain how I feel about an issue, and them answering that they already know how I feel about it, they'd read my comments on it just last month. Still, I really appreciate that so many people actually tune in to what I have to say, it's really humbling.

Our evening entertainment for Wednesday was an awards dinner and reception at Croke Park, which is the home to the Gaelic Athletic Association and what are the two national sports (outside of football) for the Irish; Hurling and Gaelic Football. Before this evening, I had no idea how big a deal these two games were in Ireland, and seeing the history, the names, and the highlight reels certainly drilled that point home. Croke Park Stadium felt huge to me. I cannot say whether or not it was the size of our American Football stadiums back in the states, but it certainly felt like it. Having had a wonderful night of conversation with friends old and new, a very filling traditional irish dinner, and some deserved awards (knowing that Rickard Edgren won the best paper award put it at the top of my list for items to review when I got home), the buses brought us back to the convention center, and we all made our way back to the comforts of our rooms, to sleep and prepare for another day.

For my final full day in Dublin, we took part in Day Three of the conference (all of which from my perspective can be read about here), and several talks that, again, deal with the real issues that teams face. Again, I will emphasize, the problems with software and products that ultimately fail are less to do with technology and tools, and more to do with people and interactions. Unless we get that part right, ultimately what we do on the product front will be less effective than it can be. Additionally, we all need to realize that the problems on the people front are the hardest to solve, and take the most time, talent and energy. I appreciated very much Shmuel Gershon stepping in to do a last minute keynote (which he did a fantastic job with) and Zeger Van Hese's closing keynote about the interconnectedness of everything we do. I also have to thank Zeger for giving me a term that has become very looming in my reality (Tsundoku), and a fighting desire to do something about it :).

After the closing keynote, we had a session that was about programming for testers. While I have had some experience with programming, I often appreciate these workshops because I like to see how they go from zero to sixty in however long it takes, and what we walk away with in the process. For me, I walked away with a free IDE I'd never used called Geany, and some quick and dirty tips as to how to get people who had never programmed up with some quick wins and the desire to keep going. My intention is to use the same ideas as I pair program with my daughter in the coming weeks. Geany seems a good tool to do what I am hoping to.

Our final night together had a bunch of us making our way over to St. James Gate, with a tour of the Guinness Storehouse, and a museum dedicated to what is quite possibly the most iconic of Irish products. The tour was a great deal of fun, with a lot of history, some insights into a nearly 300 year old company, and what they have done to remain both profitable and relevant. Some good lessons overall in the tenacity of vision, and the willingness to play the long game (they have as one of their fist exhibits a document that is a 9,000 year lease for the St. James Gate property. Now that is long term thinking!). After a lesson in how to "pull the perfect pint from a nitrogen tap" and some breathtaking views from the top of the storehouse in the Gravity Bar, we went to get some dinner and continue the conversations in Crown Alley at one of the beter known and packed full pubs, where I was able to get an Irish translation of an American Thanksgiving dinner (which was quite enjoyable, I have to say :) ). A little walking around, and a little more conversation, then came the realization that there would be an early morning cab ride to the airport, some more waiting, and a long stretch to get home. I took my leave and got a couple of hours of shuteye, then packed up, got into a cab and made my way to the Dublin Airport.

A quick note on people in the States who complain about how much things cost. I found myself regularly doing the mental conversion of typical meals, costs for cabs, general purchases for items, etc. and I can honestly say that Ireland (or at least Dublin) has a higher cost of living than I do in my home town. I could chalk it up to being in touristy areas, but overall, I was still surprised at the costs of many items that I get for much less back home. Traveling to other parts of the world always opens ones eyes, and lets them understand the differences, even in little things.

The flight home I knew was going to be long. I'd have a seven hour layover in Toronto, as well as an almost seven hour flight from Dublin to Toronto, and a six and a half hour flight from Toronto to San Francisco. Interestingly, with my battle plan in force (reading through my collection of e-books and taking notes) coupled with the time it took to go through Immigration and customs in Canada (which to my surprise, meant I had no visit with customs in the U.S. when I arrived back home), those seven hours went much faster than I anticipated. The flight from Toronto to San Francisco, honestly, I slept most of the way. I landed just a little after 11:20 p.m. and by the time I walked into my house at two minutes to midnight (cue Iron Maiden in the background ;) ), I had spent twenty seven hours traveling door to door. Needless to say, I spent most of the weekend recuperating and getting myself back onto Pacific Standard Time. Today, I feel like I'm mostly back to normal.

To the organizers of EuroSTAR, I wish to say thank you for inviting me to your conference, and for giving me a free conference pass as "The Green Tester". It was an interesting situation to be a Yankee abroad, and to realize that I was one of the few people from the U.S. at this event. To hear so many different accents, so many different stories and situations, and to feel a part of a slightly bigger world, I am grateful for the experience. Additionally, to be a delegate without any other obligations, without having to speak, work a booth, do some background work, or other involvement that I have done the past five years, it was a terrific experience to just be at liberty to seek out and find answers to my own questions. In many ways, I did just that. For several questions, I didn't find answers, but I did find new avenues to explore and consider. I'd say that makes for a successful week :).