‘Head’ in the clouds: Am I Test or DevOps?
Of course this is a silly question, but even so it does not have a simple answer. Life has been turned upside down right now as Covid 19 puts the world in lockdown so here are some random musings on ‘Quality in the Cloud.’
So what do I do?
Today we have completed the release of a new product to all new production environments. Back in the day when I was testing software for clients to install, we simply had to ensure that the code was releasable, release notes prepared and the Windows and Linux installers were working. That was a pretty large job in itself, but at least releases were typically only every couple of months.
Today we released code through automated pipelines with with automated checks running through dev -> pre prod -> production.
That’s not to say that no testing with the mark 1 eyeball are involved. I expect every ticket, bug or feature request to be carefully verified, but once we have tested the code locally, and in the dev (integration) environment, I can have reasonable confidence that if it passes our automated checks, it will work in production.
I don’t need to fear the day when we we are asked to push new changes live. It’s just a case of pressing buttons and looking out for the warning signs we have provided
So how was today different from the old days?
Today we completed the first release of 3 back end apps onto a brand new, multi region deployment with a Web Application and iOS and Android mobile apps using the services that they provide.
You might expect (and I certainly did) that as Head of Quality I would have spent the last 5 days thoroughly testing the application. I could have been buried in the apps, clicking and checking every button looking for bugs and regressions. I am sure that we would have shipped to a standard that we can be proud of.
But what about tomorrow?
Software has bugs. It always will. So soon enough we will need to patch a fix or minor UX tweak. After all, anything that adds value to a customer is increasing quality.
If I had spent the last week only testing the application quality, I am sure that we would have had to cut corners to get it live: Manual steps here, automated tests not running there. And suddenly ‘can we just fix this minor bug’ gets a response of ‘Its a 1 line change, but the deployment will take a day of QA to get live.’
Instead I have actually spent almost all of the last week working with colleagues to ensure that we have pipelines that can deploy AND validate code as quickly as possible through to any of the new (or old) environments.
Honestly I don’t have a clue how many releases were generated today. Not all of them made it safely through to the production environment as you might expect, and I can be pretty sure that there will be more changes to push live tomorrow.
I am confident however, that I don’t need to fear the day when we we are asked to push new changes live. It’s just a case of pressing buttons and looking out for the warning signs we have provided.
Progress made:
- Sometimes life gets in the way of personal projects. Caring for my family and suddenly learning to work as a part of a remote company is enough to be going on with
- Work has been intense with a major new software release deadline today, and the team made me proud!
Lessons learnt:
- The team I work with are awesome!
- We use so much software to deliver cloud software that it is hardly surprising that much of the code needing testing is not application code
- Testing that this code runs, is configured correctly and performs its role is just as important as testing the application
- Putting off completing the deployment pipelines and wiring in the tests is a false economy. I have learnt the hard way, that if you accept to release without completing the test pipeline, getting time to finish off those last little annoyances quickly gets dropped down the priority list
If the tests are not running in the pipeline, the team has not completed their development.
A reminder:
If you want to ask me a question, Twitter is undoubtedly the fastest place to get a response: My Username is @AlexanderOnTest so I am easy to find. My DMs are always open for questions, and I publicise my new blog posts there too.
If you find my posts interesting:
With conferences and real world meetups on hold, if you feel that your company or virtual meetup might like my input please feel free to get in touch. I am always open to interesting offers if I can find the time.