Wednesday, October 21, 2009

Conquering the demon called “Change”

"Only thing constant in this world in Change.",
"Nothing is permanent except change"

Here goes some of the ageless quotes about often dreaded phenomenon called as Change. Time and again- Professionals or Home makers, Kids or Adults, Males or Females have found dealing with any sort of changes in their lives, day-to-day routines a challenge, some times as stiff as a mountain to climb.
While going through an article on Embracing Change , the author gives useful insights into typical types of change. Read this-

The reason we may fear change is between what we might call “familiar” and “unfamiliar” types of change. Familiar change is the type we all can, more-or-less, expect and anticipate: we grow older, we learn new things, we expect to get a flu in winter, our favorite (mostly winning) team goes on a (mostly) losing streak, etc.
It is, however, normal to feel disoriented in the midst of unfamiliar, or unexpected, change and cues. In our rapid-fire, rapidly changing world, our schedules, plans and routines become disrupted in a totally unexpected way. The recent mortgage crisis, the stock market crash, and the global economic turmoil are all unexpected, profound, changes that most people simply did not expect to happen.

This is one unique way of looking at change. Before i read this, Change for me meant something that leads to a messy situation and makes the thinking cluttered. This above provide a different perspective. Not all change is messy after all. It also makes me believe that the age-old wisdom of "solving a big problem by decomposing into smaller manageable parts" still holds good in today's times when (unlike in the past) no two days are same in any sense. It is this wisdom that probably prompted the author to break-up and classify the phenomenon of change, which if considered as a single entity is quite hard to fathom.
When describing with what author believes can be a potential solution of dealing with massive changes in life, the article says-

In the midst of change most of us get off of our center because we are creatures of habit. We normally gravitate to sameness and routine unless we work really hard at doing different things. For example, we take the same route to work, eat in the same restaurants on the same day of the week, eat the same cereal for breakfast every day, wear the same style clothes all the time, watch the same TV shows, etc.
The first step to coping with change is to break some of these simple habits. If we can change in some small ways, we can get accustomed to dealing with change and the bigger, less familiar changes will be easier to deal with.

This is quite an useful step. How often do we as an individual’s often opt to break the routine ? I tried to explore this concept in one of my earlier posts- Wake up, Shake up and then test... . But i didn’t quite cover how breaking the normal routines can help us prepare for bigger changes in life- be it personal or professional. Its quite a fact that most human beings by nature prefer thier lives/events to get predictable as much as possible so that they can avoid being out of their self-inflicted boundaries. Being in a predictable mode has its advantages but in a longer run it really hinder our preparedness for unexpected events in life. I think the key here is to enhance the "Preparedness levels" for a change. The reason most of the change events in our lives drains us mentally is majorly attributed to Preparedness Levels. There are many a times life prepares you to deal with changes and at other times when things tend to get predictable, it is apt push further break normal routines.
Being on this topic, i could relate very well with an beautiful article- Where is the Shark in your cubicle ? . Here is an Excerpt from this article-

Quite often, we underestimate the power of ‘positive pressure’ (some might prefer to call it a negative pressure, though) dismissing it as a constraining force rather than an enabling one. However, there might be situations where such tactics might actually be a good, rather better, way to get things done.
Don’t run away from the shark in your cubicle, and if you have none, start by putting a shark in your cubicle first.

"Shark" in this write-up is a metaphor that is used to equate with day-to-day situations that are unpleasant and make our thinking to stutter. Unless we consciously put Sharks in our work, we wont feel challenged enough to take ourselves to a greater heights. There is a mention of term- "Positive pressure" and the very mention of this term actually changes the perception one has about Pressure. The traditional version of Pressure is that something that causes discomfort and slows us down. Positive pressure indicates pressure helping to gain positive results. So, don’t scare the Sharks away, they might help you achieve greater heights and also help you prepare for the change.

Do you share your experiences and ideas on how you manage change in your lives!

Sunday, October 4, 2009

Using Six thinking Hats for creative writing

I had written about Six Thinking Hats and its association with Software testing a while back. I had been sporadically using this concept in my day-to-day life. In my quest to further explore its usage, i gave a shot to use this amazing concept for creative writing.
In this post, i would further like to share my experiences, successes and failures on the topic. When i ventured into writing one of my recent articles on Enhancing your Learning skills through the Development continuum , it occurred to me that like for any thinking activity- the Six thinking Hats can be applied appropriately in creative writing as well. With this started my journey to explore this aspect further.
While i explain this in the upcoming sections, i would be dissecting my earlier article into pieces and narrate the usage of various hats and the sequence in which i used the thinking hats. Here we go-
[At some places in the upcoming text, i would be quoting (in Italics) the description of hats from Edward de bono's book- Six Thinking hats , the credit for which lies with the great author.

The usage of Hats in creative writing

Blue Hat Thinking
Blue Hat is for thinking about Thinking. The Blue hat is for organization of thinking. This hat lays out what is to be achieved. Going by a wonderful analogy with Computers- Computers follow their programs, which tell them what to do giving instructions. In a similar way, one of the function of blue hat is to design software for thinking about a particular matter.
Creative writing in itself is an engrossing activity involving extensive thinking. Going by the description of the Blue hat, i considered it ideal to commence this article though Blue Hat. Blue hat deals primarily with Organization of thinking. I started the article wearing (not literally!) a Blue thinking hat basically helping me to organize my thinking on the contents and also arrive at the Agenda. The text mentioned in the "Prologue" section is all listed while wearing a Blue thinking hat. This section of article basically covered initial thoughts that setup the tone for the entire article.
To compliment the actual use of Blue hat, this was not the only time i used the Blue hat while writing this article. As Blue hat basically "controls" the thinking, i practically used this hat in the later sections as a check-point.

White Hat Thinking
White hat thinking is a convenient way of asking for the facts and figures to be put forward in a neutral and objective manner.
Since this article primarily revolves around a new concept (new to me atleast!), it was apt to cover the facts that describe the concept of "The Development continuum". Unless i spent the time and energy explaining this concept, the rest of the article would not have made sense. This is where White hat thinking comes in handy as it focuses just on facts and facts only. The sections "What is Development Continuum ?", "What are the Stages involved in Development Continuum ?", "What does the Development Continuum suggests an individual to do if he/she is at "Enthusiastic Beginner", "Disillusioned Learner" or "Capable but Cautious Performer" stage ?" covers the facts describing this concepts. These were written with White hat thinking on.

Red Hat Thinking
Wearing the red hat allows the thinker to say: "This is how i feel about the matter". The red hat legitimizes the emotions and feelings as an important part of thinking.
As an unwritten norm in professional world, it is usually considered not good to express emotions and feelings. But the truth of the matter is that any subject cannot be explored in its entirety without considering an individual's passion, feeling and emotions. Human beings cannot always operate on plain logic while suppressing emotions and feelings, if it were then there would be no difference between Computers and humans. Well, that’s definitely not the case. No matter how much an individual pretend to be logical, there is always a tinge of emotions, feelings in any decision a person takes. Any creative write-up would be incomplete if it does not take into account the passion, emotion, feeling of the author and in my experience, these are usually brought forward in the first impression that an individual gets after going through the new concept. So, the section "My first Impressions" of this article was written wearing the Red hat.

Yellow Hat Thinking
Yellow Hat thinking is positive and constructive and this type of thinking is concerned with positive assessment of the situation. It focuses on benefit and Optimism.
While exploring a new concept, it is quite viable to look at it and find out whether is it solving the problems that it was intended to, how much beneficial is it going to be for an individual. I wrote the following sections of the article wearing the Yellow thinking hat-
"At what stage of learning do the learners tend to give up ?"
"Can an individual use this model for Self assessment ?"

Black Hat Thinking
Black Hat is concerned with caution. This hat helps the learner extend his thinking to look at the possible dangers and risks in the current context.
It would be only foolish to not consider risks and potential disadvantages in the topic under exploration. Its a given fact that some human beings always tend to look at negative aspect of any situation. If risks and dangers are looked at in a reasonable and appropriate manner then it adds value to the entire process. I did look at this aspect while writing my article as represented in the section "Are there any limitations this model has ?"

Green Hat Thinking
Green Hat is for creative thinking. The search for alternatives is an fundamental aspect of Green hat thinking.
Thinking above and beyond the current topic and exploring its possible alternative applications is a desired motive when writing. The write-up can always be based on the facts, figures, related emotions, benefits and risks but it would really be incomplete unless the author thinks to look beyond and presents the readers with alternative approaches. This is what actually tests author's grip on the subject and overall imagination. This is what i covered in the topic- "What are the opportunities available with this model ? "

Some more thoughts:
- One inference that i am realizing that anyone can draw after reading the above text is that anyone would think that even without using the Hats, i would have thought the same. I agree it may be true and also realize that such an inference may be because i have not explicitly mentioned in my write-up above is that the usage of each individual hat calls for a focused thinking i.e. while wearing a White hat, i am thinking only about facts and figure and not about emotion, passion, negativity etc. Uncluttered mind tend to give best results and this is what Six thinking hats help us achieve. Working in a time box and wearing certain hat gives more output and clarity in thoughts and hence in overall writing.
- One more thing is that the sequences of using these hats differ in different contexts.

Overall, working through this article has been an unique experience for me. I would love to hear from you, your thoughts, ideas and experiences.

Saturday, October 3, 2009

Enhancing your Learning skills through the Development continuum

We live in the era of virtual information explosion. There is unimaginable content that is available on any topic just at a stroke of a keyboard or click of a mouse. Individuals working in the Software arena have been rightly referred as Knowledge workers. There are many competencies and skills that help define the success or failure of a Software professional. One of the prime competency for Knowledge worker is one's Learning ability. With the knowledge workers virtually needing to deal with tons of information, assimilate it, sniff it and intelligently absorb or reject the information- One's Learning ability has definitely taken a center stage. Learning "How to "Learn" is going to become a buzzword if it is not already. The entire activity of learning can be easy or difficult depending upon one's talent, flair for understanding new things, technical know how and many more related factors. In my experience, i have felt that there are a lot of challenges associated with learning something new-
- How often have you started learning something new and left without completing it ?
- What are the ways can you enhance your technical know how ?
- Is it right to start learning something and leave mid-way ?
- How often did your mind wander to pick up something else to learn instead of what you are learning currently ?
- Though you have worked to understand the basics and intricate details of the subject yet you are very cautious to stand up to questions ?
- How many people feign something that didn’t know ?
The list can go on further but i better stop and arrive at a point.

Of late, I had been reading a book- "Self Leadership and the One minute manager" by Ken Blanchard, Susan Fowler an Laurence Hawkins. This book introduces several interesting concepts about Self leadership and one of the part that i found very relevant is "The Development continuum". I will spend some time in the next section to represent how i understood the Development continuum and how it can be beneficial to deal with the multiple challenges associated with Learning or mastering something new.

What is Development Continuum ?
Simply put, the Development Continuum defines a staged approach to learn or master something. This continuum defines four phases that are involved when an individual takes up learning something new till he/she becomes a master.

What are the Stages involved in Development Continuum ?
I have listed the entire phases in the Development Continuum in the URL below-
The Development Continuum

Please note that this is my representation of the Development continuum as i understood when i learned from the above mentioned book. Just a note that all the credit of coming up with this fabulous approach rests with author(s) of the book "Self Leadership and the One minute manager".

To Summarize, the Development continuum defines 4 different stages of learning in correlation with 2 important aspects-
"Competence"- Competence can be equated with possession of required skill.
"Commitment"- Commitment is ability of an individual to give best effort towards the goal in question.
- When an individual intends to learn something new, he/starts as "Enthusiastic Beginner" that is when the Competence is Low, Commitment is High.
- The next stage in learning is- "Disillusioned Learner" that is when Competence is Low and Commitment is Low. Commitment becomes Low primarily because the learner comes across unforeseen problems in quest for learning something new and doesn’t get answers.
- This stage is followed by "Capable but Cautious Performer" that is when Competence is Fairly High and Commitment is variable.
- The Last and Final stage is "High Achiever" stage which is characterized by High Competence and High Commitment. This is a stage where the learner reaches a level of expertise.
After going through the stages, the next question that comes to mind is-

What does the Development Continuum suggests an individual to do if he/she is at "Enthusiastic Beginner", "Disillusioned Learner" or "Capable but Cautious Performer" stage ?
Each of the earlier phases of Learning is characterized by either Low Competence or Low Commitment. The Development Continuum says "When your Competence is Low, you need DIRECTION; When your Commitment is low, you need SUPPORT."
If your Competence is low, someone can help you provide Direction by Setting a goal, provide deadlines, help you with Technical concepts, track your progress and provide feedback etc.
If your Commitment is low, someone can help your provide Support by Empathizing with you, Listen to your concerns, Provide encouragement, Share their experiences, help you focus on task etc.

My First Impressions:
I believe the above sections would have set the right context of what this model is all about. After learning through this, i was definitely excited to know that a model of this sort is exciting. This model not only helps to understand where we are at while learning anything but also provides an yard stick to measure the entire learning activity. At any given instance, one can know which stage of learning an individual is in and what needs to be done to move to this next level. Coming back to some of the questions that i touched upon during the Introduction section-

At what stage of learning do the learners tend to give up ?
In my experience, the learners generally tend to give up during the stage of "Disillusioned learner". It is at this stage, with Competence and Commitment being low, the Confidence of an individual also takes a beating. People tend to give up at this stage unless they are provided with the right kind of Direction and Support. In this situation, an individual needs to take a call if it is actually worthwhile spending his/her time in the activity. I know in many work related situations, we do not have a choice but in those situations also a discussion is warranted with higher-ups. To me, a situation where an individual slogs meaninglessly on an activity which he/she is not naturally inclined or talented to do results in lot of unproductive situations.
It is in the situations like these; this model can help and proactively find alternatives. So, giving up Learning something new is not always bad.

Can an individual use this model for Self assessment ?
Definitely Yes. If applied honestly, this model can help in some extent to eliminate Blind spots. Blind spots are the unproductive behavior patterns that an individual might have in his/her personality but for some reason, he/she refuses to acknowledge. This model can help provide an fairly reasonable assessment of learning abilities and even help strike a meaningful discussion with superiors.

What are the other Advantages of using this model ?
In my experience in using this model so far, the greatest benefit i have noticed is knowing when to ask for help. Learning is becoming an increasing complex activity and more often than we believe, we require help and assistance of people who has already gone through the similar knowledge enhancing activity. More often it is the case of Individual's ego coming in between asking someone for help for something even though it means delay. People sometimes refrain from asking for help not realizing the consequences it may have on project. This model enables the self leadership in a way that it enables the Individual's thinking to ask for necessary Direction and Support from others and also helping an individual decide what Leadership style is apt for leading self in a given situation.

Are there any limitations this model has ?
Based on my limited experience, i am not sure if this model for Learning is applicable to diverse situations. I am really keen to apply this on situations which require quick learning i.e. when the deliverables are short termed and the learner is expected to perform/give deliverables in a short span. In this situation, the learner will need to be self reliant. It would be interesting to see how Direction and Support can be leveraged in this situation.

What are the opportunities available with this model ?
In principle, this is a Self leadership model which can be applied aptly in many situations other than learning. One of the key areas (other than learning) where this model can be applied is assessing the gaps between Individual's current and future role in the organization. The development areas can be identified in the stages described by this model and with necessary direction and support, the skills gaps can be reduced. The greatest benefit of course, is knowing the status quo and gaining the understanding of what needs to be done to move to next stage.

These were some of my thoughts on learning about this unique model of staged learning. Please do share your thoughts and also experiences related to any learning strategies you have adopted to master something new.

Friday, October 2, 2009

Uncovering myths about Globalization testing- Context driven planning

Myth 18: There is one standard way of Test Planning the Globalization testing, which is applicable to all the contexts.

I have been looking at the alternate approaches on how different Software Organizations are planning for Globalization testing. Its quite an intriguing topic because the way different Software product organizations go for strategizing Globalization testing is quite unique and yet yield successful results within their own sphere of influence. In the quest to gain knowledge in this area, i came across an interesting presentation at the below URL.

I had an interesting conversation with the Author of this PPT- Mr. Tim Callanan and below is the excerpt of the conversation i had with him-
[Please ensure to go through the above PPT to appreciate the questions and responses below]

A question regarding Test case prioritization and Test Prioritization-
1. The High Risk=1 category shows the Risk as "New Product Feature" and this feature is also on High Importance category (=1). Suppose the Core team has defined 1000 test cases to test this new feature-

a. Will Globalization (G11N) team pick up all 1000 test cases in its execution ?
At the start of a project, we will define a number of core modules that we must test. These core modules again will be based on importance. So, for
example, Product A, would have Feature A and Feature B as critical functions, this will be reflected in the importance value that will be associated with this function. Then say if 1000 test cases was associated with this function, G11N team will quickly review all 1000 test cases and will then sample some of those test cases from an G11N view point to ensure that the most critical of these, based on importance and risk to determine priority will be covered.

b. If at all G11N team decides to not use all 1000 test cases (as execution would be costly), what factors would be considered to cut down on number of test cases here ?
Again, this will be based upon importance and risk using historical bug analysis, newly written areas of code, potential customer impact etc. We reviewed all core test cases for all products and found a lot of them did not directly effect G11N, the reason being that core testing involves a lot of performance, compatibility, hardware etc. testing that may not effect the Globalized product.

c. What kind of test cases other than these 1000 or subset of 1000 (depends on approach a. or b. above) would be created from G11N perspective to test the particular feature ?
The main areas we would need to look at would be tests that would effect G11N but would not be covered by core. This would involve particular 3rd party applications that would only be available in the regions e.g. Japan use a lot of e-mail clients that are just not sold outside Japan, compatibility with these 3rd party apps would be critical for L10N. Also some type of I18N testing i.e scanning a DBSC or extended character directory for example or compatibility with a particular piece of hardware that is only sold in the regions. Also the insertion of non EN characters and lots of UI issues such as char. corruption, clipped strings, etc.

The approach defined in your presentation seems to be very effective. What kind of deliverables are expected of Core development team to ensure that Risk based L10N testing works ?
The most important deliverables is that core team adhere to what was agreed at the milestones of the Software Development Lifecycle. By including G11N criteria at each stage of SDLC and ensuring that the Core team deliver these will ensure that nothing is overlooked that could potentially make any piece of software 'unlocalisable' or that would resulting major L10N or I18N defects being found at a very late stage in a process that would cause delay in the I18N releases.

Deliverables like-
The code base is same for all Single byte languages.
The code base is same for all double byte languages.
Yea, there must be only one code based for all language versions. So here I18N considerations are critical. For this reason i18N testing is included as a critical functional of either the core or L10N teams (depending on what can be agreed between the two groups) to be execute as early as possible in SDLC. I have seen in the past, in other companies, how the code base was split and a separate code based used to address i18N defects that was found late in the project to ensure that the En-US version could ship on time. It turned out to be a real nightmare trying to maintain to separate code bases and merge code later in the project. This is definitely something to be avoided if at all possible.
The key I think to ensure a good Localised and Internationally enabled product is to ensure that there is 'Functionality parity'; between software products running on EN OS and all other Localised OSs. In other words the EN product on En-US OS becomes your base line and all Languages version of software running on any non-En-OS will functional in exactly the same way as the English product. If we don't have this we have big problems.

Its a well known fact that most of the tests that Globalization team does are derived from English test cases. Another fact is that it is not efficient to run all test cases on all the languages.
Is there a standard that you know or a norm that you follow in testing that defines-
- How much %age of English test cases should be run on the localized languages ?
To answer your question, we usual base this upon risk and importance, this was the focus of the LRC paper that I wrote a couple of years back It is hard to sat exactly the percentage of test cases we would cover as this would be based upon product maturity, feature set, degree of internationalization testing already conducted, the level of pseudo translation testing already undertaken etc. etc.
Based on projects that we have done in the past, L10N would involve testing roughly 30% of the cases that are conducted by the core team but this is a very general estimate and we would use the risk based testing method to ensure that all necessary tests are carried out. If this comes out at 30% then that would be our coverage but it will depend on the risk that is assessed.