SmartQA Community

#60

SmartQA Digest

Suddenly the entire world is talking of testing, well it is in the context of Covid19. As the world chugs along trying to contain the pandemic, I was inspired to draw parallels from how the world is handling this, to large scale software development. The article “COVID19 and Clean Code Part 2 : Process & Criteria” focuses on process flow and criteria to delivering clean code for large scale systems.
 
An earlier article COVID19 and Clean Code Part 1: Techniques also inspired by Covid19  looks at three key actions in terms of Prevention, Detection, Containment to contain the pandemic and relates this to ‘what-t0-do’ to deliver clean code.
 
In this week’s smartbits, Anuj Magazine outlines two interesting aspects to career growth –  “non-linearity” and “uni-dimensionality”. He says career paths up to the top of organisation rarely tend to be linear, they always zigzag. Uni- dimensionality, about being a specialist, about having deep knowledge, is key to growth, he says.  He concludes with “The QA profession has been under pressure from external forces, as decision makers in organization want to see more value. It comes to more of an economics decision, that we always called as cost of quality, we never use the term profit of quality. We need people who can represent QA in a boardroom where value can be showcased,  and that is lacking at the moment.” Watch this very interesting video “On Career Growth“. 
 
All this and more at smartqa.community. Browse for crisp articles and brilliant videos on delivering how-to deliver clean code smartly.  Do forward this to anyone who you think is passionate about clean code.

beEnriched

expandMind

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#59

SmartQA Digest

Smartness is a brilliant combination of knowledge and skill. Skill is acquired by intense practice. Intense practice happens when you have good habits. In this article I look at SEVEN habits that are key to SmartQA. These are SEE | ASK | SHOW | CHEW| SPIT| FEEL | DO. An easy to read visual article “7 Habits to Smart QA“.
 
“Tools, methods & processes are 4th/5th order extensions. People get it totally wrong, ignore the holistic part of mindset & culture, jump onto tools & methods bandwagon, because that’s the easiest thing to sell.” says Tathagat Varma in this week’s smartbits video What is Agile?.
 

Hope you like the poster “Good habits are the foundation for high performance“.

beEnriched

7 Habits to SmartQA

Smartness is a brilliant combination of knowledge and skill is using this.
Skill is acquired by intense practice. Intense practice happens when it becomes a habit. In this article I look at SEVEN habits that are key to SmartQA.

Read More »

expandMind

The power of checklist

Recently I read the book “The Checklist Manifesto” by Atul Gawande.  “An essential primer on complexity in medicine” is what New York Times states about

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

7 Habits to SmartQA

T Ashok @ash_thiru on Twitter

Summary
Smartness is a brilliant combination of knowledge and skill. Skill is acquired by intense practice. Intense practice happens when you have good habits. In this article I look at SEVEN habits that are key to SmartQA.


Habit #1
Visualise well, see the big picture of the system.
Who uses, where, when, using what interface. See the big picture of how it is structured/architected, visualise the flow of control and data and the technologies used(aka tech stack). Appreciate the environments it should run on the dependencies of external systems and changes/modifications done.

Habit #2
Question well. Question to know. Question to know what you do not know. 
Ask about users and their expectations ask about the how it is constructed, ask about conditions a behaviour should satisfy.
Ask, ask… The limit to questioning is unbounded. Note you may not get all the answers, the key is to question.

Habit #3
Prove with facts. 
Show proof of adequacy of tests, hypothesise potential issues and prove that they may be detected.
Understand changes done and prove why an entity(ies) need to be regressed, after all you do not want to more that needed.

Habit #4
Iterate continuously. 
SmartQA is about experimenting, exploration.
It is about iterating with minor changes to understand better, to observe better.
Chew well to digest.

Habit #5
Unlearn. 
Revise what you know.
 Understanding is not about knowing more, it is also discarding what you know. 
Chew to digest and spit out the rest.

Habit #6
Empathise.
Put yourself in others’ shoes and feel them.
Get inside them to understand what they expect, what they will dislike, their constraints, what value they expect of the system. SmartQA is not testing the system technically, it is about delivering value.

Habit #7
Simplify the problem solving.
End users use systems to solve their problems. Great software solve them well.
Good testing is about ensuring systems do just enough i.e. simply.


#58 – “Build in quality”

SmartQA Digest

What does it take to Build In Quality? –  A set of brilliant ideas curated from four articles, a gist of which is highlighted here.
 

Building Quality In – “When looking at quality from a testing perspective, I would agree that it is not possible to build software quality in. To build quality in you need to look at the bigger picture. There are many ways to improve quality. It all depends on the problem. Maybe, you can automate something that previously had to be done by a human being. Maybe, you need training to better use the tools you have. Maybe you need to find a better tool to do the job. Or maybe, you need a checklist to remind you of what you need to look at. The possibilities are endless.

Reactive vs Proactive Quality Management – “To understand how to build quality into our products from the very beginning, we need to understand why this is not happening naturally. The most common way of preventing defects from reaching customers comes down to introducing a great number of inspections and countless KPI or metrics into the process. The problem with this approach is that it is reactive. And wasteful.

Shifting into proactive quality management – Lean management views the issue of quality and defects via the lens of value and continuous improvement

Scalable Definition of Done – “Definition of done is an important way of ensuring increment of value can be considered complete. The continuous development of incremental system functionality requires a scaled definition of done to ensure the right work is done at the right time, some early and some only for release.In an era where we are obsessed with productivity, it is not about doing more, of being busy that is deemed as high productivity. In fact it is the converse, of being smart, of doing less and accomplishing more.  Software tools help in increasing productivity by allowing us to do faster, better and cheaper.

 
Read the full article What does it take to Build In Quality? Complementing this is a lovely 4-minute smartbits video from Girish Elchuri  on “Build in Quality“.

beEnriched

expandMind

Posters high performance QA

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#57

SmartQA Digest

In an era where we are obsessed with productivity, it is not about doing more, of being busy that is deemed as high productivity. In fact it is the converse, of being smart, of doing less and accomplishing more.  Software tools help in increasing productivity by allowing us to do faster, better and cheaper. 

But the most powerful tool “the human intellect” can help us do lesser, coupled with tools of speed, productivity scales geometrically.In these times of AI, it is necessary to exploit HI (Human Intelligence) to do stuff beyond the intelligent machines and deliver higher value. The article “39 tips to being productive” in allot this,

In this week’s smartbits Zulfikar says as why understand deployment architecture is important to testing the whole system in the video “System deployment architecture and testing“.

beEnriched

expandMind

Featured image for article "Sketchnote"

Sketchnote

Sketchnotes are purposeful doodling while listening to something interesting. Sketchnotes don’t require high drawing skills, but do require a skill to visually synthesize and summarize via shapes, connectors, and text. Sketchnotes are as much a method of note taking as they are a form of creative expression.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

#56 – COVID19 & Clean Code Part 2

SmartQA Digest

As the world chugs along containing the pandemic, I was inspired to draw parallels from how the world is handling this to large scale software development. The article “COVID19 and Clean Code Part 2 : Process & Criteria” focuses on process flow and criteria to delivering clean code for large scale systems.
 
In this week’s smartbits Yuvaraj Thanikachalam crisps outlines  “What is Blockchain?“, check it out.

beEnriched

expandMind

Necessary but not sufficient book

Necessary but not Sufficient

I have been a great fan of Dr Goldratt having read all this books, my favourite being his first book “The Goal”. This book “Necessary but not Sufficient” is written as a “business novel” and shows the fictional application of the Theory of Constraints to Enterprise resource planning (ERP) and operations software and organizations using that software.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

COVID19 and Clean Code Part 2 : Process & Criteria

T Ashok (ash_thiru on Twitter)

Summary

Inspired by how the world is handling Covid19, this article as a SlideShare lists actions taken and criteria met to contain the pandemic and correlate this to how we can deliver clean code for large scale software systems. This article focuses on the process flow and criteria for delivering clean code. 


Check out the previous article COVID19 and Clean Code Part 1: Techniques,
that outlines techniques to deliver clean code, inspired by Covid19.


#55 – COVID19 & Clean code

SmartQA Digest

Corona virus aka COVID19 is a global talking point now. What is being done to contain the COVID19? THREE actions in terms of Prevention, Detection, Containment being aggressively pursued keeping in mind that the three targets of young children, old people and sick persons are the most vulnerable as of now. In this week’s article “What can we learn from COVID19 to write clean clean code” we take a look at the actions being taken to contain the pandemic and relate to what to do deliver clean code.
 
This week’s SmartBites video is a lovely video on “Delivering Clean Code #1” from Raja Nagendra Kumar. This week’s smartbits is on “How to reduce waste(bugs)” by Tathagat Varma. 
 
“Building new hospitals/ shelters alone is not adequate, it needs to be complemented by community strategies, such as limiting group activities, and personal hygiene practices” says Winnie Yip, Harvard University. In the same vein, testing alone is not enough, clean code practices need to be installed for SmartQA is what this week’s poster says!

beEnriched

expandMind

Black box thinking

Learning from failures .The inside story of how success really happens and how we cannot grow unless we learn from our mistakes.

Read More »

SmartBites

||VIEWS FROM INDUSTRY LEADERS||

smartbits

||NUGGETS OF LEARNING||

How to reduce waste(bugs)?

(In this SmartBits, Tathagat Varma outlines How to reduce waste(bugs)?“. The video is at the end of this blog)

It
is a holy grail of software development. We have seen from CMM days that defect
prevention has been the holy grail. We fail to recognise that a software in
itself is not isolated and independent. The context in which it is operating is
changing all the time. Be it evolving systems, hardware, software, network or
the evolving user behavior.

Ten
years back when iPhone was launched, people found pinch and zoom feature very
novel to use. Today it is a standard. The context in which people are changing
is changing all the time. Definitely that makes sense. It is a good old saying
a stitch in time saves nine and we have seen during the waterfall days how the
cost of defect amplifies if not prevented. Today, even if we say we are agile,
if we were to fix a defect in the production, it still costs  a lot. Definitely prevention will have its
own role to play.

We
are doing a lot of software reuse, whether it is third party or open source. We
don’t always have control over a lot of components which we use. We get a
component from somewhere and just use that. Do we really have insight into what
went into when it was being designed? Do we have control over what kind of
defect prevention steps were taken into that? This may or may not be known. We
will still need some way of qualifying the components and putting them together
and the speed at which we are aiming to really push our systems into
production, it will require a lot of us to reuse.

In
some sense software construction is being reduced to plumbing the whole thing.
It is like the job of an architect when constructing a hundred storey building.
We don’t make brick or steel pipes anymore. These just get sourced and are put
together and then a system gets created in which we are able to perform
incoming check criteria whether this is of the acceptable quality to us. Here
some level of a component testing is done to see whether they meet our
requirements.

Secondly,
we put them together and see whether they really don’t burn each other
out.  If we put this into the context
that we have to release this into production hundred times a day, it’s kind of
inevitable that we will end up doing a lot of automated testing. At some point
we have to understand that if we are blindly relying on automated testing to
solve or uncover every problem, that might be a little dangerous statement to
make. We should use it really to make sure that whatever was the behaviour in
the last build remains unchanged and unbroken and that becomes a very good
verification. If new features/behaviour have been introduced, delegating
that  to automated testing at the first
instance might need a lot of subjectivity. We need to be a little careful.
There is no definite yes and no answer but “a balance” probably is the best
answer.

TEN suggestions for SmartQA

T Ashok @ash_thiru  on Twitter

Summary
SmartQA is a beautiful combination of thinking styles, a mindset of brilliance and minimalism,  tech prowess, heightened clarity and  great design and meaningful pauses, outlined as ten suggestions in this article.


#1 Embrace multiple thinking styles
Inculcate the deductive ability of a mathematician, creativity of an artist, mind of an engineer, value perception of a businessman, technical savviness, empathy, doggedness and nimbleness.


#2 Have a mindset of brilliant engineering
Step into end user’s shoes, architect/design robustly, inject code to aid testability, strive to test minimally, do test related tasks lightweight.


#3 Analyse well, exploit tools for doing
Much like the skill of a doctor to diagnose with exploiting the machines in the process. “Doing SmartQA”s a brilliant combination of “human powered and machine assisted” . The WHAT to-do is human while HOW-to-do is powered by machine/tools.


#4 Do minimally
Strive to prevent issues, embed testability, review code carefully, use smart checklists, write minimally, regress intelligently.


#5 See better, cover more, test less
Continuously see and assess product from multiple views – USERS, ATTRIBUTES, ENVIRONMENT, CODE, ENTITIES


#6 Pause to speed up
Periodically pause and analyse to be sure that you are staying on the right track, reflect on outcomes to ensure you are doing it right and efficiently.


#7 View system from multiple angles
View the system from internal, external, regulatory/compliance, operations, maintenance and release like code structure, architecture, technology, terms of behaviour, end users, environment, usage, standards.


#8 Be sensitive and aware
Be sensitive and aware to issues you encounter and potential causes of issues, after all issues creep in due to untold expectation, accidental omission, quiet assumptions, incorrect implementation,inappropriate modifications,interesting side effects ,deliberate abuse , and innovative usage.
Sharpen your senses  to smell better!


#9  Design for robustness 
Don’t just test, design system robustly. Codein firewallsto be disaffected by inputs, configuration/settings, resources or dependent code.


#10 Design for testability
Hook in code to be able to inject inputs to stimulate, check status, create traces/logs  to debug/check-for-correctness, even embed ‘self-test code’.

You may want to read a detailed version of these in these two articles FIVE thoughts on ‘Doing SmartQA’and FIVE *MORE* thoughts on ‘Doing SmartQA’.