SmartQA Community

Enterprise Customers & Quality

( In this SmartBits, Sriramadesikan Santhanam outlines “Enterprise Customers & Quality“.  The video is at the end of this blog)

Expectations are getting changed due to the disruptive nature of technology. Most of the people in some domains are on legacy platforms. Moving onto a digital platform definitely changes the role of QA, this needs to be planned. The technology change cannot be done abruptly because this is costing them. Whenever we plan to make any changes to our customers expectations, it has to be aligned to their business programs.

The most important aspect is how successfully QA will allow running the programs for them. Does it have less risks associated when they move from legacy to new modern platforms? 

We are talking about business issues occurring on the field. The most important is the field quality. How much defects are we able to reduce in the field quality when we make changes to them?

Seven habits to healthy code

T Ashok @ash_thiru on Twitter

Summary


Healthy code is not about just working correctly. It is about future-proofing, maintainability, adaptability, reusability and so on. As in real life where face shines when you are in the pink of health, beautiful code also shines!

“Healthy code is not the outcome of review or testing, it is from doing simple things diligently.”

What comes to your mind when you hear the word ‘HEALTHY’?

It really is a combination of healthy mind and healthy body. So when I say ““HEALTHY HABITS”, what do you think of?

Now, let us relate to code. What is healthy code?

So what are the habits to stay healthy? Let us correlate these habits to software.

Let us reorder these seven habits …

“Healthy code is not the outcome of review or testing, it is from doing simple things diligently.”


Build with Quality

Summary

What it takes to “Build with quality” ? Girish Elchuri outlines that it takes a good modern micro-services architecture, a robust design that is modular, adopting a zero trust programming mentality and documenting specifications & design to enabling good test cases.

The video of this “nano learning” smartbits video is available here.


When we are developing a product, we all know that apart from the functional requirements, the quality requirements are also equally important. It is important that the product works as per the functions and also as per the quality, and that must start from architecture. You should have an architecture which is as per the current trends going with the micro-services so that it becomes much easier to test it out for each service independently.

Then we look at the design. You need to have a robust design, preferably in a modular way which will simplify the process of testing because it is always easy to test a small portion than a big monotonous thing. That is the second thing you need to look at; having a design which is very modular so that you can do a plug and play much easily including testing.

The third thing that you would look at is what I call a zero-trust programming. When you are developing or programming, you don’t trust anything. For example, even if you are getting parameters from your own functions, you don’t trust them, you just verify them once again. Basically, the way to do programming is to do a lot of validation of the parameters, validation of the context and whole lot of other things and when you know everything is right, then go into the functionality. This way, you are catching a lot of errors that are possible, upfront rather than in the logic and kind of having the runtime issues.

After that, you have to also make sure that you put enough effort to write the functional specs and design documents, because that is one aspect that people always ignore. Primarily, if you have a good functional specs and design documents, it becomes that much easy for the testing/quality team to design the test cases. So, I would say that you should have a holistic approach to quality rather than a very narrow focus of testing it post product development and then suffer a lot.

click to video


10 things to be sensitive to deliver brilliant code

by T Ashok @ash_thiru on TwitterS

Summary
Great code is not result of mere unit/dev testing at the early stage. It is really a mindset that is key to producing brilliant code. This article outlines ten things that a developer should be very sensitive to enable the delivery of brilliant code.


 1.Be focussed
In each code fragment, do one thing well.  Attempting to do many things can become messy! Stay single-minded in what you are solving with this code.

2.Be defensive
Accidents happen, inputs may be tainted. Prepare for eventualities, be defensive in your style of coding. After all, it is your responsibility to stay safe!

3.Be clean
Reduce clutter in code, it is just about somehow getting the code to do work. Organisation, structure matters.

4.Be malleable
Avoid magic numbers, hardcoding. Be soft and pliable so that you can modify, extend easily.

5.Be expansive
Strive to understand the larger context where your code will be used, so that your code delivers value. ‘See the forest for the trees’ too.

6.Be a good citizen
Respect the environment in which the code runs, consume resources only what you need and release them when you need don’t them.

7.Be maintainable 
Code begs changes to be done the minute you execute it. Make it maintenance friendly. Also, remember that it may just be you who will maintain the code. Well with time, one also forgets why some things are, the way it is.

8.Be efficient..
It is not just about the functionality, it is about all other ‘-ities’, like security, reliability, compatibility, performance etc. Be sensitive to these aspects while you are coding.

9.Be testable
The ability to ascertain if the code is behaving correctly is paramount. Putting it hooks to enable testability enables you to write great code.

10.Be beautiful
Finally great code is not just text that when executed, works correctly. Treat it as a work of art that you produce. Let the choice of names, the structure, the organisation have a sense of aesthetic appeal. After all brilliant engineering becomes art.


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.

[grwebform url=”https://app.getresponse.com/view_webform_v2.js?u=hzsfs&webforms_id=BxdSM” css=”on/off” center=”on/off” center_margin=”200″/]