Applying an engineering mind-set to test

How do you continually deliver software with limited time and resources? Where manual testing has been an integral part of software development since the introduction of waterfall methodologies, this process takes a lot of time. And unfortunately, time equals money.

DevOps and automation are two ways modern businesses have responded to the need for increased speeds and agility, especially when it comes to application deployment. Both enable features to be released quicker, giving businesses the chance to react to market changes in realtime and keep ahead of their competitors.

Software Development Engineers in Test (SDETs) are an integral part of any agile transformation. They are the key to ensuring that software can be developed quickly and with confidence, building a bridge between development and testing.

Testing is a rapidly evolving field and key to good software development practices. Today, manual testing is too time consuming and resource hungry to be practical. Instead, automation enables organisations to release features and react to market changes faster.

SDETs have long been a feature of DevOps methodologies, helping to improve automation and give developers more ownership of their applications. They play a vital role in the process of shifting from waterfall models to agile methodologies and represent just how far application development has come over the years.

The problem with waterfall

Traditionally, software development used waterfall models, with progress on the project flowing steadily downward (like a waterfall) through several phases. The origins of this methodology lie in the industrial age. A factory production line has a number of stages to create the finished product, at the end of which it’s tested to make sure it works as designed.

This is fine for an assembly line but it has a number of serious problems as a system for releasing software, including:

  • Software releases are infrequent – potentially months apart – because each iteration needs to go through the entire waterfall process
  • It’s slow to deliver new features and react to requests from the business / customers for the same reason
  • There tends to be a lot of bugs in the finished product. Fixing them is often scheduled for the next release, months down the line

An agile solution

Agile methodologies attempt to solve these issues by bringing all the processes closer to the development team. This is known as ‘shift left’, instilling the idea of fail early, fail fast. The intention is to catch problems as early in the process as possible, rather than seeing testing as an entirely separate stage in the creation process.

It works. Today, software is being released faster and more regularly thanks to agile methodologies. However, this increased velocity means that organisations no longer have the capacity for a team of testers to manually verify every stage of the development process.

To cope with this, organisations need to be moving towards a modern testing strategy – with automation and SDETs as integral parts.

Why using SDETs is the way to transition successfully

Organisations already using agile methodologies such as DevOps often rely on SDETs to think differently, providing robust fast feedback to developers on how an application is behaving and writing automation code.

They are responsible for creating a shared understanding of the feature and thinking about potential edge cases or unhappy paths and asking questions that explore the features further. SDETs are also capable of looking at developer workflows to find inefficiencies. As a result of this, they will inspect and adapt the current quality pipeline.

This all-encompassing role has stemmed for a wider cultural shift, where teams own the quality of an application and everyone in that team has the responsibility to deliver a feature from inception to production.

At ECS Digital, SDETs need to have skillsets that can deliver on modern approaches to testing and for organisations that are undergoing digital transformation. This makes them an essential part of implementing the informed technical approach we take to testing and quality.

Our recent work with Global News Corporation and a world leader in the oil and gas industry demonstrates the importance of coupling SDETs with any transformation process. Global News Corporation, for example, optimised the role of a SDET whilst we helped deliver an engineering transformation. This transformation included the implementation of a continuous delivery process and culture which saw their delivery teams fully build, test and deploy within 20 minutes. Their reduction of regression test times also decreased from three hours to ten minutes and they had a healthy boost in sales thanks to an increase in their average app store rating which jumped from 3 to 4.5 stars.

Comparatively, we successfully introduced a test first approach throughout engineering and a full CI pipeline and culture for our world leader in the oil and gas industry client. This positively changed delivery across the oil trading platform, reducing regression times from four weeks to 30 minutes and providing a $50million a year saving.

What follows a successful transformation?

Our approach recommends that once clients have an agile methodology in place and feel they have made progress with fulfilling their digital implementation objectives, they can start to look at making efficiencies elsewhere. This usually comes at a time when a client’s digital agility has matured enough that the teams supporting these efforts would benefit from the recommendations of a ‘tooling efficiency’ model.

At ECS Digital, this is just one of the new models we are recommending to clients well into their agile methodology transformation, since it removes SDETs from development teams with the following key changes:

  • Developers becoming wholly responsible for the quality and testing of applications, including writing automation testing code.
  • SDETs focus on creating tools to make writing tests for developers trivial, as well as looking at developer workflow in order to increase the efficiency and confidence of the application.

We are successfully implementing this model in current client work. It’s a step up for organisations who are already running agile confidently and want to move up to the next level. It’s also a proven process for those wanting to implement agile methodologies but who need a trusted partner that offers a progressive business-first approach and a team with the knowhow to elevate their business before they do.

Transitioning to an SDET model is our recommended approach to begin in agile testing and digital transformations. Creating a communal ownership of quality is a key part of this and by bringing the traditional test and development roles closer together this is made a lot easier.

If you’re looking for help accelerating change within your business, get in touch with us here.

Efficiencies you can share across team

Kouros AliabadiApplying an engineering mind-set to test