Behind Every Successful Business there is a Team

Social media is like a coin. It has two sides, one is good and the other is not so good. Very recently it is observed that a lot of material, status updates, tweets, posters and comments have been shared regarding teams, culture and bosses around the social networking sites. Some of these updates are really motivational in aspects of team building, work culture and professional norms, but others… well, not so good.

The Answer lies within:

Teams are the answers to your success, your business prosperity and the energy to boost your company into future. Teams are the functioning wheels that moves and you move ahead. Without teams, it is impossible to think of a functioning organization.

As we see it, there are two ways human elements are engaged and forms successful teams. One is when they are rewarded and compensated for the work they do on frequent basis, and other is the engagement of teams on different levels of the projects. Often times, the companies tend to forget that “money” is not the only thing for motivation. The talented staff members, who knows how to pull a job, does not care about the rewards, rather the appreciation of their work, the feedback loop and what more you have for them in your basket, it keeps their mind working.

Good teams:

The best of the teams are always collaborative. There is never a “One Man Show”, no dependencies, and no bureaucratic policies which can actually delay the work, and puts more pressure on resources. We have a pool of resources, with different sets of talents and skills. Some of these skills are highly technical, like knowledge regarding tools and languages, how to develop APIs for cloud applications, how to use test automation tools and IDEs. Whereas the others are not so technical, like documentation, user experience specialists, black box testers, and business analysts with domain expertise.

We have multiple projects running at one time, and the way things evolve, we allocate time, select resources from this pool. Sometimes, the resources are working on multiple projects within a same timeline. But that would depend on being the specialist on something and being a skill that can work out on multiple projects.

Structured methods of collaboration encourage introspection of behavior and communication. These methods specifically aim to increase the success of teams as they engage in collaborative problem solving. Forms, rubrics, charts and graphs are useful in these situations to objectively document personal traits with the goal of improving performance in current and future projects.

An Evolution not a revolution:

One function working in coherence to another functions, and then the deliverable of these functions is provided to the subsequent areas. The cycle keeps on moving and till a viable product is conceived. Building good teams is not a revolution; it is the evolution which takes time, feedbacks, and commitments.

According to Deming’s “PDCA Cycle”, which is the base of team and functions collaboration in perceive the desired quality of the product, you can see that it is a continuous process. The wheel moves, and within that constant movement, the company improves.

The Relationships:

According to context driven approach to create a viable project environment, the project team, its identification as talents, and it’s relation to its adjunct teams is utmost necessary. For a project manager it is a good practice to identify this right at the beginning of a project, so they would know which pool to access and what resource to get. Following is a simple example how relationship of a tester is measured with developers:

  1. Hubris: Does the development team seem overconfident about any aspect of the product?
  2. Defensiveness: Is there any part of the product the developers seem strangely opposed to having tested?
  3. Rapport: Have you developed a friendly working relationship with the programmers?
  4. Feedback loop: Can you communicate quickly, on demand, with the programmers?
  5. Feedback: What do the developers think of your project strategy?

The Importance:

Similarly, if we talk about total team collaboration in place, then question which first arises in mind, that why we need different mind sets in one place after all? The answer is provided here:

It solves problems – Brain in its singular capacity does not have other brains to bounce off its ideas and then compare these ideas to get the best of them. For this we need multiple number of thinking brains, have them access to resources and let them generate the ideas. This way the collaboration and brainstorms works wonders.

It encourages healthy competition – One individual working with teams, not only encourages others to work like her, but also encourage a competitive environment in a very healthy manner, where the people working together, are achieving a goal, which achieving for themselves also.

Develops good relationships – as we saw above, it is the best way to develop relationships with other counterparts in the project. A team which is working together will develop the instinctive collaboration. It helps in an understanding, which actually avoids conflicts, saves time and resources.

Everyone is unique with unique qualities – no two humans are same; thus, no two team members are same. Thence, they provide overall effort a fueling ingredient of uniqueness to their ideas. This eventually increases the team collaboration and let the people workout solutions with more confidence.

Conclusion:

Business builds itself on the idea, that idea needs to be conceived, and that in turn will lead to success. In between this idea and success, there is a gel that bonds everything to its right place. That gel is “Team”. Everyone knows this, even accepts it, but not all practice this in real form.

Individualism is good; it boosts confidence and makes you run wild with ideas. But, if your idea does not bounce back to you and a third eye does not criticize you to induce more creativity in what you do, then you are missing a world.

Teams, make this happen!

The Change Factor

Changes are eventual, they happen and they will happen, because the world does not stop, time does not halt, and people don’t stop to grow. It is inevitable – so people who resist change often find themselves in self created dilemmas – same goes for Software Products.

Websites Are Projections!

People as customers see this in a constant form of projections. If we tend to deliver the same message without changing, with same tone, with same frequency, then the human brain will simply miss it. You and the content you represent will become invisible to the general public in no time. Have you ever notice the effect of aroma while first entering a baker’s shop, and then it fades away as you spend some time there? Same effect is created with software. If you are selling or representing something on a website or any other forms of remote projections, you venture yourself with a changing tone; not contrasting, but changing.

On the other hand, as the makers of the solutions, we see this as a challenge as well. You see, the transformations to the solution are a constant phenomenon that ensues, and it is a never ending cycle. The best way to keep this cycle on the move is to have both internal and external stake holders on the same page.

The Fatality

The most common fatalities to the products are the update failures. These are the most frequent complaints generating from customers around the globe, which usually is something like; “Whenever a new component is added, or, an older one is modified, the subsequent release fails or crashes at some point!”

The cause, as stated by the customers is remains same, and for the software company the word “regression” becomes a horror story.

It is not a rocket science; rather on the contrary, it is very simple to track down these issues. Companies, teams and motivated managers often miss this with overconfidence. They tend to think that timely deliveries to the client will make sure that the client is happy, is actually not the case. Clients necessitate their business running, and they will compromise for the time against their reputation. They have never done something to put their line of bucks on the brink of collapse. We need to make sure that this remains intact.

Regression

The approach to a successful regression is to make ourselves clear about a couple of things. First, that if we are going to test a website or a system, we can never completely test it. It is always based on samples. Question is which samples? The best answer resides on one word: Risk Areas. We can have 100’s of test for the system to ensure that it is functioning right, but we can only identify a few test which actually addresses the “risk” areas, and can tumble the client. It is a tip of the iceberg that we address each time, the changes which happens, needs to verify against these areas.

Technique and Skills

Similarly, the second part is the human resource we have to test your systems. We cater for two things, the technique, and the Skills. For the technique part, we need not to worry, as we have all the state of the art tools, and technology with us, and the people we acquire knows how to handle these tools, under their specific needs.

The Skill part however is the tricky area. The unskilled resource will only look for the surface area problems, they cannot dive deep into the system domain, and would necessitate a line of reference to get things stated and even if the requirements are totally explicit, the results they will provide will always skimmed off the low rate functional problems.

On the other hand the skilled resources will look for the risk areas, the functional aspects with domain focus, and also will ensure the quality under the criteria of testability, reliability and portability of the system. They will with have a conjecture for their findings, while they perform research on the issues. Will collaborate with other resources and draw the maps of product elements for the right coverage of the application.

Last Words

The era we currently live in will pass momentarily; we need to adapt the changes that are occurring in the development and quality domains. Systems and websites are now more responsive, intelligent and human oriented in their design. They talk, and we respond. We cannot ensure the change cycles, quality and customer satisfactions with traditional approaches. We need to make sure whatever we do to establish quality in the deliverables, the sapience and intuition part is always implemented.

Because the future is already here!

What We are Based on?

Our products and services are all related to the concept of changes and evolution. We build solution and websites which represent who you are, what you do and what you want to sell. We project you professionally, socially and in turn the effect these website create is both lucrative in business and domain perspectives.

Starting a Business but Why?

When a child begins learning, it starts questioning everything. Their problem starts with what? As a business owner, we should follow the same habit. We already know the basics so start with WHY question.

“No one is dumb who is curious. The people who don’t ask questions remain clueless throughout their lives.” – Neil deGrasse Tyson

As a business owner, the word “WHY “should be your best friend.

Why are you doing it?

It’s not what you do it’s why you do it. Planning to invent the wheel again!!! Think again. WHY you are investing energy in things that already developed. The problem isn’t that you are inventing the wheel. The problem is WHY you were inventing the wheel when it was invented long ago.

Starting a business is same as inventing wheel until you answer WHY. The unique selling point of your company lays in the response of WHY. It always leads you to think out of the Box & your imagination does the rest. Innovation comes in as a Byproduct of answering the WHY question.

Starting an Ecommerce business just because everyone is doing it, is not a good idea. WHY are you starting a new one?

Let’s talk some possible USPs & Innovation comes in a way of achieving USPs.

WHY to start an Online Business

  • The current sites do not provide “particular product”.

WHY aren’t they selling a current product? There comes the innovation as there could be some limitations to offer the product online, and you need some innovation to provide it online.

  • Current website “Delivery time is very high”.

WHY delivery time is high? There could be many reasons starting with limited resources that you probably won’t have either so innovate to deliver in less time with limited resource.

  • Current website has “Bad Customer support.”

WHY customer support isn’t good? Lack of support knowledge & training can be the substantial reason for inadequate customer support. You have to be innovative as if achieving proper support is easy, Existing players already doing it.

For me, every business idea starts with WHY & often end with WHY because many times I do not have sufficient knowledge to answer or innovate.

As, said earlier it’s not what you do, it’s WHY you do it. People don’t care what & how you are doing it until they know WHY you are doing it. Your answer of WHY should revolve around the value of target audience.

Add WHY in every step of your business plan. It will help you to identify difficulties you face in executing your business idea.

If all these things seem too bookish Just be with me.

Real life examples of WHY.

For one of my client, I analyze many projects on crowd funding websites (The place I learned WHY game) Every successful campaign have one similarity. It emphasizes on WHY.

Coolest Cooler

One of the most funded KickStarter project. There are many reasons for this successful project, but we just stick with our core subject WHY.

Coolers are already available in the market. So WHY Coolest Cooler is so successful? You answer hidden in first few lines of campaign intro.

“Regular coolers are dull, break easily & a hassle to haul around just to carry the ice.”

WHY Rayn invented new Cooler? because old ones are

  • Boring
  • Break Easily
  • Hassle to carry just for Ice

The WHY leads him to innovation:

  • Boring // Bluetooth Speakers
  • Break Easily // Quality
  • Carry only Ice // Led Light, Cooler divider=cutting board, Rechargeable blenders, Led light & much more.

The Dash

The Dash is another successful project in Kickstarter. It’s successful because it takes hassle out of listing music.

WHY Listening music with headphone is hassle? Because

  • Cables,
  • Break due to wires,
  • Carry smartphone along with headphones.

Innovation:

  • Cables // Cordless
  • No cables // less chance to break + in-ear
  • Carry smartphone // Bluetooth + Inbuilt memory & many more features.

OUYA

Creating a gaming console, you probably stupid until you are big enough to compete with Sony. But OUYA did it by answering the series of WHY.

WHY Game developers are moving to mobile games?

  • It’s developer friendly.

WHY we need to save TV gaming? Because

  • we all love it.

They can wait to see slow death of TV gaming, but there love inspire them to connect the dots with answering WHYs

The innovation = Android Gaming TV console.

Anova Precision Cooker

The only WHY I found in this campaign is, Its Cost effective as everything is already in place but didn’t accessible to the majority of people. Product Price range from $600 – $1000 But they innovate to cut the price. Anova Precision Cooker only cost $174.

End Notes

To be successful, you have to start questioning each & everything during your business cycle. Especially questions start with WHY.

The common question that gets asked in business is, ‘why?’ That’s a good question, but an equally valid question is, ‘why not?’ – Jeff Bezos

Your Website is a door!

I remember 16 years ago, we were watching a cricket match on Television. You must have noticed that how different companies sponsoring the match display their advertisements and banners across the boundary, and now even painted on the grass as well. It is a good way to promote your business and hammer your slogans on a large number of live audiences as well. Now, everyone knows how lucrative it is for the companies to market themselves and their brands in sports matches, and it pays off too. Since, that was 1999, and a new kind of internet was coming on board, I saw one company with the tag line, “For more experience please visit www.ThisIsUs.com Yes, they were using a first mover approach in getting an extra chunk of the audience to visit them in cyberspace as well.

The new market:

It opens up a whole new horizon for businesses to project themselves globally while remaining where they are. It also opens up challenges and competition, which would later grow businesses to gargantuan   scale and we also witnessed businesses going down and never coming up again. I remember asking my students a question, which was pretty mind boggling at that time, that; “What would happen when every business you see, also has an extension on the internet, and what would happen to the choice of the customer?”

One of the students responded that it is the same effect as you go to a “Farmer’s Market” and the loudest of the shop owner gets your attention! For that time and context, he was right. Why? Because it was a new kind of commercial domain which was being set up at that time, so whoever was moving first was actually moving ahead.

What is actually happening?

In the years to come, everyone started to come aboard the cyberspace, websites started to turn into shopping places, Amazon was a big name, and things started to get a complex.

A customer on the internet does not have to listen to the voices of the shopkeepers anymore, they are now sensible, more intuitive and a click away from you. Depending on they see you and decide to click, are another thing. Quality started to shift its definition from just being a “fitness to use” of something, to “Value” to some persons who matter at a time”.
The way it works:

Idea:

You visualize an idea of boasting yourself, your business, products, or services on the internet. You think about it, how it will work. You decide if you are going to sell them right there, or have another door opened for your customers and then let them arrive at your doorstep. A lot of contexts applies to this idea. A lot of opportunities, risks and domains are explored. You must have seen a few past 10 years.

Conceiving:

Here you develop that idea into a feasible form, a website, an application or a forum on the internet. There are now several ways to generate traffic on your venture, social media has grown very powerful and there are special human resources who get the job done. Search engine optimization, chat rooms, viral campaigns, paid advertisements and social media pages.

The Niche:

Once the idea is there in its full fledge form, the next is to create a niche in the market. What businesses do to each other in common market place is to create Barriers to entries for other similar businesses, when a new business is launched; it requires challenging these barriers to entries. The force, with which these barriers are pushed in all direction to create a market space, is a work of strategy, planning and market research. Here the business usually create niche for itself. This uniqueness in marketing, product or customer segment creates room.

Retain:

We need to get them back, and we need to let them do it again and again. For this, we need to be aware of who visited our domain, what was their interest, did they post any remarks, and what products they seemed interested in. A lot of analytic tools are now on board, and we love to use them for our and your convenience, and the result? An awesome business domain!

Easier than said than done!

Saying it, that we are living in a global village, which now resides on a cloud is easier to say than done. There is now a whole new ball game of Strategic Management, Marketing, and Customer retention activities. The pressure is now doubled, and the competitors do not work against you, they work with you.

We need to realize this, and we need to act fast. The quality of what we manufacture and put up to our customer now includes that Web portal that we are selling it on. It is the same sense of a physically located shop in a market, where the customer decides to stops and enters, when they have a good feel about its face value, the lightening, and above all your own smiling faces.

Support for Customer is Customer for Support

We have a term that we often use in our tech lives, and that is; “Your application is cool, but it does not talk that much!” People who are in a business of software are aware of the importance of the customers and their opinions in their crafts. They are also very well aware of the fact that the word from the customer can open up new business opportunities but can close them down with double speed.

The Question is

where to tap the right area to get the maximum out of the customer satisfaction?

The answer is its everywhere, because the product, idea, service, and support belong to the customer. We need to make sure that the process we follow in creating an idea to a viable product is actually customer focused and as the time unfolds, remain in customer focus.

Small companies have less pressure in terms of clutter created by the marketing, and thence in return they are also in a safer zone if this noise comes against them. On the other hand the big companies with a large clientele are actually making a huge leap of faith when they are dealing with customers, and without interacting with their customers.

If your product is selling good, does not mean the people like it, it can also mean that they are trying it out for the first time, because of the size of the market you are hitting is usually in billions. Several companies fall for this trap, and they usually go,”Wow! Our website got 10000 hits on the day 1 of its launch!” – And then on the day 2? Yup, it goes down 50%!

Why this does happens?

Simple, we never try to study our customers. We don’t know what makes them happy, excited, eager, inquisitive and curious? We only look what we like, and we build on this ideology accordingly.

A lot of the websites and application that fail is because of the responsiveness they don’t offer. The application does not respond to the customer when it required to. Customers hate that!

If you press a button that says “Okay to Continue” and nothing happens in return, you will be frustrated and then you will move ahead. Suppose it is a kid’s website for their educational purposes, your tolerance level will be somewhat normal, but when it is a something which is projecting you or your image to the world the simplest of error can become landslide failure – #SocialNetworking

What we are establishing here, is that we care about our customers. We know what they want, and we talk to them. We know when we say “Quality Matters”, it is not for us, and it is for our customers. Our solutions speak for themselves. The Customer seeks support all the time. So our presence for them is all the time. We cannot say that we are off on this day, this hour and are unavailable. We cannot!

We all have experienced it; what was the last time you used an ATM? It is also sort of a website isn’t it? Remote access, buttons, feedback and responses, what if, one fine day you are in an emergency and the ATM would not respond! Well you know better than us, that the dissatisfaction it creates is un-imaginable.

When “Healthcare.gov” in USA failed due to response time and load issues, the government has to say sorry to the millions of people that were affected by that failure.

We must understand that providing support means is to be there like a real person with your customer. There is no finger pointing, no blame game and no irresponsive answers. It is simply the presence that matters. Websites are the windows to the world for the businesses, and their failure means closing off that window. Even for a moment it can cause millions of dollars loss – imagine Amazon.com shutting down on Christmas! You cannot!

When your team understands your objectives and what you need to be for your customers, they will do the same for the latter. They will own customer’s pain like their own. But if your actions works against your talks and you want your team to follow your talk, they will follow your actions and eventually your team will collide!

Customer support is a human act, it does not come from learning technologies or tools, it comes from attitude, and psychology

If you can sense what the other human feels, you can make them believe you and listen to you. There is no better customer support executive then the one who puts off the burning fire at a customer’s place only using her cell phone. How do they do it? In so many words: “Attitude”.

Customer support is also how your website and application behaves while functioning, if it is too complicated, does not tell where the customer is in the application, generates confusing results and does not meet the company and social standards, it will fail. It will fail in the same manner as a support executive fails when they do not provide the proper help and assistance.

This function is the key element for a company’s success, without this the system will simply collapse. Otherwise, making it for a billion, selling it one time, and sell it for 1 dollar, can work out – but will flop eventually.

It’s Checking not Testing

There are some topics which you cannot discuss for granted or just start speaking or writing about it. Such topic demands you to leave the shallow area, and dive into the depths. Such discussions seem very simple in form, but in actuality they need more in-depth reviews and analysis.

Once such discussion is about “Testing and Checking” – often time we listen to this analogy, and think what can be so complicated about this?

“The difference between a test and a check closely mirrors the difference between an experiment and a demonstration.” – Michael Bolton

To make things clear, let’s start with the definitions and the difference they carry and comply with each other:

“Testing is the process of evaluating a product by learning about it through experimentation, which includes to some degree questioning, study, modeling, observation and inference.”

Whereas if we talk about Checking, then:

“Checking is the process of making evaluations by applying algorithmic decision rules to specific observations of a product.”

Considering on a defocused state, both checking and testing are activities, and their importance is considered as contextual in nature. Also, we need to understand that both these activities have their own importance as per the rise of the need, but, we also need to understand that these activities are different from each other.

Testing is evaluation; it involves learning of a product’s working and its operations by experimenting with it. Experimentation is practicing, writing down the conclusions, drawing up the matrices and then telling a compelling story for the discovery.

Whereas on the other hand Checking is algorithmic follow through of an already establish confirmatory path. It is as same as ticking off the completed to-do list items, without establishing the outcome of what actually was experienced in reality.

As testers we must be very open minded while selecting a tool for conducting our tests. It is very fascinating to say that “Let’s make tools do that!” but on the other side of the picture, this actually puts a huge challenge for the testers. Why?

The reason is that the tools are not a one model strategy. There are dozens of tools in the market, some are pre-packaged products and some are Open-source. Plus there is the difference in the coverage areas. For example, some of these tools only do testing for GUI related issues, while other are performance testing tools. A few of them however combines the abilities together, but then lacks somewhere and gains somewhere.

This is good for tech junkies, but for a company investing in huge amounts needs to make sure that they select the right tools.

This cause immense pressure on testers and alongside, challenges their ideas. This is why the sensible approach to have separate Testing Teams and Tool-Smiths teams. Usually for the best outcomes, the team structure comprised of “Regression” black box testers and Test Automation experts.

We need to understand the fact that there is a huge difference when a machine does testing via script created in an automated tool, and when a human does his work. The machine embodies the scripts; it is not affected by the environmental changes around it, noise, temperature and working conditions. Whereas the humans on the other hand who are real testers are affected by the stimulus and context, so there are actually three types of combinations that can be created regarding Testing, checking and the involvement of Human being in this whole process:

Human Checking

Is an attempted checking process wherein humans collect the observations and apply the rules without the mediation of tools.

Machine Checking

Is a checking process wherein tools collect the observations and apply the rules without the mediation of humans.

Human/Machine Checking

Is an attempted checking process wherein both humans and tools interact to collect the observations and apply the rules.

We also need to understand that dependency of “tools” is a necessity for skilled tester to enlighten their skills. It provides their craftsmanship an edge that is very creative and brings out extraordinary results. But, on the other hand it also create a certain risk element, and that is, if there is a mistake in conducting and creating automated tests on the wrong design board, with wrong requirement identifications, then the results can be disastrous.

The Value of Quality in Software Quality Assurance

Some questions are too obvious to ask and think about, for example, if someone asks “Do you prefer to have quality in your way of life?” the answer is obviously “Yes!” – But it is not simple as it seems, there is a fire behind that smoke. Here is how quality should matter.

The Definition Side:

So how one does defines quality? Let’s start with the basics first:

  • ISO 9001: “Degree to which a set of inherent characteristics fulfills requirements.” The standard defines requirement as need or expectation.
  • Six Sigma: “Number of defects per million ” …Where, Japanese are now considering this on 10 million opportunities J)
  • Fitness for use, where Fitness is defined by the customer

We have a product, its characteristics, the number of defects it has, and then its usability. For customers and makers of that product this becomes a beacon to follow. But here is my question;

  • What is fit for you is it fit for me as well?
  • What you call a characteristic, I call an error?
  • Would you say that this is fit for you, after 10 years?
  • Does having no defect means the product is still in accordance to quality?

These are indeed very interesting questions, and this gives us to look at the context driven side of the quality. Let’s see how we can further define it.

“If you don’t care about quality, you can meet any other requirement” – Jerry Weinberg

This definition actually puts quality as the foundation of everything that happens while we build software. Requirement specifications are the baseline from where the product or one or more of its component start to take its shape.

Jerry Weinberg puts quality in this definition:

“Quality is value to some person”

Now imagine a mobile device in your head all distributed into several components placed neatly on a white sheet of cloth. The screen set, battery, SIM, Memory Card, Hands free, internal circuit, cover, protector, and charger. Ask yourself, what is the use of these pieces for you? Well, if you are a mobile technician you would be delighted to see these, as you can understand what each component does, but if you are a common housewife or a teenage kid, it does not matter to you, in fact, it is boring!

So for a mobile device completely integrated and functioning, the value it gives is something else for someone and when it’s apart, the audience changes.

Same thing happens when we are developing software. As a developer the thinking is all about those DLLs, function calls, logics, loops, conditions, configurations, queries, data handlers, and tools. That is the value to the “developer” and “architect” for that software.

For the user, the game changes, the charisma, the functions, purpose, reliability, security, functionality, and compatibility kicks in.

James Bach add a simple annotation to the definition…

“Quality is value to some person (Who matters)”

What I like, you may not like, what I don’t want, you may want. This simple analogy changed the concept of having standardized quality criteria for anything that is being manufactured or provided to the customers.

This also creates the sense of having the importance of customer delight while using the product. Consider the mobile phone applications being designed only for business people as they use it for their businesses and communication, and now question, would a housewife would feel the same urge to use that application? No she will not!

To make it simple we need to categorize our users into several segments on the basis of their age, sex, religion, demographics, culture, business, work environment, and even education. To determine the right audience for our products we need to use the proper tools and platforms to determine what our users will be like. Google, Facebook, LinkedIn and other such social media has made it easier for us now.

The story does not end here though…

Markus Gartner, while explaining about implications of the above definition in his blog, puts up an interesting addition, the time.

“Quality is value to some person (who matters) at some time!”

Now we know that our customer relies on what we provide to them, we are aware on the contextual importance of their existence, but now, we need to consider them under a time frame, its own contexts, and scenarios, resulting in the interacting behavior to our customer.

For example, an ATM Machine, working fine and works well, performs it built in functions as per the needs of the customer. Even care for the deaf, dumb and blinds. Now put this scenario into the time factor scenario.

You have a medical emergency in the middle of the night, and you rushed to the hospital, on the way you realize that you don’t have any money. So you go to the nearest ATM, and there, you see that it is out of the cash.

In the second scenario, you will reach the ATM; it works fine, puts in your PIN, and the error shown “Link Down”. These anomalies put a system into an unwanted quality perspective. You have never complained about ATMs before, it worked fine, sometimes not, but at a particular time frame, when it does not work – the quality comes crumbling down.

What We Learned?

Well, we cannot standardize or script quality for our users. Because in this murky world nothing is guaranteed about what user can expect from our product as per her needs and context and in a particular time frame.

This actually puts the software development team in a very challenging position. The responsibility umbrella is on all of us and we cannot finger point any of the team or individual for regarding the whole sole responsibility for quality.

As they say; It is a journey

That thing called “The Domain knowledge for testers

Not every time software testers would come up against a system for which they have a good amount of field knowledge regarding its contextual working and core business functions.

Most of the time they (testers) have to learn, adapt and gain the understanding about these systems going beyond the traditional approaches, it is however by the passage of time, that they are able to learn about workings, loopholes and its creative use.

Why Domain knowledge is important?

“Start where you are. Use what you have. Do what you can.” – (Arthur Ashe)

Having the expertise in domain is as same as the difference between a novice driver and an experienced driver. The novice driver does not experiment with speed, shifts and brakes. She is too focused on the control of the car with an element of fear of the road. Whereas on the other hand, the experienced driver has developed a road sense, and is aware of the fear. She uses variations in speed, knows how the brake works in neck to neck traffic and how to reach a destination in a fuel economic way.

Same difference occurs when a tester is faced first time with a system, and then using the right heuristics develops the expertise to use that system.

On a side note, we need to find the “potentially important” bugs in a finite time frame and all of them. If we don’t know about the system and its working, we can never find them.

This is one such short yet true story …

One fine day I was called in by the project manager of our website development team, who was interested in giving me a testing assignment regarding their real time event tracking and management site. Besides other features regarding hangouts, events and happenings, this site was location based and specifically designed for England.

What was that website?

It was fundamentally a search engine, which searches for the events and happenings across England and lists the one that is nearest to your location. How does it track your location? Well, a user provide where she is in the search parameters.

Where does the event data come from? Well, it was entered on real time basis via another location, and these systems, the front end website and the backend data handler were integrated via admin module, very interesting work for that time in space.

What was I supposed to do?

My job was to conduct black box testing and report bugs along the way. It was then I heard the sweet word of “Domain”. He asked me; do you have the knowledge of this domain?”

I said “What exactly do you mean?”

He replied “Well there are two here; One, the knowledge regarding how “Search Engines” works, and two, “Whatever happens in England, does not necessarily be happening in other cities around the world!”

How do I go about it?

There were 2 visible paths I could take, one was the “General knowledge” of a tester feeding in with experience and common sense; which is by the way, very important for a tester

For this general knowledge part, it was somewhat under the hat, as I knew how search engines work and can play around and generate wild ideas about keyword and search strings. On the other hand the knowledge about “England” was the tricky part.

The search was bread crumbed in the manner of, Categories, Dates, Location and Event. Once the user provided all 3 or a partial the search results were listed. Further on the user can proceed to bookings to the third party site or tag these results as a wish list.

Then there is the contextual knowledge which feeds in the “Domain”. This is where the real test of the tester comes. Because to gain this knowledge, you need to get out of the comfort zone, use all your abilities and then re-learn everything.

For this tester part, I need to be sure that the search results which were coming in are from the right location, right address and each time the results does not differ from the previous ones. I also needed to inert variations in my usage of the website. Including cross browser testing, missing elements in search results and leaping and creeping the boundaries – especially the date fields.

Okay this was great – but I was not in England, I was in Karachi. As this system was based on location searches and sorting them out accordingly, I have to place myself in England, on a particular address, searching for a particular event, which is also near my location, or for a location, where I would be in the near future, or for someone who has requested me to find that event, for her location, etc. etc to murky world scenarios

The Testing:

How I tracked an address for a location, using the maps? I needed to verify the search results with some solid de-facto data, because with each search I was getting the events, and then their addresses. The list gives the user an option to sort the events, on the basis of “nearest to you”, “Date wise” and “Location Wise” – so date and location was easier, as it was visual, but for nearest, I need to know for sure.

The second thing to learn was about how addresses were formed. For England it is highly organized and coded. For example:

Business Address with Dependent Locality

table

The parameters were allowing me to search on the basis of the event name and date only. Address was fed in from the data entry portal. So as a black box tester, I have to devise a heuristic approach to identify loop holes in the searches.

So it was time to Google England and its maps and then learning how addresses are formed – very interesting indeed!

I pulled the map out, and instead of focusing on London, I moved to the suburbs of London. I picked a viable location, a town, which also reflects the Post Code and Post Town – hence, I searched the event in that town. What we found out later that the system was fetching records on the basis of town name, and code, not on Code and then town name. This was creating confusing results for the searchers. So if we have a near possible likes of two town names in different village areas, we are getting them on the same list, where one of them is no near then anything within 60 km!

End Notes:

Whenever as a tester you encounter a system, and the thoughts started to ring in your mind about “how would you test it”, take a deep breath. It will take time; it will take coordination, research, analysis and then building up a story. The best way to do it is the system which offers you all the information you need. You need to tap the right area to start.

In so many words, the “Domain” knowledge is the key element to achieve completeness in your testing. If you don’t have the proper in depth domain experience, then you need to acquire it, because that is what’s going to make your testing creative. You would know which area to tap and where the bugs can reside.

All about bugs, The bug life cycle

Software development is a very detailed activity. It comprise of several key elements, roles and stages. One stage coming after another, the preceding one providing outputs to the following one and thence converting a viable idea into a viable product.

Forewords:

Everyone works till the end to achieve a common goal and this goal is in form of a product which is based on computer / mobile system and will be used by a customer who is most of the time human. If the user is not human, then this could be another system, a protocol, a device driver, memory manager, or internet service, which would be using this application.

In any case, no matter who is the user of the system, one thing is clear, the user must use the system without any hindrance, expects what is expected from the system, takes benefits from it, use its data and reports for decision making, feel satisfied, happy, excited, informed and energetic.

Line of codes when written are a bunch of syntaxes sewed in together and represents a component in the system. For a developer perspective these are pretty exciting and challenging, but for a user, it does not matter much, unless these line of codes does something other than expected from them. So what the “value” part depends on the formation of these lines of codes. For developer and user the value is different.

The Bugs:

“Many serious bugs go unfixed because the decision-makers don’t understand the bug report they are reading or the bug’s implications.” – BBST (Bug Advocacy)

These hidden mishaps, anomalies and errors either happening due to bad line of codes, application malfunction, Requirement compilation, lack of training, Lack of domain experience, lack of standardization, lack of user design, confusions, etc. etc. All come under the definition of “Bugs”.

To define it more clearly, Cem Kaner expressed this in his BBST course as:

  • Doesn’t match specifications or written requirements
  • Doesn’t match documentation
  • Generates incorrect results
  • Generates confusing results
  • Wastes the time of a user
  • Coding error (doesn’t do what the programmer intended).
  • Doesn’t meet design objectives
  • Any failure (misbehavior)
  • Underlying error that causes a failure
  • Doesn’t meet company standards
  • Doesn’t meet industry standards
  • Anything that, if reported, would lead to a code change
  • Failure to meet reasonable expectations of a user (Myers)
  • Anything that causes an unnecessary or unreasonable reduction of the quality of a software product
  • Would embarrass the company
  • Makes the product less salable
  • Failure to meet reasonable expectations of a stakeholder
  • Interferes with development, testability or revision of the product
  • Interacts badly with other programs and computers

Well, these can cover up much of the questions and answers regarding bugs and what they are, but then we cannot complete this without the inclusion of James Bach’s, which is:

“A Bug is something that bugs somebody!” James Bach

What is bug Advocacy?

“A bug report is justified if it exposes a problem that does in fact reduce value for a stakeholder with influence.” BBST (Bug Advocacy)

For testers, it is very exciting to discover bugs, but then, any user of the application can discover the bugs. So what is the difference?

The difference lies in the depth and projection.

The depth is the approach a tester duels down into an application, using heuristics, applying oracles, research, investigation, and reporting. The projection is where the case is constructed, which aim is not to criticize or finger point anyone’s fault, but to let the management construct an informed decision regarding product quality and stability.

That is why the bug report matters – because that one conjecture is a stepping stone which will decide about your findings. A tester needs to convince a developer / project manager / client / and fellow testers that her findings are something, on which they can spend their time. She also needs to make sure that these findings are for the product improvement and not an act to blame someone.

There are several ways a tester makes their finding worthwhile and quality oriented, such as:

  • Using proper templates for bug reporting
  • Use good English – or whatever the language applies. They do not shortfall in the use of proper grammar, and syntaxes, as otherwise it shows immaturity and non-seriousness
  • One line description which attracts attention, and it is to the point, while also focusing on the problem
  • They summarize the report with detailed “contextual” description of the issues and not the step wise test case. That can be done by the developer as well.
  • They are not shallow, and go in deep to the problem, even identifying what might have gone wrong at the developer’s end. Remember, saving the time of the developer to reach solution is one of our goals.
  • They attach images and screenshots with focused details, labeling and proper naming conventions.
  • They use proper evidence in form of calculations, documents, reports and cases to strengthen their story
  • They create videos for longer version of the cases. So that it saves time from tedious documentation and pin points the error nicely.

Why Testers do it?

Simple, we need to be cost effective, quality oriented and detailed. We need to understand that the real cost of quality resides in re-works, rather than the time spent on development and testing in the first cycle.

If the bugs and their reports are not effective, we will lose our reputation as testers. We as testers are not the decision makers and finding bugs in the application does not make us the enemies of the development team. We need to understand that what we do actually helps management in making informed decisions and minimize the risks in application.

In the end we have a satisfied team mate and the client at the other end of the cycle.