Reading & Writing, the I/O

I grew up with a lot of books in our home but I rarely recall someone reading them. My mother was perhaps the most avid reader with her interest in romance novels while my dad read the daily newspaper and his magazines. Their library was (and still is) a homage to the books they read, not an anti-library of books to read. As a result reading for fun wasn’t a place I visited much in my youth.

Things started to change around the time I became interested in computers. Our first computer with a modern OS was a Gateway 2000 with Microsoft Windows 95 and in those days came with Microsoft’s Encarta Encyclopedia. Despite having physical encyclopedia’s in the house I gravitated more towards exploring the digital encyclopedia. Reading it was fun because you had (in those days) quick access to vast amounts of information for a wide range of subjects. Essentially it was the pre-cursor to the vast archives of Wikipedia where to this very day I can still spend hours “wasting time” digging through articles & googling tangentially related things like How much money did Home Alone gross and what can I learn about Joe Pesci?

Reading is the Input

Today things are much different. Between micro-news, articles, blogs, podcasts, audiobooks and books I read daily, kind of like a maniac. Much of this feeds into my inspiration for writing. It might be a topic I agree with, some description or analogy that helped me understand something or even something I disagree with and want to see if I could explain / convince someone of better.

I start by capturing the inspiration either on paper (and later transferring them to) or directly in Evernote (something I highly recommend). The more I read, the more I discuss, the more pieces I seem to gather. Just last week I added three notes on topics such as: test cases are not deliverables, why the distinction of black-box and white-box testing approaches are valuable and some thoughts on testers writing production code. Turns out this method of capturing ideas in small pieces and storing them for later is what Jerry Weinberg calls The Fieldstone Method in his book Weinberg on Writing: The Fieldstone Method. (Think of walking through a field of stones and collecting ones you think will be useful later when building things.)

Writing is the Output

The workflow goes something like this:

  • Find an interesting topic or idea and write it down in Evernote (initially just as a title)
  • Add whatever context, or information or inspiration I come up with as bullet points
  • Tag it with a topic and priority
  • Forget about it until the time my energy for the topic comes back (or if it never goes away keep working on it)

At this point I’ve collected slightly less than two hundred notes (or fieldstones) on a wide range of topics. Most are about software development but it doesn’t matter what topics they are on, as long as I think they might have some value I’ll collect them. Over time I hope to have enough stones to assemble articles like this one and maybe a book or two. For me these two things, reading and writing are linked; one is the input and the other the output.

2016 In Review

It’s a new year which means it’s time to look back at the previous year. Although this isn’t a lessons-learned or a progress report, these reviews are like a snapshot in time, forever preserved in writing. Unlike the past years I had no specific writing goals for 2016. I knew my attention would be focused elsewhere and yet I still managed to write 13 posts, bringing this site’s total to 108!

Popular posts don’t mean much but they are an interesting barometer of what others have found valuable.

You can find previous years here: 2015

Most popular posts of 2016, written in 2016:

The most interesting and/or valuable for me differed a little bit from this list. I enjoyed writing the Selenium GuideBook review and was something I had wanted to do for a while. Writing the post on Debugging Selenium Code was great because I don’t use an IDE when developing Ruby scripts, I kept forgetting the steps, couldn’t quickly Google and so found it immensely valuable to write it down (and eventually share). Selecting Platform Configuration Tests didn’t come out as great as I had envisioned it. However writing it forced me to deal with a combinatorial problem (device or configuration explosion) and then try to systematically make a choice about what I was going to test (sampling). It was fun and I keep thinking of other ways to apply it.

The Future

It’s 2017 so technically I mean the short-term future (including the present). I started a new job at a startup called Laurel & Wolf which means all kinds of fun changes and challenges (hopefully I will write about a few of them). I have yet to take the State of Testing 2017 but will be doing so shortly, so don’t you forget to sign up!

There are a number of testing topics I have been slowly tackling and unlike 2016 which seems to have been dominated mostly by tooling challenges, I plan to write about non-tooling topics. I haven’t yet sent out the first email to the amazing people on my email list but that will happen soon! 2017 is the year! If you haven’t already, join the email list!

As the World Turns

“As the world turns” seems like the best way to describe the busy-ness I’ve experienced recently. Feels like I’m forgetting a lot of things and to help I’ve written them down. I’m also feeling goofy so this post might contain a few GIFSs.

Work has been busy as I split my time building out our front-end automation suite and the remaining time exploratory testing. We recently brought on two new testers and combined with the pushes we’ve been doing it’s been all WORK WORK WORK WORK WORK.

For the past 8 or so years I’ve taught scuba diving through the retailer Sport Chalet which filed for bankruptcy in April and last week finally closed the store. While I’m still certified (and skilled) to teach scuba diving I haven’t yet decided if I will. If I do teach on my own there are some logistics to figure out like insurance, pool to train out of, or I could always join another dive shop. The upside of this means I’ll mainly do fun diving and have a little more spare-time!

Outside of those two things I’ve been helping my local dive club replace it’s aging website and leading an AST-BBST Test Design course. These classes are always fun but take a lot of effort for both the instructors and students. I try not to do BBST classes back to back and despite having a one month break between classes I just didn’t have the time to decompress like I thought I would.

For all these reasons and more I haven’t written much, except for this new blog post on LAWST-style workshops over at TestingConferences.org. I have lots of things to write about, lots of things to do and not a whole lot of time. Isn’t that always the excuse? Despite this, I’ve managed to keep TestingConferences up to date and finally transferred it to its own repo! (Want to help out? Contact me!)

Recently there’s been a lot of tweets about the context-driven-testing community (CDT) as a whole (or at least with some of its leaders / loudest members) and their perceived (or actual) hostility towards test automation. Some of this was in response to Chris McMahon’s post criticizing this publication about a single approach to test automation that uses the CDT branding. It’s been interesting to watch and to try to understand and I was glad to see some remarks from a few other CDT luminaries or “announcers” of community clarify a few details:

I have yet to read the publication above so I can’t comment too much on the validity of the criticism except to say I value test automation. I think it’s the only way to be effective as a tester. I also realize it’s a complex topic. In the end though, the real value of the context-driven-community and it’s way of thinking, to quote Cem Kaner, “lies in the nature of the tester’s analyses…” and that’s the part that interests me.

To end on a funny note:

2015 in Review

The beginning of the year seems an appropriate time for looking back at the good and the bad of the previous year. Looking at the data to determine what things I want to continue doing or to develop and what I might want to change.

I had a lofty goal of publishing two posts per month for 2015. I ended the year with 21. Not bad, but I’m going to push my goal higher for 2016 and aim for three. Sometimes when I’m writing I become conflicted about the frequency with which to post. I don’t necessarily want to write about everything little detail. However, when I look back on the posts I have published I’m always happy that I put something out. Still I’d like to side on quality over quantity, so I’m ok if I don’t hit that goal.

Popular posts don’t mean much but they’re still interesting.

Most popular posts of 2015:

Three of those popular posts were time intensive to produce and I’m very proud of them. The other two solve specific problems for me and apparently for others as well. There were quite a few other time intensive posts that I’m proud to have written that just missed the top five but would make it in a top ten list. In summary, I’m happy that what I’m writing is getting some attention.

2015 marked a few big launches: In February I moved to publishing all my writing here instead of at that old blog. In October I launched an open source list of software testing conferences and workshops at TestingConferences.org and I’m delighted and surprised every time someone commits an update.

A few other tidbits about 2015:
  • Didn’t get to read as many books as I had originally planned to. Not sure if 2016 will be much of an improvement. Most of the books I read are non-fiction / reference and I know that will shift next year to more fiction / sci-fi. On the positive side, I read a lot of blog posts and articles!
  • I haven’t yet sent out the first email to the amazing people on my email list but that will happen soon! 2016 is the year! If you haven’t already, join the email list!
  • I realized I don’t like the layout of this site / template and want to change it’s look and feel. Maybe I’ll get to it in 2016?
  • I taught just a little bit of scuba diving but a lot of software testing. 2016 will be even more.

The Anti-Library

The writer Umberto Eco belongs to that small class of scholars who are encyclopedic, insightful, and nondull. He is the owner of a large personal library (containing thirty thousand books), and separates visitors into two categories: those who react with “Wow! Signore, professore dottore Eco, what a library you have! How many of these books have you read?” and the others – a very small minority – who get the point that a private library is not an ego-boosting appendage but a research tool. Read books are far less valuable than unread ones. The library should contain as much of what you don’t know as your financial means, mortgage rates and the currently tight real-estate market allows you to put there. You will accumulate more knowledge and more books as you grow older, and the growing number of unread books on the shelves will look at you menacingly. Indeed, the more you know, the larger the rows of unread books. Let us call this collection of unread books an antilibrary.

Nassim Nicholas Taleb in the Black Swan

A Collection of Menacing Books

The more I attend conferences, interact with others and read blogs in the various software communities I take interest in (testing, entrepreneurship, technology, etc.) the greater the number of books I find I’d like to consume. It seems almost automatic these days to ask for books or references someone has found useful to solve problems or gain a wider (or deeper) perspective on a subject.

Yet a collection of books on a list or sitting on in Dropbox isn’t nearly as menacing and doesn’t call to me the same way as having those books sitting on my shelf where I have to watch them age.

No Clutter
I try to find balance between only owning those things I can and do use regularly and a more consumerist desire where I need to have lots of options. I’m more on the minimalist side where I want no clutter (of anything) so I constantly edit what I own. Part of this comes from wanting to be practical and trying to understand trade-offs between buying something now or something better later. Part comes from the fear of getting “behind” or having too many choices.

This manifests in many ways including trying not to accumulate too many books.

A Research Tool

When I first toured Cem Kaner’s personal library I fell into the first category of people from the quote above. I think I said, “Wow what a library”, as the size of his personal collection was more immense than anything I’d seen. Now it wasn’t comparable in size to Umberto Eco’s but it was impressive enough that I felt the need to tell him so. My parents have book shelves filled with books they read twenty years ago but Cem had bookshelves full of books he hadn’t read and those he kept around for reference. After my “impressive” comment, Cem made it clear the point of his private library was not built to impress but as a research tool.

Keeping materials around for research or reference makes sense. Some you might keep around because you feel a special attachment to or because they gain in value but most books don’t. They aren’t trophies either.

The Anti-Library

The anti-library (or antilibrary) seems like the logical compromise between acquisition and usefulness. Get rid of those books you’ve read and aren’t likely to reference again and keep the collection of books you haven’t. Don’t make it your library, make it your anti-library.

Blogging for your Career

It may not seem obvious to the casual observer but one of the major ways the testing community disseminates information is through blogs. When practitioners want to find help or stay informed of the latest on goings, reflect on events, the medium-of-choice are blogs. We are able to disseminate and discuss things online in an open space for anyone to consume and criticize.

For the individual a blog can also serve as a public identity; proof you exist. It signals to others in the community that you feel discussion and sharing are important. It could also signal to potential employers you have depth and experience dealing with issues they may consider to be important.

My current employer contacted me because the CTO saw me write about a topic they had a need for. I consider software testing to be an important role in the world of software engineering so I write about it. To them that was important or at the very least a differentiator outside of my resume or LinkedIn profile.

I believe modern software professionals must shape their own identity or else it will be shaped for you. There may be times when its smart to keep your identity small but not with your career.

At the very least a blog is a starting point. I can’t tell you how many people have used my blog as an introduction / conversation starter for gauging my interest in a job, product, or service offered for the industry. Don’t get me wrong I think writing is hard and requires practice but it can lead to all kinds of interesting connections if you use it right.

There are lots of reasons to blog:

  • the intrinsic value
  • to share what you know and think is important
  • be part of the community
  • advance your career
  • you enjoy writing

Being afraid to write or say something in public is NOT a good reason to avoid blogging. A few years ago when Google was testing their Chromebook concept they created the Chromebook CR-48 as part of the Chrome OS Pilot Program and I believe that having this blog was a major contributing factor to me qualifying (early on) for the program. For more posts on the early versions of ChromeOS look here.

Where do you start?

There are a lot of popular options. In the book Technical Blogging author Antonio Cangiano suggests the 3 options:

  • WordPress (his recommended smart choice)
  • Static site generators like Jekyll (think GitHub pages) or Octopress that use Markdown
  • Blogging services like WordPress.com, Blogger, etc.

Cangiano recommends getting your own web host and setting up a WordPress site because it has the most customization options. Up until a few months ago I would have agreed (WordPress) but I’d like to suggest another option for those who’d rather start writing right away.

Medium

I’ve written two “stories” on Medium here and here and in that short time I have to say Medium is by far the best writing platform. It’s not as great as WordPress for customizing your identity but it is a great writing platform and for anyone thinking about blogging for their career one word of advice – content is king. Start with content. Medium allows you to focus on the content (easy to write, share drafts, simple formatting, etc).

Create your public identity and signal to others in the community what you feel is important. Blog for your career and if you want to do some research take a look at Cangiano’s book. What should you write about? I like Cangiano’s advice:

blog for the position you want, not the one you have.

Guilt about not buying music

Ever feel guilty about not buying music?

I don’t mean stealing, torrenting or other ways of not paying for music. I mean the guilt of not directly paying for an artists work (song, album, video, whatever) in this day of streaming everything. Maybe guilt is the wrong word. Do you ever miss the feeling of not having some physical representation of your fandom?

Sometimes I do but I’m not sure why. I’ve likely spent more money, on average, every year for the last few years for music streaming than I did back when I’d either purchase a CD or something on iTunes. (Paid subscriptions include Spotify and Satellite radio but don’t include the ads I listen to on Pandora, Satellite radio stations and video ads.) Perhaps it’s nostalgia or maybe the ownership of a physical item is more salient? 

This came about as we’ve been traveling frequently between northern and southern California preparing for our wedding. We recently went into a Rasputin Music in Stockton where CDs cost $0.99 — $3.99 for used and upwards of $15 for new and popular albums. Besides the nostalgia of songs we’d heard back in the day (which are easy to find on Spotify or YouTube) there was a practical reason to have CDs — my now wife’s car doesn’t have a way to interact with our iPhones, has basic radio (terrible on long road trips) and a 6-disc CD player (sometimes it’s nice to have “off-line” music choices).

As we bought CDs for the trip, I had a hard time reconciling what I’ do with the physical discs once the trips were done with. I did however feel like it was more apparent (salient) we were directly contributing to the artists — showing our support as it was. I know better than to think the artist sees any (or much) of that money but there was a more direct link. This was the first time in a long time I gave much thought to paying specifically for one album (first time in a long time I’ve purchased one physically).

I’d purchased a number of albums over the years on iTunes and Apple recently gave away millions of free copies of U2’s latest album but those have a different feeling. Guilt temporarily kicked in.

I enjoy supporting artists on kickstarter where backing a project feels like a personal investment. I enjoy going to concerts from time to time and seeing an artist in person. I think buying a CD gave me some of the feeling of person investment but I don’t think streaming music or buying an album online provides that opportunity or feeling.

Maybe someday that will change?

From a recent TIME article:

Bono tells TIME he hopes that a new digital music format in the works will prove so irresistibly exciting to music fans that it will tempt them again into buying music — whole albums as well as individual tracks. The point isn’t just to help U2 but less well known artists and others in the industry who can’t make money, as U2 does, from live performance.

Then again, maybe not.


Cross published on Medium.

Deliberate practice of writing

Writing is hard.

I’m always coming up with concepts of things to write about but hardly ever do I find the time (and/or desire) to sit down and flesh out those ideas. Some ideas are really strong, or well timed and they eventually make it but most linger as notes in Evernote / a Moleskin / Word / or even as a scribble on some papers and are discarded later. Knowing a life-long period of deliberate effort is necessary to improve performance (skills) in a specific area I’m deliberately trying to practice writing.

Committing to deliberate practice is hard and but the follow-through can be even harder. In order to commit I’ve created a daily goal of writing 1,000 words. I might get to it a few times per week at most but I hope at some point I’ll get over the hump where the ideas and words start flowing and things start to make sense. Whether or not I publish what I write doesn’t matter at this point.

But wait, there’s more!

Life as a Remote Worker

My “life as a remote worker” has just begun. A few weeks ago, the company I work for decided it was time for my small team to let go of its office and work remotely on a full-time basis. To prepare for this change and gain a better understanding of the intricacies of remote work I’ve decided to do some research.

My first reference was the book Remote: Office Not Required by Jason Fried and David Heinemeier Hansson of Basecamp (formerly 37Signals).

There’s been some debate over the tradeoffs of remote work, sparked by Yahoo’s decision to end remote work so “speed and quality aren’t sacrificed.” My experience was limited to the occasional stint working from home or working during business travel. I saw the advantages of sitting next to my developers, over-hearing potentially interesting and useful information. Prior to reading Remote, my position was similar to Yahoo’s – speed and quality must be sacrificed. I suppose that’s why I needed to do research; I was only seeing things from one side.

Remote: Office Not Required seems to cover a large number of the potential problems related to remote work. It takes several positions trying to convince the reader why companies should hire remote workers, why they should consider remote work, how to manage people who work remotely, the assumptions we make about in-office workers and finally how to operate as the remote worker. The last part was the most interesting to me – how to operate as a remote worker, the ups and downs, problems, solutions, etc.

Here are a few of the points I felt compelled to write down. The problems addressed are in bold and the descriptions, solutions or my comments are directly afterwards:

  • People’s homes are full of distractions – Recognize the potential problems and do something about it. Distractions can also serve the purpose of warning us that are tasks aren’t well defined or menial or something similar and it’s time to switch gears.
  • I need an answer now – (I fall into this trap often.) The habit of bothering anyone for anything at anytime. Not every question needs an immediate answer. Email can handle a large percentage of questions, a small percent will need quick responses (Instant Messaging) and an even smaller amount will need immediate responses (Phone and Hangouts).
  • I’ll loose control – This doesn’t make sense if you trust people. Besides people can still do nothing while sitting at their desks. Just because they dress up and come into the office doesn’t mean they’re doing work.
  • Thou shalt overlap – The authors say 4 hours per day is key amount of overlap for collaboration.
  • All out in the open – You need everything available to everyone at all times, otherwise the structure and workflow will be out of sync.
  • The virtual water cooler – Everyone needs a place to hang out for the occasional mindless breaks. Having a chat room, IRC channel, etc. where people can check in and out on occasion allow controlled social interaction and are a break from solitary work.
  • Forward motion – In a physical office there’s a normal flow of information that helps everyone stay current. Remote work looses that so Basecamp uses a weekly “what have you been working on?” email as a friendly reminder.
  • The work is what matters – As in what have you produced today? Focus on the output – although this can vary depending on the job function.
  • Check in, check out – Try to set limits on how much you work. Ask yourself have I done a good day’s work? If the answer is yes, you are done. If the answer is no, try to figure out where your time went and how it was managed so you can avoid problems in the future.
  • On writing well – Writing is more essential than ever for remote workers. Much of the communication happens over email/chat/discussion boards. When hiring for remote workers look to cover letters as writing examples.
  • Test project – “Pre-Hire” or give prospective hires a week to two-week mini project and pay them for it. Unemployed get 1 week, employed get 2 weeks and the exact project depends on what they’re being hired for. Make it meaningful.
  • Contractors know the drill – An ideal training ground for both the employer and employee to try remote work on for size. Both sides get to test drive each other.
  • Stop managing the chairs – The manager’s job is to lead and verify work, not monitor the people (also known as managing the chairs). Managers need to know the intricacies of the work, what needs to be done, what can cause delays, be creative with problems, and divide the work and many other things. (This seems like its applicable for both remote and in-office work).
  • Building a routine – One hack is to divide the day into chunks like “catch up”, “collaborate” and “serious work”. In testing we use similar time-boxed periods also known session-based testing and test management. Without clear boundaries between work and play it can be hard to get stuff done.
  • Staying Motivated – If it’s taking a week to do a day’s job, that’s a warning message. If motivation is slumping it’s probably because the work is weekly defined and appears pointless.

Another interesting point not listed above is the authors don’t recommend using remote work (or telecommuting) as a way to save money on facilities or people. (I’m sure the facility savings is the reason my company closed my office.) The author’s company Basecamp and the other often-cited example, WordPress, use their savings on facilities to organize regular employee meet-ups around the world. Instead of the primary motivation being cost saving, the authors argue employers should be able to find skilled, qualified workers regardless of where the company has a physical presence. Unless you live in an area with a lot of local talent (like Silicon Valley) it makes sense to widen your search. Even if you have some talent you’ll have to compete with other local companies and can you really afford to compete with companies like Google?

If you’ve paid attention to the telecommuting / remote work debate you’ll probably recognize a few of the bullet points. If you recognize all of them don’t worry the book has plenty more points, these are just the ideas that I felt compelled to write down. I’d definitely recommend it.

Continuing the research my next read is The Year Without Pants by author Scott Berkun on his year and a half working with WordPress. I also have a few books to read on productivity practices like Personal Kanban in a Nutshell which might apply. Have I missed any other good references?

Other resources:
http://mashable.com/2014/04/10/the-telecommuting-dream-is-dead/

What I’ve been up to lately

Things have been busy in the last month or so and I felt like sharing what I’ve been up to lately. Most of it revolves around software testing:

April saw the start of Dan Ariely’s A Beginners Guide to Irrational Behavior class on Coursera. I knew I had the BBST course coming up so I didn’t commit much time to the class other than watching the video lectures and doing the video quizzes. There are many aspects of irrational behavior that affect what we do in software development and testing – I’d like to write a more in-depth article about that in the future.

On the 14th of April I started the BBST Test Design course and completed it on May 8th. For those who have never taken a BBST class before they are incredibly intense month long courses. The course breaks a single calendar week into 2 class weeks – one week with 4 days, and a shorter week with 3 days and each week requires about 10-15 hours of work in order to do the readings, labs and work on the exam. The class is done but I still don’t know if I’ve passed; regardless I learned a lot.

On April 19th I joined the NRG Global Online test competition. My last post was a reflection on how well I thought I did and despite my low perception, my team ended up winning part of the competition!

I went to STPcon 2013 at the end of April in San Diego where I met up with a few Miagi-Do’ers, met some other testers I’d heard from in the twitter-verse or blog-o-sphere and learned a few things. I’m planning to write an experience report and post it either here or on the newly formed Miagi-Do blog. I think it might apply a little more here but I don’t know how it will turn out because I haven’t written it.

During the Test Design course I picked up on Test Design being the last of the 3 BBST courses and there being 3 more courses – Domain testing, spec-based testing and scenario-based testing listed in Cem Kaner’s diagram. I asked Cem about the domain testing course over twitter and he kindly sent me an email with a draft domain testing workbook which I plan to review – right after I email him back and telling him when.

May 8th through 10th I participated in the Rapid Testing Intensive Online #2 as a peer reviewer. It was fun to sit on the other side and provide some feedback to the students on their work although I would have been more effective if I was able to do the assignment as the students were – I just couldn’t take the time off work. Nevertheless I found participating as a peer reviewer to have its own unique challenges as I interacted with other testers and tried to answer their questions. In the RTIO there’s a ton of material and references coming at the students so it helps to interact and help others.

May 16th I signed up for the BBST Bug Advocacy class that takes place in June. One of my year end goals is to complete all 3 BBST courses and then pursue BBST Instructor so I can help others. In fact as I was writing this I signed up for the BBST Instructors course in October!

Lastly I’m looking for a cheap / free place to host a public Rapid Software Testing course with Paul Holland in the Los Angeles area. Anyone know of a place that can fit 20 people comfortably?

Wow I’ve got a lot to do…