Mac Conversions – Email and Synchronization?

Wow! Many thanks to everyone who commented on my MacBook 13″ v. MacBook Pro 15″ dilemma. Your comments are helping me tremendously.

(For the curious: while I haven’t ordered it yet, I’m leaning toward the 13″. I have the iMac with a big screen for when I’m in my office, and 13″ is easier to deal with on a plane. And y’all have allayed any concerns I might have had about performance differences between the MacBook and MacBook Pro. Now I just have to pick a color. Though I gotta say that while I’d love to get the black machine, I have a really hard time justifying paying that much more for a different color. But I digress…)

Next question:

As you can probably imagine, email is a big part of my life.

I’ve tried GMail, and I do use my GMail account on occasion, but I just can’t let go of my need for a local repository of email archives with folders. I like having “buckets” to put things into and I need to have my email client fully functional even when I don’t have an Internet connection. (It’s that using-it-on-a-plane thing again.)

So that means I’ll need a good email client for the Mac that can keep (LOTS of) messages organized on the local hard drive, that supports good/fast searching on any email field, that can synchronize between machines (completely, including folders), and that supports archiving off old email.

Outlook has done a barely good enough job of supporting my organization and archiving scheme on Windows. And I gave up synchronization on Windows as a lost cause some years ago since everything I tried was far too cumbersome. So I want something better than Outlook on the Mac. And the synchronization has to be flawless and frictionless.

I’ve played a little with Mail (the default Mac email client). I love the fact that it’s integrated with Spotlight. And I’m intrigued by the .mac synchronization feature. If it can really synchronize my email seamlessly, it would be worth the annual subscription fee.

So…any advice? Will Mail + .mac do what I need for email? Or is there something better I should consider?

Mac Conversions

I’ve been not-so-quietly converting to Mac from Windows over the last few months.

Windows Vista put the nail in the coffin, but I started switching even before I started thinking about upgrading from Windows XP to Vista. It all started when I spent some time working with the incredibly cool people at Pivotal Labs. They made the transition to mostly Macs over the last year, and I became a convert too. Having full blown real UNIX under the covers is what really did it for me.

My transition has been gradual. First I acquired an iMac for doing development work – Ruby, Ruby on Rails, etc. And it’s now become an indispensible part of my office infrastructure responsible for keeping my files (I’m keeping both code and my course materials under subversion these days), and also for my nightly backups.

But now it’s time to take the next big step and replace my Windows-based laptop.

And here’s where I’m torn. Do I go with the more portable and more economical MacBook with the 13″ monitor (souped up with extra memory), or do I go with the slicker 15″ MacBook Pro.

I run Eclipse and other development environments mostly for Ruby-related development and writing sample code in JavaScript. I do presentations. I write. I need to be able to demo testing-related tools like Selenium. My biggest concerns are performance and portability, in that order.

Any advice from those who switched before me?

From the Mailbox: What's the Definition of Testing?

A reader wrote to ask me, “My team and I have been discussing the definition of ‘test’ and ‘testing.’ What’s your definition?”

There are almost as many definitions of software testing as there are books on the topic.

  • In his 1979 book The Art of Software Testing, Glenford Myers said, “Testing is the process of executing a program with the intent of finding errors.”
  • Kaner, Falk and Nguyen agreed in their 1999 book, Testing Computer Software (2nd Ed): “The purpose of testing a program is to find problems in it.”
  • In his 1983 book The Complete Guide to Software Testing, Bill Hetzel said, “Testing is any activity aimed at evaluating an attribute or capability of a program or system and determining that it meets its required results.”
  • The 1990 IEEE Standard Glossary of Software Engineering Terminology (Std 610.12-1990) says testing is, “The process of operating a system or component under specified conditions, observing or recording the results, and making an evaluation of some aspect of the system or component.”

But whatever definition of testing you subscribe to, the result of testing is information: information about bugs, discrepancies, misunderstandings, current status, and software behavior under a variety of conditions.

Dale Emery and I discussed this at length and decided that we agree that: Testing is a process of gathering information by making observations and comparing them to expectations.

(Please note that this definition is intentionally vague about where those expectations come from.)

That leaves the question about the definition of the word “test.”

There are numerous definitions including the one in the IEEE glossary (Standard 610.12) that defines “test” as “An activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component.”

However, Dale and I find a slight reframe helpful: A test is an experiment designed to reveal information, or answer a specific question, about the software or system.

Anyone have definitions for “Testing” and “Test” that you like better?

How to Solicit the Training You Really Want

I had a banner day yesterday. If things come in threes, I’m just hoping I’m done for a while…

  1. Broke my favorite mug, with the coffee in it, just after sunrise. Still trying to figure out how I managed to knock the stupid thing out of my own hand with my opposing elbow. Apparently I shouldn’t be allowed to drink coffee from breakable crockery until I’ve had enough coffee to be less dangerous.
  2. Killed my brand new laminator while trying to test it out by making luggage tags. I got the carrier jammed in it beyond all repair. Though I managed not to electrocute myself or burn down the house in my attempts to fix the dang thing, so I guess I should count my blessings. The laminator, however, is now in the trash.
  3. Then discovered that not one but TWO different companies “borrowed” my course outline without attribution. One was advertising their software testing course using my outline. The other submitted my outline as part of an RFP they’re sending around to various consultants.

Of all the things that happened yesterday, item #3 has distracted and annoyed me the most.

In discussing the situation with a fellow consultant, I learned that other trainers have had their outlines “borrowed” recently too.

So, for the good of the industry, and to blow off a little steam, I would like to take this opportunity to discuss why copying and pasting outlines is not in your best interest.

The first case, where a company used my outline to advertise their course, is the most egregious. Fortunately, such things are also rare. This is the first incident I’ve had quite like this, ever. And it’s only the fourth incident that I’m aware of where someone wholly plagiarized my work. (No, I won’t point you to their site. I’m not going to give them the free advertising. And yes, I’m sure it was stolen: it was reproduced verbatim and it’s extremely unlikely the other company independently came up with the same section headings, in the same order, with the same quirky wording. For what it’s worth, the offending company has now reworked their outline so it only bears a slight resemblance to mine instead of being pure copyright infringement.)

Anyway, I’m happy to note that most people recognize that kind of copy and pasting for what it is: plagiarizing and theft of intellectual property and just plain not nice.

But the second case is more common, less egregious, and, for some, less clear cut.

The sequence of events usually goes something like this: Customer A gets a proposal from Trainer/Consultant B. Customer A likes the proposal, but doesn’t like the price, or the trainer isn’t available in the timeframe they need, or the customer is required by policy to get three bids, or some other perfectly good reason for not accepting the proposal. The trouble begins when Customer A strips out references to Trainer/Consultant B from the proposal and turns it into an RFP and sends it to Trainer/Consultants C, D, and E. “Can you provide training like this…?” asks Customer A.

As far as Customer A is concerned, they’re just shopping around. They don’t see reusing the outline as a violation of a copyright. And this is apparently common practice. I’ve seen incidents like this three times in last month (both with my outline and outlines from others).

But that doesn’t make it OK. And believe it or not, if you’re shopping for training, copying and pasting an outline you like into an RFP is not the best way to get a class that meets your needs.

First, let’s deal with the legal issue. If you copy and paste someone else’s outline and distribute the resulting document, you are violating copyright law. It does not matter if the outline was on a publicly available website. It does not matter that the outline contains general testing terms like “equivalence partitioning.” The names of specific sections in a class may not be terribly unique, but the whole outline is a copyrighted work, at least in the US. (See the FAQ at copyright.gov for details on US copyright law.)

So as a general rule: do not copy and paste an excerpt from someone else’s work without attribution, and do not copy and paste a substantial portion of a work (like an entire course outline) without permission. Even if your intentions are pure, you may be accused of plagiarizing and theft of intellectual property and just plain not being nice, and that’s no fun.

“But wait!” you may protest. “I, a customer, want something like what Trainer/Consultant B offers. But I don’t need that exact course. Can’t I send out an RFP using that outline as an example of what I want?”

To put it harshly: Not legally without attribution. No.

You could reference their outline, like “We’re seeking training similar to that offered by XYZ training corp described at http://www.blahblahblah”

But let me offer a better approach: one that will help improve the odds of you getting exactly what you want out of the training you eventually purchase.

If you are shopping for training and you’ve found an outline that you’d like to use as an example, spend time thinking about what it is that you like about it. Was it the combination of topics? The order in which the topics were presented? The approach? The exercises? Something else?

Such reflection will take more work, but it will also help you clarify your training objectives.

In my experience, the number one success factor for professional training is clarity on objectives. That’s why I make a point of engaging with my clients before I step foot in the classroom to ensure that we are in alignment about their goals for the course. I do this in email and phone conversations where I ask open ended questions designed to explore the client’s context. As part of these conversations, the client tell me things like, “We do OK on happy path tests, but we need to learn techniques for identifying interesting error cases.” Aha! Now I know to emphasize test design techniques related to errors, interruptions, etc. The end result: the client gets a class that’s tailored to their context, and I get a happy client. It’s good all around.

But when clients can’t tell me much other than, “Just come and teach us testing stuff,” I know we’re in for a rough time. It will be difficult for me to deliver a course that meets their expectations if they have no idea what they want.

So, using your new-found insights about what you really want in training, you can distill that proprietary outline down to a list of topics like “equivalence classing,” “boundary analysis,” “state modeling,” “compatibility testing,” “exploratory testing,” “test documentation on Agile projects,” etc. As you capture each topic you want in the training, use plain-vanilla, general wording: wording that shows up on hundreds or thousands of sites if you Google for it.

Here’s an example. In one of my course outlines, I have a section titled, “The Nightmare Headline Game.” It’s an exercise. The real topic behind the exercise is Risk-Based Testing. Try this:

* Google “The Nightmare Headline Game”
* Google “Risk-Based Testing”

See the difference?

As of this writing, I get 7000x more hits on “Risk-Based Testing” than “The Nightmare Headline Game,” and the vast majority of hits on “The Nightmare Headline Game” point to one of my sites. The only one that doesn’t looks like it was randomly generated by sampling content from numerous sites. (Actually, that one page is kind of bizarre. But that’s a problem for another day.)

By contrast, the term “Risk-Based Testing” has entered our general industry vocabulary. It appears in numerous courses and other resources.

So if you copied and pasted one of my outlines with “The Nightmare Headline Game” into an RFP, who knows what the response might include. But if you ask for “Risk-Based Testing,” there’s a greater chance that the RFP responder will have some idea what you want.

And if you liked the approach or exercises in the original course description you can find general ways to ask for those too. There’s nothing proprietary about the term “experiential training,” for example. If you want hands-on exercises, you can ask for them. Just don’t copy another instructors description of their exercises word-for-word.

Better yet, once you’ve created your idealized course description with some verbiage about the approach you want and a distilled list of topics using general industry terms, you have something that is yours and that you can use however you wish. Legally.

Of course, if what you really want is the course that went with the original outline, find a way to buy or attend that course. You’ll be happier in the end.

After all, if someone really wants ice cream but gets talked into accepting a chocolate chip cookie instead, they usually find that they still crave ice cream and end up regretting the cookie.

(Must be lunch time. I’m hungry.)