Bimodal IT and its two modes
Where ‘mode #1’ is for the traditional development of applications undertaken by organisations and ‘mode #2’ is for Agile/DevOps mode of fast developing applications. Bimodal IT, is a term coined by global research and advisory firm, Gartner, looking at digital innovation.
Mode #1 is based on step-by-step, predictable, long development cycles and expensive, time consuming and rigid practices; mode #2 is highly adaptive to context, innovative, speedy, agile and has short development cycles. Both the modes are important in their own way and overall very crucial to create significant values in digital transformation.
Mode #1 is largely used for core system maintenance, stability or efficiency, with little need for business involvement, whereas mode #2 is primarily used for business. Basically, mode #2 will take a rapid path to transform business ideas into applications with fast paced, Agile/DevOps methodologies.
There is always a concern on having the two modes of development within the same organisations, as it can eventually create contending cultures resulting in operational challenges.
Even though, Quality Assurance (QA) and testing activities apply to both the modes, however, QA & testing is always fast regardless of which mode, and thus it is unimodal and rapid.
QA for first mode – traditional & slow development methodology
In mode #1, for waterfall methodologies, testing happens in sequential testing phases – functional testing, system testing, regression testing, integration testing, non-functional testing like performance, security testing and lastly user acceptance testing.
If testers find any issues or defects while doing any of the above and are able to reproduce the issues, the development team then needs to resolve these defects in the development environment and testers need to once again retest and regression test to confirm that the issues have been resolved.
Multiple rounds of testing might be required if any new issues crop up while regression testing, and the development teams will once again need to rectify those problems.
So, overall, multiple rounds of development activities followed by multiple rounds of testing are required to ensure there will not be any big surprises in production and receiving the green light to go with deployment.
The biggest problem occurs as testing is started only after development is completed.
When QA activities begin – a substantial amount of project time is already consumed in coding phases and usually only unit testing has been completed by that time. This is often since release people, application owners and stakeholders etc., have been ready to spend time on development activities but are not ready to spend much time on QA activities. So, QA activities needs be fast, often as early as possible, to meet the overall deployment of the product.
Ensure a thorough approach
As QA and testing often starts only when development is completed, you need to do all sorts of thorough end-to-end testing, resolving all the issues and /or defects from the development activities followed by retesting and regression testing, which of course can create more rounds of development and testing activities.
Also, there are defects which can lead to extended time duration for development folks to resolve, such as performance issues, design issues, security issues, regulatory issues etc.
The only possible way to speed up traditional software development methodologies is to ensure a speedy QA process, where QA will be done as quickly as possible so that development teams get sufficient time to resolve critical problems.
A difficult decision
Project owners face an unwelcome choice: either delay the overall release or spend more time on testing and resolving the issues. Generally, owners expect QA to be fast and, even in my personal experiences, I have seen there is always a huge pressure to complete the QA & testing activities at the earliest instance, squeezing the testing duration and timings for defect resolution as much as possible, and repeating the process until it gets corrected.
In a nutshell, QA and testing needs to be rapid to meet the overall project duration of traditional waterfall methodologies.
QA for second mode – agile & fast development methodology
In mode #2 for Agile and DevOps methodologies, the overall objective is to release quickly, with development actions being very fast in comparison with mode #1. To meet the overall objective of quick releases – QA and testing also needs to be fast and needs to begin at the early stages of the software development lifecycle (SDLC).
In mode #2, development and testing activities are done together, one after another, iteratively and continuously. So, QA and testing becomes a continuous process rather than sequentially as in mode #1.
Collaboration between both development and testing team is very much required to meet the accelerated objective.
As testing started in the early stages of the SDLC, most of the issues are identified and resolved very rapidly in parallel with the development activities. So, turnaround time is very minimal, which is in line with the target of speed-releasing the software. Executing continuous rapid tests assist developers to modify code quickly and overall the process becomes much faster, as expected.
Also, leveraging the automated testing as much as possible will eventually speed up the process. In this fast-paced mode, QA and testing is for defect prevention not for defect detection as per mode #1, and this is done by providing fast feedback to the development team via speedy testing.
Overall, QA and testing activities need to be rapid and fast in order to meet the short and tight project duration of agile methodologies.
In a nutshell, we can certainly accept that in both the modes (no matter whether it is mode #1 or mode #2), QA and testing needs to be fast and rapid, which implies that QA and testing is simply unimodal, not like development activities which are bimodal, having both slow and fast methodologies.
Arun Kumar Dutta is senior test manager in Atos-NAO & global subdomain leader for Atos Expert: Application-Testing