Hello World? Quick Advice On Design Specifications

Alvin Chardon, VC++ IDE QA member here.  In thinking about ways of introducing the Visual C++ culture to our customers, I’ve decided to share a story.  Around 6 months ago, the Visual C++ IDE QA Team hired its newest SDET.  I was excited to hear my lead wanted me to be his mentor.  Having worked on the Visual C++ Team for the past 5 years has taught me that all successful projects have a well thought out plan and consistent design specification behind them.  Thus, I decided to approach mentoring as I would any other project:  by gathering the requirements and writing a specification – which in this case was just a training plan.

After meeting with our new SDET and getting a good grasp of what skills he needed to learn before he could execute effectively in the IDE QA team, I decided to assign him a little project.  Something unrelated to our testing methodologies and technologies, but that succeeded in exposing him to C++/CLI and the IDE technologies that he will be testing.  Knowing that specifications are important, I sent him a little document that specifies the assignment requirements, its purpose and what I expected the outcome to be.  To summarize, I asked him to write a HelloWorld application (how original), that outputs “Hello World” in three different languages.  The application was to be written in C++/CLI and to be localized using .NET’s paradigm for managed resources and satellite assemblies.

About a day later, I received email from our new hire telling me he had completed the project.  I asked him to share it with me, but instead he insisted I come to his office.  “All right, I will meet you there”, I said.  When I arrived at his office, I was greeted with a pair of head phones and a conversation about the computer’s sound card, which to tell the truth I didn’t understand why it was important at the time.  So I figure, something must be wrong with the sound card and our new SDET is only looking for some help diagnosing it.  I put on the head phones, our new SDET presses CTRL + F5 and his program salutes me by saying out loud Hello World, Hola Mundo and Bonjour Monde!  “You made it talk”, I said.  “Why”, I asked.  He responded: “Because you told me to.”  Going back to my office and re-reading the specification I note:

Create a HelloWorld application, console or windows, using Visual C++ and the .NET platform to say hello world in three different languages.

“…to say hello world…” – tells you something about English not being my first language.

Lessons learned:

1.       You can’t “predict” what the Visual C++ team will come up with next!

2.       Design specifications need be clear, concise and specific – leave no room for interpretation.

Till next time.