Posted on August 24, 2010 in Uncategorized by adamNo Comments »

I was in California this week partly for a client meeting and partly for a Selenium Developer Meetup and had half a day to kill so figured What the heck, I’ll go hang out at Agilistry. And look! There is a workshop called Coaching with Questions. So much the better!. (I likely would have gone regardless.)

‘Coaching with Questions’ ended up being one of those ‘experiential’ workshops that the/us Agile kids like to have; in this case it was Dale Emery who was facilitating. And though I really dislike the ‘experience’ of them live, this one makes me think I should really participate in more. (Not sure if I’m quite ready for PSL yet though, but again, I’m pretty sure I should be signing myself for it based on not thinking I am ready for it.)

The first exercise we did ended up producing a list of reasons why someone might want to as a particular question, but end up asking a different one.

  • New information
  • Question was answered by previous question
  • Something wasn’t clear
  • Did not yet hear the current state of whatever is causing the questioning
  • Inquire about the expectations for the questioning [in order to frame further questions]
  • Separate the larger problem from the smaller, personal problem
  • Alignment with the questioners model
  • To confirm some conclusions that are being reached

The second exercise was done in small groups and was a conversation between two people but where the ‘coach’ could only ask questions. Its safe to say that section was incredibly useful to me as Elizabeth Hendrickson was my coach and my hand-wavey, nebulous question was nicely morphed into a big bundle of other questions (and fears that I had nicely put into boxes — aren’t that what boxes for?!!?) that I needed to be facing. (See, told you I both needing PSL and am consciously avoiding it.) Had I been paired with someone else I’m not sure how much I would have gotten from it, but she has some situational background knowledge and I trust her so it worked fantastic (I think — and its my blog post). On reflection I think I even forgot there was an ‘observer’ who was watching the conversation.

After each debrief was discussion in which I wrote done the/my key items.

  • Part of coaching is inviting the client to think
  • Don’t assume you understand the concerns of the person answering your questions
  • Businesses tend to do things for three reasons: to increase revenue, decrease cost or make a strategic change
  • An important part of coaching is permission. And that permission is tentative and always up for renegotiation
  • A useful question – Are my questions useful?
  • A context-free one – What question haven’t I asked you?
  • The biggest value a coach / consultant can bring to a situation is ignorance
  • Coaching is about helping to put pieces together
  • You can’t help but advise people with your questioning since the very act of asking a question has context and background around why you asked that particular question at the particular time
  • Part of what we bring to a coaching assignment is out models of the universe
  • If something is important, it will come up again
  • A question I think I first heard Jerry Weinberg say (to Adam White) – If you did know the answer, what would it be?
  • Possibility Boundaries
  • It is best to ask for explicit permission if you are unsure whether you have it for a line of inquiry
  • A shift (in tone of voice, energy of speaker, body language)usually means some something

Coaching with Questions felt kinda ‘5 whys’-ish at times, but its actually much more than that with the key word being ‘coaching’. I think ‘5 whys’ is more of a focusing tool for a specific issue than the sorts of things a well done thread of questioning can provide. I’d have no problem recommending this to other coaches / consultants — especially ones who are just starting out.

Oh, and Dale provided handouts at the end. I really need to start doing handouts.

Posted on August 20, 2010 in Uncategorized by adamNo Comments »

Within a 10 minute timespan I read two completely unrelated articles that, in passing, said the same thing which is something that should be paid attention to.

The first was in Canadian Thoroughbred (my wife is a race official) on decreasing field sizes at race tracks. Field sizes at racetracks is a lagging economic indicator in that it takes 2 years at least between conception and racetrack for a horse with most being fully productive in the winners circle at a 3. And so now we are starting to see the effects of the economy on horse breeding as there has been a 20% drop in mares bred since 2006.

But to say that there are less horses in the starting gate because there is a 20% drop in breeding accurate. Not quite; ‘because’ is a heuristic which means it is fallible. Here is an important part of the article.

In my opinion, there simply have not been enough owners who have wanted to race those horses, as the economics of operating a racing stable in most jurisdictions have become more challenging, and the overall economy as cause the type of individual who might invest in racing to cut back on their discretionary spending.

So yes, the economy is involved, but not in the way you might think.

The other article was in Canadian Business about beekeeping. There was lots of stuff on Colony Collapse Disorder, etc. and how ‘less bees means higher food cost.’ Except this part of a paragraph stood out.

“To be honest,” says Melhim, “we’re talking about the disappearing of beekeepers more than we’re talking about [the disappearing of] honeybees.” As smaller operations fold, fewer commercial beekeepers are managing more colonies—and shouldering more financial risk. “It’s not very sustainable,” says Jeff Pettis, head of the Beltsville, Md., Bee Research Laboratory of the U.S. Department of Agriculture (USDA).

So the big risk to the food system is not because of CCD, but the commercialization of beekeeping itself.

Which means we now need to add ‘because’ to our list of words that trigger further investigation upon hearing them. As if we didn’t have enough stuff on our plate already…

Posted on August 19, 2010 in Uncategorized by adam1 Comment »

Canadian Business’ ‘Performance’ article for the August 16 dead tree issue is An introvert’s guide to schmoozing (though curiously it is Networking online). It starts out with a mention of Myers-Briggs types as its basis for defining what an introvert is and then goes from there.

  • According to a University of Iowa study on brain activity led by physiological psychologist Debra L. Johnson, introvert brains show more activity in areas dealing with learning and planning, while extrovert brains are more active in regions that control sensory processes, like watching and listening. This might explain why an extrovert is stimulated more by external forces, namely other people, and introverts are happy in their own head.
  • Her advice: stay true to your nature and use those “quiet ways” to get ahead.
  • “It’s not about interacting with 50 people. It’s making connections with primary individuals, and introverts are better at that.”
  • “introverts are generally patient, good listeners — and the key to client services is you have to listen.”

Introverts in MBTI is interesting in that I seem to have in my head that a lot of testers I know have said they are introverts. Not sure if there is causation or correlation there, but it is interesting. (For the curious, I am likely INTJ if the mighty Internets interpret things correctly.)

Posted on August 18, 2010 in Uncategorized by adamNo Comments »

(Yes, I have a stack of Canadian Business articles to write about…)

Amber MacArthur is a bit of a social media powerhouse around here (ok, that might be a bit of an understatement) and part of that role involves doing the circuit to pimp her new book. In a Canadian Business interview with her she discusses how to hire, and best make use of, a social media consultant. (Which for the record I think is right up there with SEO consultant…)

I’m not a big fan of using an agency or consultant who will do all of the work for you. The best way to get up to speed with what’s happening in social media is to work with that person for a couple months to develop a strategic plan — what you’re going to do, what kind of schedule you need in place — and make use of their experience and their advice. But eventually you should run your own social-media initiative. There are lots of big agencies managing social media for companies, and that’s not always very authentic. To have the most authentic voice in social media, you want to have someone inside the company who is the face of your organization online.

Exactly.

This is the same for any sort of consulting work be it something as fuzzy as social media or technical like Selenium.

See also a description of how Brian Marick prefers to consult paying keen attention to the second last point – it is the most important one.

Posted on August 17, 2010 in Uncategorized by adamNo Comments »

I’m starting to quite look forward to the articles Richard Branson has in each issue of Canadian Business. They’re only one page, but crisp writing that has a quick nugget of wisdom with tales from his own life as an example.

Now that I am a consultant and dealing with clients directly (or as a sub-contractor for a larger organization) creating customer loyalty is immensely important so Weak links in the chain of good service was timely.

  • Delivering good customer service requires that a front-line worker receive supportive assistance from an entire network of co-workers—in effect, a chain reaction of teamwork, one that is consistent from beginning to end. And when it comes to helping a customer, the chain of assistance is only as strong as its weakest link.
  • But going the extra mile builds massive customer loyalty and brand-enhancing benefits.
  • While fiscal accountability is important, especially when an outlay of cash is involved, there will always be occasions when an asterisk needs to be marked on the balance sheet.
  • No company can train its front-end people to handle every situation, but you can strive to create an environment in which they feel at ease “doing as they would be done by.”
  • Good customer service on the shop floor begins at the very top. If your senior people don’t get it, even the strongest links further down the line can become compromised, as the story shows.

Surprise! Culture is important!

Just because you are technically not obligated contractually to fix a bug in a third-party open source package your company relies on, this is the ‘extra mile’ that he mentions in the article.

Posted on August 13, 2010 in Uncategorized by adam1 Comment »

My talk at this year’s Agile conference ended 13 hours ago and I’m now sitting in front of the ticketing counter waiting for someone to give me a boarding pass home which seems like a good time to post my slides and such.

The slides themselves, as usual, are not much value without me talking along side them, but here is also the content that made up what I was trying to communicate.

Posted on August 11, 2010 in Uncategorized by adamNo Comments »

This pattern of forgetting things is getting dangerous (T minus 32 hours). One thing that I wanted to suggest is that storing your checklists, etc. in a wiki is also ‘acceptable’ from an Agile perspective. Ideally you want them right there with the source code, but a wiki has the advantage of being in the browser. And everyone has seen wikipedia by this point so is has at least heard of the concept of editing content.

If you are going to go down the wiki route, you need to make sure that it, at bare minimum, tracks revisions of edits and can disable anonymous edits (for auditing purposes).

You also want to provide templates for people to use when creating specifically purposed pages. The last thing you want is having 3 or 4 people each doing somethings slightly differently. (Thanks for Marlena for that tip.)

‘Gardening’ is the common term for cleaning up the wiki and time needs to be allocated to do it. Most often when gardening you are looking at adjusting the links between pages and the tags to find them. On this subject Chris says

Links and tags are devices by which to organize related information. The scheme by which you organize the information is up to you, but links and tags are how you manage the organization itself.

Chris also reminded me of something you want to consider with all your infrastructure choices – integration. Check whether your wiki has an API, and if so, start to wire them together.

Both Chris and Matt reminded me to mention that Fitnesse (one of the table-based BDD/ATDD tools) is really just a highly optimized wiki. (Random trivia – the Selenese syntax that Selenium-IDE uses was also a fork of FIT so has wiki heritage.)

Now what else have I forgotten in this series…

Posted on August 11, 2010 in Uncategorized by adamNo Comments »

I was about to call it a wrap on this series and realized I have skimped on the actual management part. Whoops. So here it is…

I guess there should be some definition of what I mean by management. It breaks down into three different categories:

  • When/What to run
  • Who ran it
  • What was the result

Let’s try and tackle each of them.

When and What to run is the classic testing problem. You cannot run every single test case for the hold system. It is mathematically impossible. Up against such odds, you do what you always do; you use your judgement and experience of what has changed and therefore the risks of those changes and run the tests that best address those risks.

The specifics of how you find particular tests is also up to you but I have seen them organized by…

  • File Name – This is the Hungarian Notation of test cases. This is human readable true, but requires a human to categorize and group. Well, I suppose you could make monster filenames but that is unwieldy.
  • Directory – This strategy relies on the where a test is in a directory tree as to what it describes. This is a strategy I have used quite a bit as it is both human and machine parseable, but is falls down if you want to mix organizational metaphors (functionality vs. user vs. module)
  • Tags – This is something that I haven’t made use of yet, but want to. Remember that everything we produce (except for the visual stuff like mindmaps) is just raw text. This means it can be parsed with a quickie script. So why not put a line is there that just says Tags: registration admin security or similar that captures the intent of the test. Images and other formats can embed this sort of information as well — it just means your locator script is a bit more complicated. (And fun to write!)

Or, better still, you combine all three of these.

Who ran it and when it was run are more interesting challenges. I find that most if not all of these examples of Agile Test Cases work best if you involve dead trees. As in print them out. But I never made the leap from being able to take notes in a different window while testing in another without losing flow. The original SBTM paper suggested that your notes should be just in raw text so anything in there could also be parsed by some tools. In either event, what you want to do indicate whatever you need to clear an audit on the test case. One one project we printed out the mindmap and initialed with a check or x beside each node and the date. And then the artifact has to be returned to version control (likely with a different name to allow for easy test case reuse). If it is from a dead tree, then it needs to be scanned and captured much along the lines of how some teams will design on the whiteboard then take a picture of it.

But truth be told, I recycle the paper when I am done with it. Why? Well, partly because I don’t do stuff in a regulated environment so don’t need to archive it. But also because a key attribute of Agile is Trust. If I say that I tested something then that is actually enough.

But as with everything, how you manage your tests is entirely dependent on your needs. Not mine. Or anyone else’s.

Posted on August 11, 2010 in Uncategorized by adam2 Comments »

So what makes a system/means of managing test cases ‘Agile’? It depends of course. Marketing teams certainly try through the use of smoke-and-mirrors to make their products Agile … and sometimes that works. But to me, there is a barrier to entry.

  • Version Controllable – When I am coaching new test teams, I use the phrase ‘If it has value, then it is versioned. If it does not have value, it does not get created’. You need to version for (at least) two reasons; to compare between two versions and to know what is the ‘golden’ copy of whatever you are using for test cases
  • Natural Language – Test cases should be made by humans and consumable by humans. That does not mean that that a machine cannot also consume it (such as in the Executable Specifications context).
  • Text – Application source code is just text, so why not your test cases as well. They are just as important. But the big thing is that it does not need to be fancy. The facts, and just the facts as it were. It does not need to be underlined, bolded, multi-sized etc. This means you don not need to use MS Word, etc. as the editor. Heck, you don’t really even need to use HTML (unless you are using something like Fitnesse which uses that as it’s storage means). The loophole around this when it is something visual (like a mindmap or screenshot)
  • No Fluff, Just Stuff – This is a general comment, but I’ll put it here anyways. You do not need to have version data in your test cases — that is what version control is for. You also do not need an executive summary, or a definition section, etc.Brain On – Testing is a sapient activity; it is brain on. If the person executing the case can do it without turning on their brain, then it is too limiting. Automated Acceptance Tests and Exploratory Testing are parts of Agile testing; rote script execution is not.

Of course, these are all heuristic. There are absolutely situations where each of these attributes are false, but I think those are few-ish and far-ish between.

Posted on August 10, 2010 in Uncategorized by adamNo Comments »

Long gone are the relative safe topics from the first three posts in this series and we’re well into realm of dangerous with Specification and their automated compatriots, Executable Specifications. Speci-what? Executable who? Exactly. Both of these are tenants of Agile but are only just starting to cross over from the realm of the ‘cool kids’ and into the near-mainstream.

So what is an Specification? I’m labelling it as a concise, natural language description of an desired behaviour [of your application]. Once it is automated it becomes and Executable.

Notice the word behaviour. These are central to BDD (Behaviour Driven Development) and ATDD (Acceptance Test Driven Development) which appear to be the same thing, but invented on different sides of the Atlantic. But just like with SBTM, the whole flow of BDD/ATDD is out of scope and I’m interested just in the specifications themselves.

So.

I’ve got lots of notes from talking to lots of people, so here is the dump of them. Hopefully something will arise from it.

  • There is no ‘right’ or ‘wrong’ way to write these, though some tools enforce a particular way
  • A large part of why you develop specifications is to get everyone talking and agreeing that this is what we are building
  • It is important to agree upon, and correctly use, the various verbs and nouns
  • Specification do not describe the implementation, only the desired end result
  • And so are at the domain level, not the UI level
  • A Goal will be solved by n stories, and those stories will have y specifications
  • Two common ways of constructing these are Tables (Fitnesse) and Declarative (GWT)
  • But if those don’t work for you, create your own
  • The tester / automator does not get to change the specification once it has been created (without business approval of the new specification)
  • It is a value/ROI judgment that determines whether a specification is automated or not
  • Bug it is highly desirable to do so
  • Which requires certain strategies sometimes (see Agile Test Automation Strategy For the Non-technical for some of them)
  • Specifications is a synonym for Example

The exercise for this one is going to likely be to use the GWT format to create a series of possible specifications for a story. What that story is exactly is tbd.

Next Page »