Why Your Dev/Test Environment is as Important as Production

Image for post
Image for post

Every element of your software delivery chain is important. You know that.

But, as is the case with almost anything that involves human beings, or machines, or both, there are times when it is all too easy to assume that the most visible elements of a system or process are also the most important. And it is also all too easy to assume that the less visible elements of the process are not very important at all.

In a typical DevOps continuous delivery chain, production is usually highly visible. It, after all, is where the wheel hits the road, the point at which your application or service meets your customers, and where any functional or performance issues are likely to not only become apparent, but also result in problems which require immediate remediation.

But the truth is that production is just the final stage of the delivery cycle. Without development and testing, there would be very little to deliver.

Production Without Development

You have an excellent delivery chain (at least at the production end), and an existing application. It might be a legacy application which you intend to deploy in a cloud environment, or it might be an application developed outside of your operation (by outsourcing, for example).

Your production team can deliver the application, and maintain it at the level of infrastructure. But you have no development team, no test team, and thus no provisions for ongoing support at the level of code.

No application exists in a vacuum. Infrastructure consists of discrete elements (operating systems, support applications and services, APIs, runtime libraries, and the cloud itself), all of which can, and almost certainly will, change over time. This means that over time, the application’s code will become less and less compatible with the infrastructure in which it must function.

The Cost of Maintaining Legacy Conditions

At some point, if there are no major revisions at the level of code, the application is likely to either become unworkable, or so visibly outdated that it loses a significant part of its market share.

This is the functional cost of having no development and no testing. But for any application operating in the highly competitive world of online software and services, or for virtually any website, this cost would be only a small part of the price you pay for neglecting ongoing development and testing.

The Cost of Being (and Looking) Obsolete

The Value of Development

It is easy, however, to take the development and testing environment itself for granted, to assume that your developers and testers are self-maintaining, and that the resources which they have available by default are sufficient. But environments and resources do make a difference, and sometimes a very great difference.

A great deal has been written about the organizational aspects of the development environment, of course, and the issues addressed by the major development management theories and schools of thought are important. But for now, let’s just consider the question of tools and other functional resources that make up the development and testing environment.

Tools Make a Difference

● Are libraries and other resources fully and flexibly integrated into the development environment, and are all those resources up-to-date?

● Do the development tools which are available to you fit your particular style of working, or do you find that they frequently get in the way and slow you down?

● Does the development environment require you to move between multiple windows or use menu selections and dialog boxes to perform common, repetitive tasks, or can you easily automate such processes, and avoid the graphic user interface entirely?

● Has your development environment become a maze of patches and workarounds added incrementally over time as a way of keeping an increasingly obsolete set of tools functional for “just a little while longer”?

The Limits of Resourcefulness

It is tempting to see this resourcefulness as a highly positive trait, and in many ways it is. But extending the life of obsolete or inadequate tools by means of workarounds can eventually result in both a reduction of quality, and increased development time.

Ultimately, if existing development tools become too outdated, patches and workarounds will no longer suffice, and it may become impossible for your developers to make use of the latest features, or, worse yet, to keep your software running in the face of changes to infrastructure, operating systems, and runtime libraries.

Happy Developers Mean Increased Productivity

Testing is Not an Afterthought

This means that they must be kept up-to-date. If you are deploying software in virtualized environments in the cloud, your testing system should be automated, virtualized, and cloud-based. Unfortunately, if you do not give your testing process the attention it deserves, you may find yourself relying on an outdated system of testing (for example, one which is manual and hardware-based) simply by default.

Platforms are Important

The advantages these capabilities offer to your development team (from design through implementation) are clear; they can mean the difference between being able to put in place all of the features which your application requires, or having to make do with low-performance workarounds.

Try Alibaba Cloud for Free

Don’t take our word for it, though: try Alibaba Cloud’s free trial offer (https://www.alibabacloud.com/campaign/free-trial#free-products, with $300.00 credit), gives you a chance to see for yourself what many of Alibaba Cloud’s features and services can do for you.

Image for post
Image for post

source: https://pixabay.com/en/programming-responsive-html-css-1873854/


Michael Churchman
@mazorstorn Michael Churchman started as a scriptwriter, editor, and producer of the game industry, working on the prototype for the laser-disc game Dragon’s Lair. He spent much of the 90s in the software industry. During that time he developed a semi-automated system for managing localization in over fifteen languages. For the past ten years, he has been involved in the analysis of software development processes and related engineering management issues.



Follow me to keep abreast with the latest technology news, industry insights, and developer trends.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store