Sunday, August 30, 2015

The Value of the Self "Check-In"

We all go through them in certain ways. That one-on-one meeting with your supervisor, the daily stand-up, the family meeting, the heart to heart talks, they all have a purpose. The goal is to make sure that we are "on track", whatever on track might mean at that given moment. On track often means different things to different people. I'm having a bit of that now with my son. He's 19, going to college, working a job, and developing a sense of who he is and what he chooses to do. For me, the check-in's are important. For him, they may be less thrilling, because his idea of "on track", at the moment, differs a little from mine. I need to remind myself of this from time to time; I remember having the same conversations with my dad when I was 19. If I'm not mistaken, many of the topics were very familiar ;).

Checking in with others is fairly easy. With another person, I have accountability. The more difficult process is the personal check-in, the act of interviewing myself and regularly asking the following questions:

  • How are you doing? 
  • Is everything OK?
  • How's everything at home?
  • Are you working on what you need to? 
  • Do you need help with anything? 
  • Are there things you probably should stop doing? 
  • Are the things you are thinking about stopping doing actually the things you should stop doing, or are they the things you need to double down on?

I could greatly expand this list to talk about my family, friends, initiatives I'm involved with, etc., but for today, it's the Self Check-In I want to focus on.

I've been experiencing a rediscovery in regards to fitness and health. Today's technologies give us the ability to have these conversations. As I've said many times, RescueTime helps me know what I actually spend my time online doing. It's great when the feedback is positive. It's frustrating when I realize things I'm doing are, at best, a mild amusement or diversion. At worst, they are a total waste of time. Still, those insights are made with regular check-ins and asking myself "what could I be doing with this time?".

Sixteen days ago, I downloaded the "Pacer" app because I wanted to do something about my exercise (specifically, the lack thereof). Pacer gave me a very simple goal; "can I get 10,000 steps in every day?". At first, I started thinking about it spread out through the day. I determined the easiest way to do it was to park my car at home and walk to the train station (which is one and a half miles from my house). When I reach Palo Alto, I get off the train and walk to the office (another half mile), and then repeat the process backwards. This makes it part of my daily routine. If I were to just do that, I would be 80% of the way to my goal (and cover four miles each day). Just milling about at the office would takes care of the rest.

As I started making that 10,000 step goal each day, I shifting my thinking to "What about doing it at one shot?" Yeah, that is doable. I need to cover five miles, and take me about an hour and forty minutes (that's just walking at a regular pace, no jogging or running, or deliberately lengthening my stride artificially). Soon, I started considering the goal met when I could do it at one shot, or as early as possible. As I was doing this, I started noticing that there was a daily estimation to the calories I was burning (I don't consider this to be scientifically precise, but as a general rule of thumb, sure, I'll take it). As I was looking at the calories, I started asking myself "Hmmm, what if I were to limit my food intake to what I'd burned?" In other words, if I did a walk and I burned 700 calories (which for sake of reference takes me about two hours of walking or about 7 miles), then I am allowed to eat that amount of food. In other words, can I match the calories I eat to the calories I burn?

This approach works for immediate meals. I would not recommend doing this too aggressively, because it does not take into account my basal metabolic rate (which is imprecisely about 2,200 calories for my height and weight at zero activity level. If I were really to just eat what I had "burned", I'd have a daily deficit of 2,200 calories, which comes out to 15,400 calories a week. I'd lose 4.4 pounds each week at that rate, and at least half of that would be lean muscle mass, which would ultimately make my MBR lower. This is why I do not let myself go that low. Generally speaking, I become so irritable at that level of deficit that I have to eat, so at this point, it's not been something I can maintain in any meaningful way. Still, by doing this process, just by tracking the calories I "burn" with keeping track of the calories I consume, and being aware of how much of each I am doing, the net results after 15 full days is that I have dropped 12.5 pounds! Some of that is water weight, some of it is redistribution, some of it is lean muscle addition (and perhaps a little bit of muscle subtraction), but a fair chunk of it is also body fat, and that is something I'm happy to see go "bye bye").

My point with a lot of this is not to say that pacer is cool, or that calorie counting helps, or that evaluating my BMR on a regular basis is helpful (though all of those are). The act of a self check-in, to see what exactly I am doing, and being mindful of that check-in, helps me keep my motivation. It helps me to recognize if I am on track, or if I need to modify my plan. Additionally, it lets me consider if the time I am spending is the best use of my time, or if I can somehow modify what I am doing. Ultimately, what I choose to do with that time, (especially with walking) is important, because it is now literally time I cannot do something else. Actually, that's not entirely true, I'm using that time to listen to CodeNewbie podcasts (currently up to Episode #33), so there is a very limited level of multi-tasking I can do ;).

How about you? Are you giving yourself a regular check in?

Thursday, August 27, 2015

How Many Words Do You Have Left In You?

This may seem like a borderline macabre post, but it was prompted by my recent deep dive into the CodeNewbie podcast. Episode #17 featured Scott Hanselman (a great episode about engaging with new programmers or anyone in tech) and one of the comments that he made was the idea that we all have a limited amount of keystrokes left in each of us.

Scott breaks it down like this. Think of how old you are now. Now consider a conservative life span. For me, to date, the direct line of males in my family have lived to 82 at the latest, though my Dad is looking great at 75 and shows no signs of slowing down yet, so that's a plus :). I'll take a mid figure and say 78. that means I have about thirty years of words left in me. Divide that by the number of hours I work in a given day, and then divide that by the minutes in those hours, and then divide that by the number of words I type, and there you have it.

The point to this is that we have a lot of things we can do, but often we end up doing things that are repetitive and can possibly be of benefit to others if we do them the right way. In other words, instead of answering emails with the same questions, writing blog posts and pointing people to them might prove to be of more benefit.

I was reminded of this a week or so ago as I realized that on any given week, a big portion of my traffic comes from the series of posts I wrote four years ago when I embarked on "Learn Ruby the Hard Way". My rationale was that I was already looking at this stuff, and experimenting with it. I wanted to take notes and see if I could explain what worked and what didn't. If it didn't, was it a problem with the material, or was it a problem with me? More times than not, I'd discover it was a problem with me, or my understanding of the material. By talking out the ideas in the blog posts, and rereading them back to myself, often I was able to uncover problems just by talking out the problem, as though someone else was there to listen. Four years later, those experiments, frustrations and discoveries are still bearing fruit.

To me this highlights the importance of us documenting our journeys. It's tempting to say that a blog post is just a blog post, and that in the grand scheme of things, doesn't amount to very much. I think the opposite. To borrow again from Scott, by putting a URL to our words, we have the potential of seeing our words outlive us. Granted, the specifics of our posts may ultimately prove to be outdated, but the general process of learning, discovery, and our individual journeys along the way have timeless truths that may well prove to be valuable to other travelers. In the ideals of Will Allen Dromgoole, "I'm building a bridge for them" or at least I hope to.

The tl;dr version of this is "find ways of sharing your discoveries, and do what you can to limit the repetition of what you say". If you truly say it once, say it in a chat or an email. If you find yourself referencing it more that that, blog it. You never know what piece of advice you may have hidden in a chat transcript or an email thread that may help hundreds or thousands of others.

Friday, August 21, 2015

Product Review: #FluidStance #Level

As a blogger, one of the nice perks that happens from time to time is that people send you items to review. Most of the time, my reviews have centered around books in PDF form or software as downloads. In other words, the item I'm reviewing is not a tangible "thing" but an electronic file(s). Today, I received my first "real thing" to review, and intriguing doesn't even begin to describe this.

I have a setup that I use that converts a regular table into a standing desk, using two Ikea Lack end tables. When I want to sit down, I just take the tables and set them to the side, but when the standing desk configuration is in place, well, I typically stand up and do my thing. Often that also involves shifting around, putting my foot up on an upturned wastebasket, and changing positions. With my desk in the seated setup, I sometimes break out a yoga ball to use as a chair, the consistent shifting back and forth giving my core some movement and some variation. I've often lamented that I didn't have something similar for a standing desk configuration.

Enter the FluidStance Level.

"What, dare say, is the FluidStance Level?" you might ask. To put it simply, it's a balance board that you stand on while you are at your standing desk.


This is the top sheet, made of bamboo. It's sturdy and smooth, plus it looks like a nice piece of furniture. 


The underside of the board looks like this. The base is made from aluminum with a powder coat finish. It's very smooth and the curve of the base creates a moderate imbalance while you stand, but doesn't feel dangerously so. 


First impressions while standing on it is that the balance point feels natural. At shoulder width stance, it feels a little like standing on a small boat out on the water. With a narrower stance, you work a bit harder to keep the balance, but it doesn't feel at all clumsy or unpredictable. Instead, it gives a gentle swaying motion with consistent feedback to help you right your stance and keep balanced.


All well and good, I hear you saying, but what is the point to this thing? Put simply, while you are at your standing desk, you stand on the board. The consistent shifting of balance and readjusting gives your body something to do while you are working. I decided to see what thirty minutes of working would be like with The Level, and I found it to be surprisingly fluid and, dare I say it, natural. 


As you stand on the Level, you are definitely "active", which means that you are going to probably need to step away from the desk a little more often, but what I did not feel was fatigued or sore. In fact, it felt the opposite. I found myself feeling very relaxed, even with the shifting weight. Of course, the standing desk to balance myself against also helps.

So what's my verdict on the FluidStance Level? I personally enjoy the sense of shifting movement. I liken it very much to sitting on yoga ball if you have a sitting arrangement set up. It's surprisingly comfortable, and it's easy to get the hang of the sweet spot to balance with little effort. There's something nice about having a product that you did not even know existed come into your reality and have you say "wow, I've waited years for this!" but of course you didn't because you had no idea such a device even existed. I'm looking forward to using this balance board in the years to come.

Call For Interest: BASTUC

Today's post has a local flavor, and it's something I've been mulling over since I got back from the CAST conference in Grand Rapids. Conferences are often expensive, they require travel, time commitment off work and away from family, and a need to negotiate flights, hotels, transportation, etc. These are indeed headaches, but the return on that hassle is often great interactions, learning new things and getting answers to questions I have from sources I might not have initially considered. Plus, I managed to make a new set of great friends each time I go.

For the past few years, we have also had a Saturday event happen before CAST, which has gone by a couple of different names (Test Retreat, Test Coach Camp, etc.) and this has been a much smaller affair. The costs are nominal, usually just enough to cover rental of a space and some snack foods during the day (attendees are encouraged to get breakfast before arriving and go as small groups for lunch). What I find great about the process is the model used for facilitation. Test Retreat/Test Coach Camp is run as an "un-conference"or an Open Space Conference. The topics are voted for democratically, and those people who want to be part of a particular topic participate, and those who don't, don't. Some sessions may have nearly all of the attendees, and some sessions may have two or three people. In both cases that is perfect, because the person speaking is sharing their experience and the people in need of hearing that message get to do so.

One of the challenges I have faced with being one of the leaders of the Bay Area Software Testers meetup is that we want to encourage more people to speak, but there are often limits to opportunities for those potential speakers to get in that space. We have done lightning talks and we are embarking on quarterly Lean Coffee events, but my personal goal is to do something that will help encourage more software testers, and in particular those in the Bay Area to come together, develop talks, practice speaking, conduct workshops, and engage with the broader testing community that's right here.

This is why I'm proposing that we do our own Open Space Conference, the Bay Area Software Testers Un-Conference (BASTUC) . One day, one place, and as many software testers as want to participate. Agenda? You set it! Topics? You decide! Speakers? In this case, I encourage everyone who would attend to come with at least one topic they would like to talk about, even if it's formative or just to say "I have so many thoughts going on in my head about THIS THING, and if I don't get together with some other people and discuss it, my head's going to explode!" Well, OK, we hope not literally, but we want to encourage testers to feel comfortable coming out and discussing the things that matter to them. Chances are, they matter to other people too.

For the record, I have not told Josh and Curtis about this. This is a blind side, and frankly, it's just an idea. I want to see if there would be support for it, and who would participate. If you want to play along, please leave a reply, and we'll take the next steps if this is something that appeals to enough people (and seriously, in my mind, if we get ten people interested, that's enough to move forward on this).

Also, the name is open to discussion, but I had to call it something ;).

Thursday, August 20, 2015

Podcast Review: CodeNewbie

Yes, I am late to the game on this, but this really deserves to be a destination for people learning to code, who want to learn how to code, or may even just have an itch in their brain that they might want to code in the future. On any given day, I match all three of those ;). That's why my discovery of CodeNewbie has been fun and informative.

First, some background. CodeNewbie describes themselves as "the most supportive community of programmers and people learning to code". There is a lot of great content on their site, such as Ruby Monday where each week they get together to work on a project, and yes, all are welcome to participate if they want to. Each Wednesday at 9 p.m. EST they host a Twitter chat, using the #CodeNewbie hash tag. I've followed along with a few of these, and they are quite informative and, while primarily focused on the new programmer, don't be surprised if you don't learn a thing or two even if you are experienced in programming.

All this is great, but it's the podcast that I want to focus on. The CodeNewbie Podcast has been around since September of 2014, and it is hosted by Saron Yitbarek. I first heard Saron on the Ruby Rogues podcast, and some time back I made a note to check out the CodeNewbies project she had announced at the time. Like many things, it fell to the back of my list, but as I kept seeing CodeNewbies pop up in my listings, I decided I had to give it another look, and specifically, yes, the podcast. Since they now have 49 episodes, I'm approaching them in alternating order, meaning I am listening to the earliest episodes, followed by the latest episodes, and simultaneously working my way forwards and backwards. What that has done is let me see just how dramatically the show has improved in delivery (this is to be expected with any regular podcast) but also how consistent it has been in staying on message and in a format that is both accessible and readily relatable. Saron gets a lot of credit for that, in that each show is structured in a similar manner (yes, comparisons to Ruby Rogues abound, but since that is one of my all time favorite technical podcasts, that's meant to serve as praise). Saron also has a voice designed for radio, and considering she spent some time at NPR interviewing people, that should surprise no one. It adds a polish and an ease to the episodes that makes each interview feel smooth and well presented. That's not a requirement for podcasts, since I generally prefer practitioners over over-coached pros, but when you can get both, hey, run with it!

If you were to listen to any one episode, I would encourage starting at the beginning, with Saron's interview with Carlos Lazo titled "Bootcamps, Water Coolers, and Hiring Devs". Carlos talks about his time in the "Flatiron School", which is a programming bootcamp. The interview covers a lot of ground, such as the difference between studying computer science and actually being an engineer, why he chose to attend a three-month bootcamp to become a web developer, and several interview related questions and strategies for would be developers to consider. One piece of advice I really liked was to "own your ignorance". Don't be intimidated by the fact that you don't know something. In fact, embrace the idea that, if you are asked about something you don't know, you will not fake your way through an answer. Instead, reply with "I'm not familiar with that particular area. Could you tell me a bit more about it? How do you use it?" Seriously, this interaction alone is worth the time to listen to this episode, but there is so much more to glean from it, so I encourage you to do so.

If you are new to code, have dabbled in code, or have made a decision to get more involved with code, then CodeNewbies is a great destination site. Saron's podcast is a great way to plug in, get inspired, and learn about many aspects of the world of coding you might not think relate to it, but are as essential as the syntax you learn.

TESTHEAD gives the CodeNewbie podcast two thumbs way up :).


Wednesday, August 19, 2015

The Hidden Side to 10,000 Steps

This is an odd post, but then again, if you've been around my blog long enough, odd posts are probably more normal than not. In any event, this is a personal examination of motivation, behavior and the hidden side of metrics.

Like many people, I have become a touch enamored with my iPhone. For years, I had mobile devices to test with, and to that level, I typically had wifi access to do most of the functional testing, plus borrowing a friends device if needed to actually test on a carrier. Still, at the end of the day, I was content to put down the mobile device and get on with my life. That dynamic changed when I got my first Android phone a few years ago, and the change really accelerated when I bought an iPhone. I made the shift away from the idea of a mobile phone that can do a few things to a pocket computer that "has plenty to keep me interested, engaged and thoroughly distracted if I choose to be".

The apps that I have been interested of late have been "personal motivators", or those things that track goals in the way of using time, getting exercise and health in general. A neat little discovery on my part was the fact that even before I had installed a fitness app to track walking, running and bicycling, I had data for an entire week ready to display. How? The motion tracking feature is already on the iPhone and it's active, so all this data was ready to be picked up once I installed the app. Cool... and a little creepy at the same time.

One of the things that I notice about myself is that I personally love messing with gameification systems in devices or apps. I like trying to figure out ways I can leverage the apps to generate numbers and see how I can tweak them or apply them, and once I get my teeth sunk into a number, I tend to obsess over it. The number I'm currently obsessing over at the moment is "10,000", which is to say, the goal of getting in 10,000 steps a day. This is the number that is currently touted as being part of an Active Lifestyle. The app I use, Pacer, considers 10,000 steps and more as being "Highly Active". At this point, it's easy to conclude that getting in 10,000 steps will be the ticket to getting me in shape, getting that weight off, and putting me on a path to health and wellness... or is it?

Taken by itself, 10,000 steps has lots of supporting variables to consider. I'm 6'2" tall. My 10,000 steps will cover more ground that someone who is 5'2". Additionally, how are these 10,000 steps performed? In the area where I work, were I to get those 10,000 steps in at one time, it would be on flat ground. Were I to do it where I live, I'd have the option of choosing paths that are relatively flat or with some steep hills thrown in. I live at the top of a hill in my town. The street leading from the main cross road up to my house is steep enough for half a mile that I'm definitely huffing and puffing by the time it flattens out. The calorie counter reads the same amount regardless of which path I take. There are also paths I can take that will have me under tree cover and in the shade, and others will have me exposed to the sun and heat with little to no cover. The point to all this is, by throwing a bit of variety in, those 10,000 steps will vary in the level of effort, the level of sunlight and heat (which affects the amount of sweating I do), and the speed in which I can complete those steps.

For a few days, I experimented to see what it would take to get those 10,000 steps in all at once. The answer is, for me, that it requires five miles of walking, and usually is accomplished in an hour and forty minutes. By comparison, just walking around my neighborhood, walking from my car to the train, pacing on the platform, walking from the train station to work, wandering around the office, and reversing the trek gets me pretty close to 10,000 steps without even realizing it. The difference in effort and how I feel on days where I front load those 10,000 steps, versus days where I reach them literally at the end of the day, is phenomenal.

I've gotten interested in tracking weight loss with this app, and I've set up a few goals. I'll say that at the start of this experiment, I weighed 260 lbs. For the record, that's my all time heaviest. When I was more athletically involved (at my peak in around 1995 when I was training to become a competitive snowboarder), my leanest was about 190 lbs. and my bulkiest was around 225 lbs., both with aggressive training, eating like a horse, and being super active. When I broke my leg back in 2011, I chose to slow down some of the aggressive sports stuff to let the bones heal and get back to their former density. After four years, it's safe to say that my bones are as dense as they will get at this stage of my life, but my habits went significantly downhill, resulting in the weight gain I'm trying to reverse now. Over the days I've been doing this (i.e. less than ten) I've managed to pull five pounds from my frame. I'm currently at 255 lbs. I hope to lose more going forward. Did 10,000 steps have something to do with it? Yes, but perhaps not in the way you might think.

As I embarked on this approach, I wanted to see how I dealt with other things I did. Would getting in 10,000 steps make me more lazy? In truth, I'm finding it makes me motivated to move even more, and on certain days, I get well over the 10,000 steps threshold. Another thing I've noticed is how I eat and what I eat. Prior to doing this, I'd typically just eat whatever was available. Now, I find that I am being much more deliberate in the choice of food I eat, and when I eat it. Part of me thinks this might hearken back to what I've called "The Craddick Effect". When you are scared to do something, force yourself to walk back and attempt it again. Repeat this until you tire yourself out to get your mind and body ready to conquer that fear (and yes, it works :) ). I think my slightly fatigued body starts to shout down my lizard brain trying to find comfort in junk food. It's yelling "hey, I just walked five miles to burn off 600 calories, do NOT sabotage my efforts!" I'd figured it would be the other way around, where I'd say "hey, I've worked hard, I deserve this" but the opposite is proving to be true.

A TED Radio Hour Talk that I enjoyed greatly, titled "Amateur Hour" (of which I expect to talk about in later posts more in depth) had an interview with A.J Jacobs, the editor at large at Esquire who takes on some pretty extreme challenges and writes about them. In the process of talking about his "Year of Living Biblically", he took on the idea that "if we change our mind, we will change our behavior" but in reality, it's the other way around, i.e. "by changing our behavior, we change our minds". We can understand something, we can believe it, we can internalize it intellectually, but if we don't DO anything with that knowledge, we won't actually cause any change. Though early in the process, I can say, at least for now, that putting in 10,000 steps each day, especially if I aim to front load those steps, that my subsequent behaviors around food, activity, and rest change. When I hear of people saying they drop anywhere from twenty to fifty pounds in a year following this approach, the 10,000 steps is merely a catalyst. Sure it's a measurable number, but it's the underlying "infrastructure and behavioral changes" that go on, many of which are imperceptible, that really do the hard work of transformation. I'm looking forward to seeing if this holds three weeks from now, when I next report in on this (and yes, I give you permission to call me on it if you don't hear back from me :) ).

Friday, August 14, 2015

Our Python "Esperanto Project"

Much of the time, my work environment is not pretty. It's not the elegant situations that are spelled out in books or in "best practices" guides. Often, there are things that would look convoluted to outsiders, that seem like strange and quirky paths to get to places and to accomplish tasks that seem, well, not at all ideal. Why do we use them? Because it works. More to the point it has worked for years, and the thought of ripping out everything and starting anew would be a tremendous loss.

I have been discussing with my daughter ways that we could get more involved in and create an environment that we can both use, both agree on, and both work in and understand what each other is doing. In other words, we both decided we would put together our own "Esperanto Project" to help each other learn interesting tools, try out various frameworks and have an excuse to apply the ideas we are soaking up here and there and put them into an environment we can both work with.

Currently, our project resides on a Trusty Tahr build of Ubuntu Linux. The agreed to language for what we are going to do is Python, mainly because my daughter and I are both roughly skilled at an equal level (somewhere between novices and advanced beginners). As a web framework, we are using Django, because, well, Python. Selenium WebDriver is installed, with the idea that test scripts will be written in, you guessed it, Python. For my own fun, I am adding JMeter, Kali Linux and a few other tools to practice testing scenarios and particularly to exercise APIs, utilizing Python as the scripting engine. Finally, we are using PyDev as a plug-in to the Eclipse IDE because, hey, why not ;)?

One of the reasons I want to do this is that I want to be able to not just play with tools, but also have a way to keep the things I learn and find in an environment that can follow me from place to place. Each company uses their own set of tools and languages, and it's likely that I will not be using Python at different jobs. That's OK, since the goal is to not necessarily do a direct port of what I do from one company to the next, but instead, get to a point where I am able to develop and test an environment with a broad range of tools and become more familiar with all the possibilities, while also teaching my daughter how these tools are used. In turn, I'm hoping she will be able to teach me a thing or two later on down the road.

I joked with Kristoffer Nord yesterday via Twitter that his "Python for Testers" course would perhaps be an ideal jump start to this goal of ours. I'm looking at how I can make this into something interesting going forward, and I'd like to make regular updates to it and say where we are in the process. More to the point, I'd like to use it as a chance to ask for help here and there from the broader community, specifically the Pythonistas out there, because our goal is to use Python as the unifier of all the tools we pick, wherever we can.

It may work well, it may work terribly, but we won't know until we try :).

Monday, August 10, 2015

Local Stuff in Testheadland (for SF Bay Area Software Testers)

As I have come back from CAST, and I have taken some time to settle back into daily life and breathe a little easier, it strikes me that there's some stuff happening in my local reality that I'd like to encourage others to get involved with.

If you are outside of the San Francisco Bay Area, this may not be all that interesting to you. If you call the Bay Area home, and specifically, if the cities of Palo Alto or San Francisco are easy for you to get to, then these two items may be of interest to you :).

Socialtext is looking for a Senior Quality Engineer

Socialtext was acquired a few years ago and folded into another company called PeopleFluent. While we do have a site and a brand that is advertised as Socialtext, all of our hiring is being done through PeopleFluent. After being alerted to the fact that that was causing some confusion, I figured a quick explanation would help matters.

If you go to the Socialtext web site and look at the Senior Quality Engineer position, and then click on "Apply Now", you will be directed to a job listing with PeopleClick. That is by design and exactly what you should see. Also, while I cannot guarantee it will fast track you in the system, you have the option of including a note that says you are an employee referral. If you'd like to contact me directly and have any questions, I'll be happy to answer them as best I can. After that, if you add that you are an employee referral, and say that Michael Larsen referred you, we'll both be telling the truth ;).


BAST is going to be holding a Quarterly Lean Beer

I'm taking this from the BAST Meetup page, but since I feel it gets the point across, I'm going to add it mostly verbatim:

Bay Area Software Testers was originally created with 1 rule: it won't always be Curtis, Michael, or Josh speaking. Unfortunately, for the most part we've violated that rule. It's time for that to change.

Join us for the first of our quarterly "Lean Beer" BAST events. What is Lean Beer you ask? Well, it's identical to Lean Coffee, but we used beer (or water) and it happens in the evening instead of the mornings! 

Okay, smart ass answer aside, here is an excerpt from the leancoffee.org website:

"Lean Coffee is a structured, but agenda-less meeting. Participants gather, build an agenda, and begin talking. Conversations are directed and productive because the agenda for the meeting was democratically generated."

The basic idea is we talk about what the majority of the people present want to talk about. There is no central speaker and no central topic. Come prepared to talk about what matters to you!

We are also planning on using these events to help get an idea of what people are interested in, and trying to find experts to come and speak on those topics. So come, discuss, and have fun.

My goal coming back from CAST was to get more involved in the things happening locally, and emphasizing my commitment to software testing in the Bay Area. Consider this a first step towards that :).

Friday, August 7, 2015

On Letting Go and Embracing Change

During the week that I was at CAST in Grand Rapids, there were many changes in my personal life that occurred, and that I am having to process and work through now. this is not going to be about testing per se, but if I don't find a place to get this out, it's going to eat away at me, so I'm going to do it here. I'm also likely to get emotional here. I've commented that sometimes, we need to have navel gazing posts on our blogs from time to time, and this is one of those days.

Nine years ago, shortly after my son's tenth birthday, we decided it was time to have a pet join our family. My wife and I had kept animals like fish and birds for our entire marriage, but we hadn't had a dog or a cat, partly because we wanted our children to be old enough to appreciate them and interact properly with them. Our neighbors across the street had several Welsh Pembroke corgis, and of course my kids adored them. When it came time to have a dog, we knew they'd want a corgi, so we asked our neighbor who we might talk to. She told us of a corgi faire that was happening down in Los Gatos, CA, and that several breeders would be there showing their dogs. As we went and talked with people, we met a lady that had brought several dogs to show, including one that she felt wasn't really into the whole "dog show" thing. She believed this particular dog would benefit from being part of a family. Our kids met the dog in question, a sweet fawn colored girl that was a little over a year old, and they fell in love with her. We decided to take her home. My son at the time was playing Final Fantasy X and thought her coloring and her antics reminded him of one of the characters from that game, so he named her "Rikku".

About two months ago, we noticed that Rikku was moving more slowly, seemed to be breathing heavier, and was generally listless and not her usual self. as we were petting and scratching her, we noticed that around her neck and her hip joints, she had swelling and big bumps. We had the vet take a look at her, and our worst fears were realized. She had stage four lymphoma, i.e. cancer of the lymph nodes. we enquired about treatment options, but soon realized that her condition was terminal. It could be a year at the furthest, several weeks at the shortest. They gave us some medicine that they said could help her feel better in the short term, i.e. a cortico-steroid, but that it wasn't a cure. It would just be a matter of time before the cancer progressed further.

For several weeks, we gave her the steroid drug, and for a time she rallied. Her lymph nodes shrank considerably, and she was, in many ways, her old self. She was playful, happy, went with us to her favorite places, and interacted with us as she always had. Unfortunately, last week, the slow movements and heavy breathing came back again, and when we checked, her lymph nodes were even more swollen than before. I had to leave for Grand Rapids, but I asked the family to keep me informed as to her condition. By Monday, August 3, her mouth was gaping open at the sides. She couldn't close her mouth, her breathing had become ragged and harsh, and she wasn't walking well. She didn't look like herself, she didn't act like herself, and I was told that they felt that the time had come, and that we needed to have her put to sleep. They felt horrible that I wasn't there, but they felt waiting until I came back was going to prolong the inevitable and force her to deal with several more days of pain. I told them that they did not need to wait for me, that I understood what needed to be done, and that at this time, Rikku needed us to say goodbye and let her suffering end. My wife and elder daughter brought her into our veterinarians office on Tuesday, August 4, and they said their last goodbyes to our little girl.

"Today has been a very tough one..At around 11:30 this morning, we put our little angel Rikku to rest. Her body was deteriorating and we couldn't continue to watch her beautiful, yet delicate soul suffer any longer. Rikku was everything we could've ever wanted in a pet. She had been nothing but a blessing to our family; a comforter and loving friend. Thank you for all the many memories you have given me, I'll never forget them. R.I.P. Rikku…my adorable loaf of bread����❤️ March 30, 2005 – August 4, 2015✨" --Karina

Since I was dealing with the conference and all the activities that went along with that, I was kept busy and had limited time to think or process what had happened. In some ways, I felt bad that I wasn't able to be there with my family in this moment of grief and sadness, but I encouraged from afar and did my best to let them know I loved them and felt every bit the same way they did.

On Thursday, after wrapping up the last conference details, settling up with the hotel for any additional charges needed, and doing a last little bit of tourism around town, I got to the airport and flew from Grand Rapids to Dallas to catch the connecting flight to bring me home. Turns out while I was in the air, my wife and daughters went to the Peninsula Humane Society to see the animals there and to help process what had happened on Tuesday. While doing so, the girls found a rescued kitten, a domestic shorthaired calico girl. By the time I landed and was able to look at my messages, Christina told me that we had a kitten. She apologized and said that we should have waited until I came home to ask. I told her it was OK, and under the circumstances, totally understandable. When I asked if she had a picture, she sent me this:


It would be another few hours until I got home, but once I arrived, I went into our little hallway bathroom (the place we have for the time being set up for the kitten's home) and got to know her. As I held her and listened to her purr like a small motorcycle, I cried a little for the loss of a longtime member of our family, but smiled a little in that this little patchy furball was already helping my girls come to grips with the loss of Rikku. This morning, as we were talking about the new member of our family, I made it clear that that is exactly what she was. She was not a "replacement" for Rikku, she was an animal with feelings and the ability to love and be loved in return, and that she required the same level of love and commitment that had been given to Rikku all these years. While I was waiting to get on the plane, I participated via chat in the "naming game" for this little kitty, and by the time I had gotten home, no suitable name  had yet been agreed to. This morning, though, that was resolved. We all agreed that her name would be "Éclair", because she looks like one with her chocolate and golden and white patches.

As I sit here today, walking around my home, listening for the barks and tell-tale scrabbling along the wooden floor that I would normally hear, it is clear that my little girl is gone. Rikku brought so much joy to my family, and I am missing her greatly. At the same time, Éclair is purring and meowing and nestling into my arms when I pick her up, and that brings a smile to my face. When I asked Christina what made her decide to get the kitten, she said it had been the eerie silence of the past two nights, the absence of the familiar noises and interactions with Rikku. She said the thought of dealing with that going forward was just too painful, and while part of her feels that having Éclair helps to act as a distraction to that empty silence, she is also warming up to her as well.

If you have read this far, I thank you. There really isn't a point to this other than I feel the need to talk about it and share this part of my reality at this time. As I was away for an entire week, I'm just now processing my emotions surrounding all of this. The one thing for sure is that time marches on, and changes will occur, whether we want them to or not. Life happens when you are busy making other plans, and sometimes, it has no regard for the things you had planned originally. Still, we have a chance to make new choices every day, and some of those choices can be profound. All we can do is live them and deal with the changes that come our way.

Thursday, August 6, 2015

Concentration on Information Radiation



Ever have an experience at a conference that just sticks with you, that one thing that seems like such a little thing and then, as you consider it more and more, you just slap your forehead and say to yourself "for cryin' out loud, why didn't I think of that?!"

On Monday while I was at CAST, I was the room helper for Dhanasekar Subramaniam's tutorial about "Using Mind Maps for Mobile Testing". Much of the session was around heuristics for mobile testing and the ability to capture heuristics elegantly inside of mind maps. as part of the process, we spent a bit of time creating mind maps in XMind to use later with our chartered test sessions. I've done this before. I've even created a full mind map of the entire James Bach Heuristic Test Strategy Model (yes, one mind map and yes, when fully expended it is massive. Probably too massive). As we were working to create nodes and sub-nodes, Sekar pointed out that there were many labels that could be applied to the nodes, and that the labels were additive. In other words, each node could have several labels applied to them. 

As I was looking at this, and seeing labels such as pie chart fill, green check boxes, people silhouettes of several different colors, red x's, green yellow and red explanation points, and many others, I started thinking about how, by color and proximity, we could gauge how much coverage we have given a particular mindmap (or in this case, how completely we have applied a heuristic to testing) and what the results were for that. Instead of stopping to write down lots of notes, each node we were testing would get a label placed, and each label would have a semantic meaning. Green check box meant good, red X would mean failed or something wrong, a quarter pie chart would mean a quarter done, a yellow square would mean something that was a warning, but maybe not an error. Different color people icons would mean the person who performed that set of steps, and so on.

As I was looking at this, I joked with Sekar that we could tell the entire testing story for a feature or the way we applied a heuristic to a story in one place with one relatively small map. We both chuckled at that, and went on to do other things.

The more I thought about this, though, the more I liked the idea. In a previous company, we set up a machine and had a couple of flat screen monitors attached. These flat screens were placed in the main area and left on, cycling the images that were shown, only in this case, they were graphs and pages of results that were relevant to us. In short, they were acting as information radiators for our team. At a glance, we could know if the build had failed, if deployment was successful or not, and where the issue would be if there was one. We could also use this technique for information radiation. Imagine a charter or set of charters. Each one had their own mind map. Each mind map could be cycled through presentation on the monitor(s). the benefit would be that, at a glance, the team would know how testing was going fort that area, and we could update it all very quickly. I kept experimenting with it, and the more I did, the more I became convinced this just might work.

To that end, I am holding a Weekend Testing session this coming Saturday, August 8, 2015 at 10:00 a.m. PDT. We will look at mind mapping in general and XMind in particular, and we will develop a small heuristic for a feature (within XMind itself) to test and to update. I really like this idea, but I want to see if it can be tinkered with, and if it might be a useful approach to others.

If you think this might be a fun way to spend a couple of hours, come join us on Skype. Contact "weekendtestersamericas" and add us as a contact. On Saturday, get on Skype about 20 minutes before the session and say you want to be added to the session. Prerequisite, if you want to follow along and actually do the exercise, would be to download the XMind app for your platform.

 Again, I apologize for the short notice, but I hope to see you Saturday.