Wednesday, June 14, 2006

Good Writing Leads to Good Quality Testing

This is an extract from "Benefits of Written Artifacts by Mike Alexander"
______________________________________
While the process of writing can be helpful to your testing efforts, the results of those efforts provide unique benefits of their own. Again, not all test groups produce the same types of documents, and the terms "test plan" and "test case" mean vastly different things to different people. In any case, any written documents you produce as part of your test efforts will provide some, if not all, of the following benefits.

Documents serve as useful artifacts that can be shared with other departments within your company, with regulatory agencies, with test partners, and with any other interested parties. If written well, your documents will provide these third parties with the information they need. That way, you can spend your time testing rather than answering questions about poorly written documents.

You also establish yourself as a reliable source of information, which will be good for your career. If, however, your writing is sloppy or incomplete, chances are you'll spend more time clarifying what you "meant to say" than you did writing in the first place. You will be perceived as disorganized or as a muddled thinker, which will not be good for your career.

At times, testers prepare documents in order to actively solicit questions and comments. Another benefit of a well-written document is that it can be distributed long before other people's responses are needed. That way, your audience has sufficient time to review your work, come up with their own list of items for clarification, and present their questions to you in a helpful fashion. Without a written document to distribute in advance, the responses from your audience will be "on the spot" and may not be as comprehensive as you would prefer.

The writings of one test team member can also serve as models or guides for others. Chances are that not every member on the test team will have the same level of skill or comfort with writing. In those cases, the well-written works of some members make good examples for the rest of the group to study when developing their own writing skills. While templates carry potential problems of their own (see the Pitfalls section below), when used appropriately as a guide they are an excellent way to help others improve skills by example.

Your writing can also benefit the entire test team by providing a single, professional "look and feel" for the group. By using the same well-prepared document outlines or "shells," each member of the test team can write in his or her own personal style while maintaining the written "image" of the group. Of course, the quality of the writing that "fills in" the outline must be high, or else the image is quickly undermined. Just because different team members' writing looks the same doesn't necessarily mean that it's written well.

Many testers I have met share the feeling that they are seen as less-than-equals by the development teams they work with. Quality writing is a trait that all professionals seem to appreciate, particularly when the document must stand on its own without the author present to back it up. An author must be confident in and knowledgeable of a topic to write well about it. Quality documentation tells developers and management that the author is a professional, which elevates their perception of the author and of the whole test team.

Sunday, June 11, 2006

Getting a new look-TWIN-LAUNCH Portal!

Last Saturday (June 10, 2006) was a special day for Technical Writers of India especially for the people behind the portal Twin-India. It was a befitting occasion to be celebrated since TWIN has had worked selflessly for this. I was fortunate enough to be a part of this historical occasion and tried my level best to look as calm and composed I could be in front of a gathering that had stalwarts like Gururaj BS, Vasudha Rangarajan, Suman Kumar, Pradeep Vasudevan and whole set of more.

I reached exactly at 4:30 sharp at the venue Nahar Cottage that is on St.Marks Road. Gururaj,who welcomed all the dignitaries and was looking stunning in his dark green shirts. The host for the show was Anthony Francis,a versatile technical writer who after welcoming the audience asked Mr.John Thomas, the Vice Dean at the Indian Institute of Journalism and New Media, to launch the the TWIN portal at Hotel Nahar Heritage, Bangalore.

Mr.Thomas shared his inputs on Technical Writing and reminded the gathering of the launching of his India's first Online Newspaper, Deccan Herald. He saw technical writing a boon for the next generation and said that it should be a part of the curriculm.

Next was the launch of http://twin-india.org that is developed using the content management tool -Drupal. Pradeep Vasudevan gave a brief on how the work on the revamping of portal was started and handed it over to Suman Kumar. Suman presented an overview of how the revamping of portal was done and why they chose to use Drupal instead of other CMS tools like Mambo etc.

A few of the objects while selecting the CMS tool were :
Open-source
Price
User-friendly
Capability of handling features
Search Capabilty

After Suman had completed the presentation few questions were asked as if it would be possible to attach a file these days while sending posts in TWIN. Gururaj responded that by saying that it would depend on the 'theme of the file' and the moderator needs to approve the file first to be posted. A break was taken after that!

After relishing the delicacies of Jamoon, sandwich and samosas, Francis asked senior technical writers to share their TWIN experience. Miss. Vasudha spoke first and than Akash Dubey in his comical note delivered a speech. I was honored to read out a speech of ex-STC India President Mr.Makrand Pandit. A few points that Makrand etched out in his note were to reduce the flame wars that takes place in TWIN these days and to find out some good technical writers from the forum.

The meeting ended with the TWIN List Admin, Sandeep giving the vote of thanks. We all than dispersed.

It was a very eventful occasion perhaps a few more technical writers would have done great.

So enjoy the new portal, and in case you haven't browse through take a look at it http://twin-india.org.

These are my personal comments and in way are related to any groups. In case you wish to respond, please send me your comments at holypriest@gmail.com

Monday, June 05, 2006

A speech worth reading for IT programmers

Hi All,

Get Back to ur Basics!!!

I really enjoyed reading the speech given by Principal Scientist, Adobe Systems. Also got the list of the books we have to get back to…

Advice to young programmers (This is the summary of speech Given by Alex Stepenov (Principal Scientist, Adobe Systems) at Adobe India on 30 Nov 2004. )

1. Study , Study and Study - Never ever think that you have acquired all or most of the knowledge which exists in the world. Almost everybody in US at age of 14 and everybody in India at age of 24 starts thinking that he has acquired all the wisdom and knowledge that he needs. This should be strictly avoided. - You should be habituated to studies...exactly in the same way as you are habituated to brushing
teeth and taking bath every morning.

The habit of study must become a 'part of your blood'. And the study should be from both the areas: CS,since it is your profession, and something from non-CS...Something which doesnot relate to your work. This would expand your knowledge in other field too. A regular study, everyday, is extremely essential. It doesnot matter whether you study of 20 minutes of 2 hours, but consistency is a must. - You should always study basics and fundamentals.

There is no point in going for advanced topics. When I was at the age of 24, I
wanted to do PhD in program verification, though I was not able to understand anything from that. The basic reason was that my fundamental concepts were not clear. Studying 'Algebraic Geometry' is useless if you donot understand basics in Algebra and Geometry. Also, you should always go back and re-read and re-iterate over the fundamental concepts. What is the exact definition of 'fundamental'? The stuff which is around for a while and which forms basic part of the concepts can be regarded as
more fundamental. Of course, everybody understands what a fundamental means. - Here are few books which I would strongly recommend that every CS professional should read and understand.

i."Structure and Interpretation of Computer Programs" by Albenson and Sussman I
personally donot like the material present in this book and I do have some objections about it but this is the best book I have ever seen which explains all the concepts in programming in a clear and excellent way.

ii.Introduction to Computer Architecture: by Hennessy and Patterson.
How many of you have shipped the programs by writing them in assembly? A very good understanding of basics of how a computer operates is what every CS professional must have. H&P Wrote two books on CA. I am talking about their first book, the introductory text for understanding basic aspects of how a computer works. Even if you feel that you know whatever is written in that book, donot stop reading. It's good to revise basics again and again.

iii."Fundamentals of Programming" by Donald Knuth. The core of CS is algorithms and Data structures. Every CS professional must have the 3 volumes of Knuth's Book on programming. It really does not matter if you take 30 years of your life to understand what Knuth has written, what is more important is that you read atleast some part of that book everyday without fail.

iv. Introduction to Algorithms by Cormen, Leiserson and Rivest This book should be read daily to keep your concepts fresh. This is the best book for fundamental concepts in algorithms.

2. Learn Professional Ethics - As a CS Professional, you are morally obliged to do a good job. What this means is that you are supposed to do your job not for your manager but for yourself. This is already told in Bhagwatgeeta : Doing duties of your life. - The direct implication of this is: never ever write a bad code. You don't need to be fastest and run after shipping dates; rather you need to write quality code. Never write junk code. Rewrite it till it is good. Thoroughly test every piece of code that you write. Donot write codes which are "sort of allright". You might not achieve perfection, but atleast your code should be of good quality. - Let me quote my own example in this context.

You might have heard about STL, The Standard Template Library that ships in with C++ compilers. I wrote it 10 years ago, in 1994. While implementing one of the routines in the STL, namely the "search routine", I was a bit lazy and instead of writing a good linear order implementation of KMP which was difficult to code, I wrote a best quadratic implementation. I knew that I could make the search faster by writing a linear-order implementation, but I was lazy and I did not do that. And, after 10 years of my writing STL, exactly the same implementation is still used inside STL and STL ships with an inefficient quadratic implementation of search routine
even today!! You might ask me: why can't you rewrite that?

Well...I cannot, because that code is no more my property!! Further, nobody today
will be interested in a standalone efficient STL ...people would prefer one which automatically ships out with the compiler itself. - Moral is, you should have aesthetic beauty built inside you. You should "feel" uneasy on writing bad code and should be eager to rewrite the code till it becomes upto the quality. And to the judge the quality, you need to develop sense regarding which algorithms to use under what circumstances.

3. Figure out your Goals - Always aspire doing bigger things in life - "Viewing promotion path as your career" is a completely wrong goal. If you are really interested in studying and learning new things, never ever aspire for being a manager. Managers cannot learn and study...they have no time. "Company ladder aspiration" is not what should be important for you. - You might feel that you want to do certain things which you cannot do till you become a manager.

When you become a manager, you will soon realize that now you just cannot do anything! - You will have a great experience as programmers. But if you care for people and love people, you will never enjoy being a manager...most good managers are reluctant managers. If you see people as people, you cannot survive at management level. - Always aspire for professional greatness. Our profession is very beautiful because we create abstract models and implement them in reality.

There is a big fun in doing that. We have a profession which allows us to do creative
things and even gives nice salary for that. - The three biggest mistakes that people usually make are aiming for money, aiming for promotion and aiming for fame. The moment you get some of these, you aspire for some more...and then there is no end. I donot mean that you shouldnot earn money, but you should understand how much money would satisfy your needs. Bill Clinton might be the richest person in the world; he is certainly not the happiest. Our lives are far better than his. - Find your goal, and do best in the job that you have. Understand that what is in your pocket doesnot matter...what is in your brain finally matters. Money and fame donot matter. Knowledge matters.

4. Follow your culture I have seen the tradition that whatever junk is created in US, it rapidly spreads up in the rest of the world, and India is not an exception for this. This cultural change creates a very strong impact on everybody's life. Habits of watching spicy Bollywood or Hollywood movies and listening to pop songs and all such stupid stuff gets very easily cultivated in people of your age...but believe me,
there is nothing great in that. This all just makes you run away from your culture. And there is no wisdom in running away from your culture.

Indian culture, which has great Vedas and stories like Mahabharata and Bhagwatgeeta is really great and even Donald Knuth enjoys reading that. You should understand that fundamental things in Indian culture teach you a lot and you should never forget them. Finally, I would like to conclude by saying that it's your life...donot waste it on stupid things...develop your tests, and start the fight.