Sunday 14 March 2021

Success is not a choice

 

As a student I always felt having multiple choice questions is better than fill in the blanks because you at least play odd man out with multiple choice and if lucky you might get a correct answer but filling a blank line is much harder as there are no options to trigger your memory. Now as a professional I don’t feel the same, it looks like having a blank line is much better as I would work towards filling that line and I know I will get it right because my focus, my time and effort is in getting that blank line filled in, but now with the choices we have around is actually making me feel puzzled and worried.

Choice has made us not freer but more paralyzed, not happier but more dissatisfied. --Barry Schwartz

I would like to start with job postings these days they do confuse me and sometimes scare me, the requirement is for everything but what is actually required to do the job. It's more like Jack of all trades but not Master of the job they should be doing, having a wider skill set is definitely a benefit, but that doesn’t make them the best suited for the role. It is a c
ompetitive market and you need to sell yourself and that too very fast, which means you need to tick all the boxes and this is where the question with choices come in where every choice is right and you have multiple answers for one question, choosing any one is not wrong neither right but doesn’t tick all the boxes and this applies to individuals and companies.

With ever changing technology, making the right choice is very crucial but the difficulty is in choosing when there are so many to choose from. To put it to context, we have DevOps - A number of tools that support this process to happen | Cloud - So many to choose from |Automation - A number of tools either with code or codeless | Languages – So many to master, this is not a comprehensive list but I chose not to list them all. All of these technologies are great but doesn't necessarily satisfy or give the required output. As an individual I made a choice to be in a profession which I am passionate about, as with changing times and technology I am adapting to the situations and making progress but whether I am making the right choices by adapting to the changes is something always remained a question mark. 


I think its key to understand that every choice has a limitation and it could have an impact in shorter or a longer term and you should be prepared to take that impact when it comes. When the technology changes you don’t have to immediately leap into it, it’s important to understand whether the change is required, does it fit into current circumstances, what challenges does it bring, are the benefits short term or long term, financial impact and mainly impact on yourselves as success doesn’t depend on making a choice, it depends on how rightly that choice is executed.

 

Friday 14 August 2020

Evolution of Testers and Continuous Learning


I would like to start by quoting Charles Darwin a famous English naturalist who came up with the theory of natural selection and how this drives the evolution of new species.

"Darwin's revolutionary theory was that new species arise naturally, by a process of evolution, rather than having been created and evolution is a change which is inherited over the time through the process of natural selection. Natural selection is a process where organisms that are better adapted to an environment will survive and reproduce."

"Darwin is associated with the term 'survival of the fittest', which describes how natural selection works. Individual organisms in an environment are 'selected for'. This means that only the organisms that have the best characteristics for that particular environment will survive. If they survive then they are the 'fittest' for this environment, they reproduce and pass on the advantageous characteristics to their offspring."

Coming from a testing background and having worked with different Software Development cycles, I have noticed that the role of a tester in software development life cycle has been changing and the current situation of a tester is more relatable to the statements from Darwin's theory. Before getting into evolution or evolving testers let see how they were placed in different Life cycles. 

Waterfall model 

This is a classic software life cycle model developing a system with linear and sequential approach moving from one phase to other in a downward fashion. If we look at the Waterfall model it has a clear distinction of departments 'Business Analysts', 'Developers', 'Testers' and 'Operations' and when it comes to testing due to the nature of the model testers had a fair amount of time to design the tests and wait for the product to be delivered for testing. Although in the majority of the cases time got crushed by the time product is handed over to test and testing seemed like a bottleneck. The scope for Automation in this process was very minimal as there is no visibility of the product until it is passed on to Test team after stepping through different stages and any tests created based on documentation had very little chances of running successfully in the first attempt which brings in a lot of maintenance work, and so there was a lot of manual testing with big test teams involved to deliver the product under pressure. With all this effort the final product sometimes doesn't meet the customer expectations and it's not the fault of testing or any other department it's the ever-changing needs and lacking the flexibility to incorporate those in the life cycle and this led to a new development model. 


Agile / Scrum model

Agile has introduced 'Cross-functional', 'Self-Organising' teams divided into 3 main roles 'Product Owner', 'Scrum Master', 'Development Team' with main focus on collaboration, quick releases and customer feedback in this process, it's all 'One Team'. Testing still plays a crucial role within the Development team working in more collaboration with all the members involved in delivering the product. With the focus on the small and quick releases, the feedback cycle is much shorter and testers need to keep up with the pace to test the changes using the right techniques and tools which help achieve the objective, this has introduced the need for automation to get through the repetitive test tasks much faster and focus on the new features and provide feedback as quickly as possible. With a time block set for each release, testers were able to mix manual and automation testing techniques in their approach. This process has also slowly introduced a new role into the 'Development Team' to reduce the gap between the tester and developers and that is a combination of both 'SDET' (Software Development Engineer in Test). Agile focuses on alignment between the development team and business for fast delivery leaving a gap in collaborating with Ops and configuration management teams and this led to DevOps. 


DevOps

DevOps it's a combination of 'Development' and 'Operations', it builds the gap between both the teams aiming at faster delivery by using automation via various tools and applications. The nature of DevOps has raised the need for more automation, demand for a resource with more cross-functional skills, able to understand the toolsets, pipelines. Although the roles of a developer or tester or operations perform what they are expected to but the approach to their functions has changed, especially when we talk about testers who have been writing and executing manual tests find this transition as a big leap into space where finding and establishing their identity questions the existence of their role as typical 'Tester'. 


Let's see how this evolution of Development life cycles changed the role and approach in the testing world. The picture below shows a tester's role and approach in each life cycle model and you can notice that the demand for a tester with only manual testing skills has reduced quite significantly and with the evolution of DevOps, there is an increase of demand for Automation with more advanced skills to understand the pipelines, read, write the code and assist developers focussing on the exact problem by reducing the feedback loop on code changes.


What this means for a 'Tester' is to emerge as 'Engineers' be able to Automate, read and write code to test more effectively making use of tools in place and this is where I see Darwin's statements very relevant to how testing is evolving over the years adapting to changes in the technology, environment, customer needs and this evolution is not just natural but it is out of the need for change, need for improvement, need for collaboration and need for speed. 



There is quite a lot to take in as with the choice of the tools and technology available out there it could be quite confusing to choose one particular learning path to be on top of these continuously evolving software development process but it is important to keep in mind that testing is still crucial in any development process, testing skills are still unique, we (as a tester myself) need to take on a 'Continuous Learning' path to adapt to the evolving changes, this will increase the value as an individual in any team and makes you stand out in the crowd, there will always be new trends and new opportunities ( Checkout my article on Trends & Opportunities) and learning is endless and all we need is to challenge ourselves to keep up to date and relevant.

Credits: https://www.smithsonianmag.com/science-nature/the-evolution-of-charles-darwin-110234034/ / https://www.bbc.co.uk/bitesize/guides/zt4f8mn/revision/3