Explaining the other work we do

I had a technical issue I needed to research for a client. Nothing surprising, I research different bits of information frequently. At the end of my research I realized I wanted to explain what I’d done, I wanted to clarify and present what avenues I had pursued, what information I’d learned, what issues remained and what possible other solutions we might look into. I realized I wanted to share these bits of information with the project team so I set out to write an email.

I hadn’t thought much about what I had done. I figured it would be a short email and nothing more. Once I got writing, I realized how many avenues I had in fact pursued. In writing I realized I didn’t want to be vague so I added the references I’d used whether those references were people, forums or online articles. From a political perspective, this team is low on politics so it wasn’t that I was trying to cover anything. I had done the solid digging on the subject. I wrote what I did. I sent the email.

I received unexpected positive feedback from the team. One person thanked me and this from a person who doesn’t use extra words on any topic. It was flattering, it felt nice and I appreciated them taking the time to give me the feedback. Later that same day, I happened to go for a walk. Reflecting on this situation I realized – this is a small bit of work that I do as a matter of course but by typically not thinking to share it and detail what I had done – it would normally disappear.

How often might we do that as testers? How often do we perform small bits of work and don’t think to share it?

If we don’t at times share what we do, our coworkers and clients won’t know. It’s not that we need credit for every bit of work that we do but it is important for people to know that at times, if not frequently, we do bits of work they might not realize. We might consider more frequently explaining the research we do as well as other quiet background tasks.

If people don’t know what we do at times, they won’t know what they might lose when they consider replacing us with a cheaper resource. They won’t understand all of the skills we bring to the table if chunks of our work take place without ever being spoken of.

I’ve taken to a new habit or at least I’m trying to make it a new habit, I ask myself at the end of the week: what have I done? I’m trying to get past the obvious and instant answers. I’m trying to ask myself, what else? What did I learn this week? What work might I have done that no one may be aware of?

Last week, I spent no less than 9 hours updating software in my test lab, another task that I handled quietly because I’ve managed test labs for years and now own a small test lab of my own. I don’t think to talk about it, because it’s “just something” that I do.

So ask yourself: Do you do tasks that no one is aware of? Should you explain more of your work to your team?

Posted in talking to management | Comments Off on Explaining the other work we do

Here be dragons

I like maps. I wasn’t sure why maps appealed to me until it dawned on me one day that maps are a form of data visualization. The phrase “here be dragons” was used by mapmakers many years ago in reference to uncharted or unexplored areas. I like the phrase. Maps were marked with dragons and in some cases, other animals were drawn to signify danger or unknown, uncharted territories. I find the concept and the phrase kind of cool in a geeky sort of way. You can read more about this old mapmaker’s phrase here.

I also like SQL. I like being able to access a database and spend time with data. I teach a couple of different SQL classes and one thing I’ve found repeatedly has been people’s intimidation by having to write a join in SQL. It’s amazing how far people will go to avoid the dreaded join – it’s a bit like “here be dragons” – a territory marked with fear and uncertainty.

In learning SQL or taking time to practice SQL, you can stall out when you don’t have a safe environment to play in. You can’t just muck about in a production database and sometimes even the test environment isn’t a good place to explore and learn. When I’m teaching SQL, I’ve found working with a fairly small data set is a good way to practice SQL, especially joins. If the data set is small, you can review the data to confirm that the SQL you wrote retrieved the data you wanted.

I decided to build a small database and to share it with the testing community so testers could have a small safe SQL sandbox to play in. Following is an explanation of where to find the files and how to use them to create the database and load the data.

A short disclaimer: I make no promises or claims to update the database files or to be liable for potential flaws or to be liable for what anyone may run off and chose to do with the files. I’m not offering tech support. If you don’t know how to use a create or insert script, you probably should not jump into this terrain – perhaps your database administrator could help. I recommend reviewing the files to understand conceptually what the scripts do before proceeding.

In a future post, I’ll think about posting joins and queries for practice. In many cases, once people have a small database they can work with, they’re happy to go and play. And our work hopefully includes some element of play, creativity and joy. And as testers, exploring unfamiliar terrain holds an immediate appeal.

In choosing what tables and data to build, I decided (which is similar to what I do in my classes) to reference a few authors and books. Both the authors and the books listed in this little test database, not surprisingly, are five SQL books (and authors) whose work I admire. This test data also answers the question: if I had to buy a SQL book, what would you recommend? So even if you don’t want to create a database, you can review the insert data file and find a short list of great SQL books.

Creating the test SQL sandbox:
There are two files: one file creates the database and the second file inserts data into the database. Go to my website; the files and directions are located at the bottom of my publications page.

I am, as always happy to hear feedback.

Posted in SQL | Comments Off on Here be dragons

experiencing a bug as an end user

It’s been a long time since a software bug agitated me – one that I was hit with as a user not a tester. But I’ve had one I’ve been dealing with this past week.

In some ways it’s been interesting to feel like a user. To get whacked unexpectedly with a software bug that impacted my day and took time to resolve. Mostly it’s left me agitated and thinking less of the company.

Blackberry released an upgrade to their software and I took the release. I didn’t notice straightaway that the update stomped out my Google sync settings. Wiped out Google sync entirely, I had to reinstall. And impacted my Gmail, calendar and maps.

I keep my calendar in Google. My calendar is probably the most important, certainly most frequently used software I depend on. It took some time and effort to get things back on track.

I haven’t stopped asking myself – really? RIM didn’t think to test a cell phone software upgrade with Google calendar?

I could perhaps understand if it was some small unheard of company calendar software – but Google calendar. Really?

So a graceful solution might have been a warning message to users – hey, heads up any software you’re using that isn’t ours could be impacted – especially contact and calendar information.

A more graceful solution would be for one large vendor (RIM) to acknowledge what other software their user base is likely to have installed and done some testing.

Once I got through the calendar sync issues, I encountered issues with syncing my gmail. And previous locations were wiped off Google maps too. Obviously I’m a heavy Google user. And obviously RIM doesn’t feel the need to test their software with Google software.

One thing that I expect as a user is for software to play reasonably well with other software. RIM not working with Google software? An upgrade wiping out calendar, Gmail, maps and sync settings is not an upgrade, it’s an inconvenience.

I won’t want to upgrade my Blackberry the next time a release comes out. This is one way laggards get created – experiencing software not working well – this is what leaves people clinging to the old because some applications are tools that we use and not our primary focus of the day.

I think about users who might not have drawn the correlation of an upgrade from one company impacting software from another company – plenty of users would not. And it was more than a day from the upgrade until I noticed the first issue – a long enough time gap for an end user not to draw a correlation. This is all stuff to ponder when I think about end users and their reactions to bugs.

Once I realized one issue with non-Blackberry software, I started checking for other negative impacts. I mentally did not trust my phone software for several days until I tested a few sync settings and could see things working again.

I’m just about over the bug – but it’s been a week – that’s an impact. I had been a pretty happy Blackberry user but this loses major points.

Posted in usability | Comments Off on experiencing a bug as an end user

debriefing alone

I often test alone. But then testing is a rather solitary activity much of the time. So is writing. Not surprising, introverts have a way of finding activities that leave them alone.

When I teach, I talk about using debriefs. I’m frequently surprised at how few people use debriefs.

If you’re unfamiliar with the term debrief , then I’d suggest begin by looking at the basic definition. I like returning to definitions, I find wrapping my head around a core term and definition is a more comfortable way to start learning something. Then expand on from there. James Bach has a great checklist for debriefs, here.

I don’t personally look at debriefs like an interrogation, a word you’ll see come up when you look at its basic definition. Instead, I prefer a more gentle approach. I think of a debrief as a time to be reflective. And I like having lots of time to reflect, I seem to need it.

So people ask me how I debrief if I’m testing alone. After all, debriefing is a joint activity. A conversation with someone else gently (or perhaps not so gently) prodding you with questions can help us realize new things or pay attention to things we may have missed during a testing session.

But you have to work with what you have – not what books or other people espouse about what you’re supposed to do. You have to find your own way. Since I work alone frequently, I’ve had to learn how to talk to myself. I’ve adapted. And yes, I do answer my own questions.

Some things I do have become such built in activities that it’s almost hard to distinguish them and write about them, stuff just is.

Debriefing is one of those activities.

So I’ve spent some time reflecting on what I ask myself, how do I reflect on my testing sessions – what questions do I ask myself to help me reflect, regroup and then go on.

In the quiet of my own mind without having to worry about the ramifications of time estimates altering the project or any other impact my answers might have, I ask myself these questions. And I often ask myself lots of why questions to my own answers because I’ve learned that underneath the why questions – a lot of good information can hide.

  1. Have I skipped anything?
  2. I find that on occasion a new feature will have some complication that I haven’t understood yet and when I’m slow to approach something, it means I have a block somewhere that I need to overcome. So I ask myself, have I skipped past something? Why?

  3. Do I have any hunches?
  4. Often where I suspect there are issues, there are. Sometimes I haven’t found what the issue is or what works “clunky” but my early hunches usually result in bugs. These hunches are hard for me to share with anyone because I might not yet be able to quantify, replicate or prove it. This is where I like my solo debrief sessions, I don’t have to worry about ramifications of my gut thoughts. My thoughts are inklings for me to explore at this point.

  5. Did I observe anything that made me hesitate?
  6. Along the path to testing something, issues pop up. Sometimes I’ll push past a smaller issue to move on, to get to some other state, condition or idea I have. Now might be the time to go back and make sure I’ve tracked down anything that I’ve hesitated over. Did I miss noting down any of those hunches? This is a good time to take the time to write up more notes. I remind myself that my notes can be private so I don’t have to worry about having “silly” ideas.

  7. Where do I feel I need to spend more time?
  8. I like asking myself this question because I use it to force myself to be brief and list. List making can be telling. It often reveals an area I haven’t tested in awhile or an area that I have some hunch. This is another tactic, another question that I prod myself with. And then – I ask myself why?

      Why do I feel I need to spend more time?

    1. Do I have doubts about the functionality working? Have I seen something to make me feel this way? Or have I not seen enough in an area to give me comfort that is working?
    2. Regression. Is this an area that needs some regression testing? Why – what specifically? I realize sometimes by asking myself this – I can specifically identify what I need to regression test.
    3. Need more confirmation. Sometimes I’ll test something and it will work fine. I’ll test and not find an issue and yet for some reason, I haven’t developed a sense that everything is ok. This is a hunch of some sort. There is some permutation or data or something I haven’t seen or tried yet. What, what is it? I prod myself along to see if I can distinctly figure out what feels undone.
  9. If the product were to ship now, what would make me uncomfortable?
  10. I like this question a lot. Not what haven’t I tested, not what work remains – instead this is another way for me to find out my gut feel about what isn’t ready yet either because testing has been light or I don’t have enough belief assurance that something is working.

  11. What feels done?
  12. After thinking about what feels undone, it is a source of comfort to me – to help me from feeling overwhelmed about what remains to become clear about what does feel done. And it is telling when something doesn’t end up on this list and yet it didn’t show up on my list of what was skipped or what hunches I have.

I trust my instincts so I don’t dismiss anything I find when I reflect this way. And I believe that over time, this is a way we can learn to trust our gut, to develop our instincts. I tend to be a pretty reflective person. I need space around activities to think.

With so much information coming at us during the day, when and how can we find our way through information that get shared with us as well as information we gain from our test sessions to know where to go next? Testing well done, is strategic. Strategic thinking requires that we reflect on information gained to plan next steps. So perhaps ask yourself, if you don’t use debriefs, when do you reflect, regroup and potentially redirect or reconfirm what your next testing activities will be – whether for yourself or for someone on your team?

Posted in Uncategorized | Comments Off on debriefing alone

A heuristic for regression testing

I’ve been doing a fair amount of regression testing. I gained clarity into how I think through regression testing as I explained my thought process to a client. And I’ve devised a mnemonic: RCRCRC.

Recent: new features, new areas of code are more vulnerable
Core: essential functions must continue to work
Risk: some areas of an application pose more risk
Configuration sensitive: code that’s dependent on environment settings can be vulnerable
Repaired: bug fixes can introduce new issues
Chronic: some areas in an application may be perpetually sensitive to breaking

I’ve previously shied away from creating mnemonics. I guess because I often forget them. How embarrassing, isn’t a mnemonic supposed to help me remember? I haven’t been able to explain my struggle but this post from Jonathan Kohl sums up how I’ve felt and has helped me.

Posted in regression testing | Comments Off on A heuristic for regression testing

NLP techniques: anchor & swish. What can be applied to software testing?

I’ve missed blogging. I’ve missed writing. Well, writing what I feel like when the mood strikes which I cannot predict – either the topic or the timing which doesn’t work so well for editors. I’ve been on another one of my productivity kicks where I cut out lots of activities, burrow in and produce stuff. Stuff like articles, classes and assorted matters. But today I woke up super early today (super early is before 5am) before 7am is just early. It happens often enough. Sometimes I’m just very awake. I’ll get up thinking I’ll add an hour or two to my day and that will be great because I can get more done (my productivity-obsession runs deep) but as is often the case, that isn’t how I spent the “bonus” time. Instead I found my mind wandering about. Reading and then looking up related concepts and somehow found myself reading about neuro-linguistic programming (NLP) at 5:30am. Things like that happen.

In 2006 when I started blogging, I vowed I would not let my blog became what I ate for breakfast and that my posts would have a WIFFM that was testing focused. So where’s the WIFFM in this?

Here’s one concept: If you never give your mind permission to wander and wonder to learn new things how do you expect to introduce new possibilities to your life or work?

Two of the techniques cited as part of NLP are anchoring and swish. I like this phrase on anchoring that I picked up on Wikipedia: “recalling past resourceful states.” What I find interesting about this is that I have long sensed certain feelings of being very awake and yet calm at times when I believe I am executing my best testing or writing. Perhaps the combination of wakefulness and calmness is just the right blend to achieve an ideal mental flow. A question to ponder: are there techniques I can adopt to get myself in that state more readily?

I want to investigate swish more to see what I can do with my procrastination problem which I’ve been slow to confess to. Swish is a technique to break or reduce bad habits. I wonder if the concept of swish might be applied to software testing – thinking about the concept from a more positive view. When I think about how to push my thinking in different directions, how to move out of one gear and into another – perhaps a swish technique could help.

James Bach talks about focusing and defocusing and that has helped me. Julian Harty has talked about applying DeBono’s six thinking hats and the concept physical representation of a hat has helped me. Mike Kelly who runs IWST(among many other activities) has a workshop coming up in November on focusing while doing exploratory testing. (I want to see if I can make it to that one.) Mike’s also blogged about NLP and so has Alan Richardson. But I’ve needed more or something else at times.

I get impatient with myself and frustrated when I feel the well is empty on one mental pathway and I’m trying to shift gears so that I can find alternate ideas and issues.

There is a precarious balance between giving myself permission to let my mind wander to discover new ideas or how to incorporate ideas (like NLP) into my own use and practice versus falling into the pit of procrastination.

A swish technique might work. I want to investigate these two techniques closer to see what I can learn and how I can fold those ideas into my work. And I wouldn’t have had those new ideas to explore if I wasn’t up super early. But now I have to get going – not physically thankfully but it is time for me to shift gears (swish). Today I have cell phone testing to tackle and I want to see what new ideas I can invent to detect issues (hoping to get into an anchored stated) before a product release launches (so incredibly soon).

Posted in software testing | Comments Off on NLP techniques: anchor & swish. What can be applied to software testing?

PNSQC 2009

At PNSQC 2009, I’ll be talking about “Building Alliances.” For a long while, I have avoided discussing assorted topics especially at conferences that might be viewed as “soft” topics. As a software tester without a developer’s background and being raised in small development companies, I didn’t feel I could take the risk of being viewed as “fluffy.” But now some years later, I want to talk about some of the topics that aren’t technical but are just as essential in getting the job done. I want to share ideas about how to build solid working relationships.

I want to talk about ideas on how to build working relationships and ways to collaborate with other people and other teams. I’m fortunate to have had experiences working with some really great people and teams over the years. But people dynamics aren’t always happy path just like software isn’t always functional in the early build stages, so I also want to talk about adversarial relationships and share some stories and ideas on how to re-route and realign relationships. People issues, politics and team dynamics are factors in how well or even whether some products evolve, not to mention how fulfilling or frustrating work time can be.

One of the principles from the context-driven school of testing states: “People, working together, are the most important part of any project’s context.” I want to share ideas for how to make that happen.

Posted in conferences | Comments Off on PNSQC 2009

Storied Careers, a book about storytelling and practitioners

Kathy Hansen, published author and storyteller, has released a new book called: A Storied Career, 40+ Story Practitioners Talk about Applied Storytelling. I’m one of several people Kathy interviewed for her chapter on unexpected applications of storytelling. The book features interviews with people from a variety of professions. Kathy’s book is a good read.

Posted in storytelling | Comments Off on Storied Careers, a book about storytelling and practitioners

STANZ 2009

The STANZ conference begins on Monday in Wellington New Zealand and continues through the week ending in Sydney Australia on Friday.

I’ll be talking about my use of storytelling with my work in software testing. I’ll also be teaching classes in both Wellington and Sydney as part of the conference.

Posted in conferences | Comments Off on STANZ 2009

Beautiful Testing

O’Reilly has announced the book, Beautiful Testing. I’m one of the contributing authors.

I was asked if I would write about my experiences and thoughts on medical software. I have several different project experiences I could have written about. I chose to write about one of the most intense work experiences I’ve had throughout my career.

My chapter is told in the format of a story. It’s based on a previous project experience that was intensified this past year when a personal situation intertwined with my work in unexpected ways.

One reviewer asked if I was alright sharing anything so personal but I had concluded yes before submitting my chapter.

The reality for me is that my work is personal.

In the past year, several difficult events have taken place in my family life. Although I did write one blog post ( 23 rooms) which shared some of what has taken place, for the most part, I’ve written very little about what has been taking place in my personal life. One reason is out of respect and privacy for my family. The other reason is that I’m committed to keeping my blog focused on software testing. If I wanted an online personal journal, I’d seek a different venue. But when my personal life and my work became so intertwined, I decided to share.

I didn’t realize at the time of writing the chapter, how cathartic it would be for me. It seems so obvious now. It helped. Frankly the past 15 months have more than a little difficult and anyone in the software testing community who has spent time with me has seen the effects on me.

The primary reason I have been writing so much more this past year is I have truly been hit with the reality to fit into my life anything that I ever really wanted to do. Writing is at the top of my list, always has been. I’ve taken a close look at activities that perhaps I hadn’t fit it or let drop on the old to-do list. The past year has changed my perspective on many things.

It is my hope that my chapter helps software testers and other readers further realize the importance of what we do.

I’m looking forward to seeing the book in print.

Posted in software testing | Comments Off on Beautiful Testing