How do I grow in my QA career?

T Ashok, @ash_thiru

Summary:
What is growth? Is it money, position, power or the confidence to get anything done? Growth is not just knowing more, it is about deep understanding aided by reflection that allows us to assimilate. Growth is not merely external, it is building inner strength, to influence positively.


In conversations with test professionals I come across questions that relate to career growth – “How do I grow in testing? What should I do to grow? What areas in testing should I pursue to grow quickly? …”. These are interesting conversations as there are no specific answers.

Let us dig a little deeper to understand what career growth may mean. Is growth about earning more money? About better designation? Or more ‘power’ in terms of larger project/team size…? I bet your answer will be “All of these”. Hmmm, these are outcomes of growth, but the question still remains – “What is growth?”. Is it deeper knowledge? Or skills/abilities? Or is it the confidence to get anything done?

I would like to believe that the last one is most appropriate. It is about having the confidence of getting anything done. If you can handle stuff that is more fuzzy, difficult, constrained, large, with huge expectations, then you grow faster and higher.

It is not just doing work, it is about getting work done. It is about being a leader. Take a minute and reflect. A young baby needs support to get things done, as he grows, he manages to be self-sufficient. As he becomes a young adult, he is able to manage others and later as an adult when he establishes his family, he leads, not just manage.

As you grow this is what happens : Managing yourself –> Managing others(or things) –> Leading (others/things). The ability to “do”, “manage doers” to “leading doers” is what defines growth. Initially it is about managing, later evolving into leadership.

Leadership is about influencing others. It is about believing in yourself and not really care about what others think. A far cry from being dependent on what others think about you to figure out if you are good. It is about having belief and confidence in yourself. It is not about ‘toeing’ the line, it is about leading. It is not just agreeing to other’s view, it is about having healthy arguments to put forth your views/thoughts.

Bodily growth cannot happen when you just eat more, it happens only when the food is digested and assimilated. Likewise, it is not about just knowing more, it is about deep understanding aided by reflection that allows us to assimilate. This results in more than just knowing, it is about forming heuristics as when to/not-to apply, akin to absorbing and purging, resulting in one to becoming confident in the application of knowledge.

Growth is evolution and evolution is “Add/Modify/Delete”. Visible external growth is “Add”, the accumulation of mere knowledge. Real ‘internal’ growth is “Modify/Delete”, the assimilation that changes the internals, and purgation, the “Delete” that discards old views/ideas, strengthening you from inside. Growth is not merely external, it is building inner strength.

With inner strength comes confidence and the power to influence. To influence the project team we work with. To influence the product we are building. To influence the company where we work. To influence the customer who uses our product. To influence the test & software engineering community.

The expanding spheres of influence :
Individual “I” –> Project team “US” –> Product “OURS” –> Company “US & OURS” –> Customer “THEM” –> Community “WE”.

Now you do not care about what others think. You have grown. Stuff happens. You do not ‘just do actions and get things done’. You deliver ‘business value’. You feel good. And possibly get noticed. Anyways you enjoy what you have done. And the wonderful outcomes of growth happen.


About SmartQA The theme of SmartQA is to explore various dimensions of smartness to leapfrog into the new age of software development, to accomplish more with less by exploiting our intellect along with technology.  Towards this, we will strive to showcase interesting thoughts, expert industry views through high-quality content as articles, posters, videos, surveys outlined as a SmartQA Digest weekly emailer. SmartBites is soundbites from smart people”. Ideas, thoughts and views to inspire you to think differently.

Signup to receive SmartQA digest that has something interesting weekly to becoming smarter in QA and delivering great products.

The changing face of software development

by T Ashok @ash_thiru

Summary:
The way we develop software now has changed,  It is about integrating code now.  A framework based approach is preferred. The way we deliver has also changed, via the cloud. We have come into the industrial age of software.


The way we develop software now has changed. No more building code from scratch. It is about integrating code now. Leveraging code by using multiple frameworks, services, components. And integrating with external systems too. Today’s application seems to be a giant web of connected pieces, the glue code playing a major part.

The approach to building systems also has morphed. No more attempting to understanding the complete needs of end users, but start with something and continuously refine.  Incrementally build, collect feedback and refine continually. Just like nature does. Continuously. 

The way we deliver has also changed. No more a fat install, in fact no more installs. Deploy in the cloud, and use wherever, from anywhere. Oh and access points, very many – PCs, mobiles, headless access via APIs.On the language front, it is no more about coding in a language. It is a mix of languages and technologies that make up the today’s system. Mimicking nature ? Of communities with different language folks? 

Oh given that we seem to have enormous resources, we have relaxed our approach to being efficient. A framework based approach is preferred to getting it done rather than writing simple custom code. 

We have come into the industrial age of software. Of building software using assembly line of components, using frameworks and continuously delivering new features rapidly.

So what does this mean to testing ? How does this way the way we evaluate? And do we really need to test that much? Do we need to test differently? Well this is the subject of another article for later!


About SmartQA The theme of SmartQA is to explore various dimensions of smartness to leapfrog into the new age of software development, to accomplish more with less by exploiting our intellect along with technology.  Towards this, we will strive to showcase interesting thoughts, expert industry views through high-quality content as articles, posters, videos, surveys outlined as a SmartQA Digest weekly emailer. SmartBites is soundbites from smart people”. Ideas, thoughts and views to inspire you to think differently.


Surviving the QA disruption- Smart testing is the way

by T Ashok

Summary
The confluence of extreme speed of business, rapid new technology adoption, cloudification & platform-ising of apps, finicky end users has created serious inflexion points, threatening the  QA practice. How do we test smartly to survive & continue to grow? 


Smart testing is about doing less and accomplishing more, and  rapidly with razor sharp focus on business outcomes and end user experience.  It is about doing what it takes to ensure great end user experience all the way, ‘extreme ownership’ as my friend called it!  It is not just in the act of assessment/evaluation, it is across the entire of lifecycle of dev/test of smartly using the process, technology and tools.Technology, business, process models are evolving rapidly and disrupting the way we do things and testing too is disrupted.To survive and accomplish more in these interesting times, ‘Test smartly. Accomplish more’.

In a discussion with Sudhir Patnaik,  I asked him as what the key disruptors  to our discipline of testing are. His single phrase answer was “Extreme Ownership”. That it is, not just owning the act of validation, but the ownership of entire customer experience.And this he said, changes the team structure , the way we perform test, and the  skills required.

Watch the full video of my discussion with Sudhir Patnaik on the theme “The changing facet of our discipline/industry”.

https://youtu.be/nDcx_1PvUF0

The ownership mindset requires a two faced tester, one adept with technology and development on one side and the other to test well. Code when required, dig deeper to understand better, shift left tests, automate as much as possible and test intelligently. 

The confluence of extreme speed that business demands today, the rapid adoption of new technologies, the cloud-ification and platform-ising of applications and the  finicky end users have created serious inflexion points. It is threatening the test/QA practice, what do we do now?  The demands that we have on how we need to complement dev, expand our base of skills, deal with far more imprecise information and embrace technology to get work done implies a far greater reliance on our intellect. To survive this QA disruption, ‘Smart testing’ is very necessary. So, what we do ‘smartly’ across the lifecycle of dev/test?

Smart understanding
Being able to appreciate the intended customer experience implies a smarter approach to understanding the larger context, figuring out what is expected rather that ‘what is there’ to be validated. It is about figuring out how the sum total of various entities of a system contribute  to the wholesome  end user experience, beyond the typical piece meal validation of an entity. ‘Smart Understanding’ is an essential ingredient here. Understanding that is multidimensional, of business, end users, environment, context of usage, architecture and deployment, the technology stack and its nuances. 

Smart strategy/plan
How much do we test? How much do we test earlier (Shift Left)? How much can be done  statically using software tools on SmartChecklists? How much testing can be avoided? How and what do we need to do to maximally automate? How to set up a continuous health check? How much can we test under the hood? What are the ‘-ilities’ that we need to test? What is the impact of changes done? Coming up with answers to these at start and continuously refining them enables us to setup a continuous test flow that is rapid, optimal and effective.It is the sensitivity and refinement of what, how much, how early, how to test minimally, employing maximal automation. It is making appropriate choices to deliver a great customer experience continually, that demands ’Smart strategy and planning’, so that we may be continuous, responsive and effective. 

Smart Design and Execution
How do you ensure that you have “potent” test scenarios/cases? That is, test scenarios/cases that are powerful enough to explore all nooks and crannies of the software to uncover issues. It is not just optimising execution via automation but using intellect and technology to ensure the net is cast wide enough and this can be done quick enough. Never underestimate that all scenarios can be designed a-priori;  it is about being sensitive to the context and execution, and refine continuously. ‘Smart design’ is about being logical and use design techniques to model better, whilst at the same time be highly observant , curious and creative to come with really interesting and meaningful scenarios.

As much as good design matters, it only translates into great reality when its executed, statically or dynamically. Well as much as it sounds great to use this earlier via shift-left, it would be smarter to be sensitive and prevent. Static execution does make great sense and these  can be done using software tools or thinking tools expressed as a ‘Smart Checklist’.In the case of dynamic execution to evaluate software, we have various choices : (a) under the hood automation via API (b) Front based automation of short feature thread or long business flows (c) execution by an intelligent human. Making appropriate choices using available information at the earliest and refining would be ‘Smart execution’.

Smart Documentation
Why do we document? For posterity, for future support, right? Nah, that would be old school thinking! In today’s world, documentation is to enhance one’s understanding, with the side effect of making these understanding,  choices and actions available to others. Note that first reason is ‘improving one’s understanding’, to think better. So ‘Smart documentation’ is about being to-the-point (terse), staying uncluttered i.e crisp, visual as applicable with meaningful notes, and appropriate elaboration that is strictly on need basis. Given that testing today is done in short sessions, the act of documentation should never disrupt the flow of thinking, in fact it should catalyse smart thinking.

Smart Automation
Smartness is not only in doing the work oneself, it is smartly exploiting tools and technology to get this done. Automation is not limited to execution of tests to assess correctness, it is also about doing all other work in the larger context of assessment.

This could encompass test design, environment setup, data generation, problem analysis, runtime measurement, health checks, project management and deployment. In the context of assessment, ‘Smart automation’ can be (a) enabling self-test integrated into the code (b) health check suites that monitor health when change is done (c)under the hood automation using API  that is more resilient (d) front end based user oriented suites (e) building frameworks that can assist the dev folks earlier to test easier (f) scripts that be easily generated and modified rapidly i.e. ‘code-less automation’ especially for UI.

Smart Analysis
When we test, we may find issues or we may not. The key is, what we do with this information.How does this help in getting a clear picture where we are and how good the system is ?  How does this help make meaningful business decisions rapidly? How does this allow us to rapidly refine what we are doing?  It is about sifting thorough the rich testing dataset and just showing the minimal crisp information to enable rapid decision making. This is what ‘Smart analysis’ is about. Quickly dig in deep and extract nuggets.

Smart testing is the way 
Smart testing is about doing less and accomplishing more, and rapidly with razor sharp focus on business outcomes and end user experience.  It is about doing what it takes to ensure great end user experience all the way, ‘extreme ownership’ as my friend called it!  It is not just in the act of assessment/evaluation, it is across the entire of lifecycle of dev/test of smartly using the process, technology and tools.Technology, business, process models are evolving rapidly and disrupting the way we do things and testing too is disrupted.To survive and accomplish more in these interesting times, ‘Test smartly. Accomplish more’.

———————–

The theme of SmartQA is to explore various dimensions of smartness to leapfrog into the new age of software development, to accomplish more with less by exploiting our intellect along with technology.  Towards this, we will strive to showcase interesting thoughts, expert industry views through high quality content as articles, posters, videos, surveys outlined as a SmartQA Digest weekly emailer. SmartBites is soundbites from smart people”. Ideas, thoughts and views to inspire you to think differently.

Signup to receive SmartQA digest that has something interesting weekly to becoming smarter in QA and delivering great products.