Keeping up with DevOps

How to establish a productive DevOps environment.

Tips for how to become a DevOps engineer In this intro for TechRepublic's how to become a DevOps engineer cheat sheet, Alison DeNisco Rayome discusses what the job is at its core, why it's in demand, the average salary in the US, and more.

Waterfall program design was first described in 1956. It continues to operate today in companies because of the volumes of legacy software that IT still supports. Waterfall is also an excellent, step-by-step software development methodology that has proven itself for decades.

The methodology is named waterfall because application development flows only one way: downward, like a waterfall. Waterfall development begins with requirements definition, moving down into design, then programming, test, and implementation.

SEE: Quick glossary: DevOps (Tech Pro Research)

In contrast, DevOps, which can approach all of these phases in a non-linear, near-spontaneous fashion, is still a nascent software methodology. A Statista 2018 survey revealed that only 17% of organizations had fully adopted DevOps. There are also reports of DevOps failing in organizations, primarily because organizational alignments retained their traditional forms and didn't evolve into the type of multi-disciplinary work groups that were optimal for DevOps. The other problem is DevOps testing, which must be continuous if you are continuously modifying DevOps apps

Application developers, whether they work in DevOps or traditional programming, are seldom fond of testing. What they want to do is shortcut testing and deploy applications faster. Unfortunately, the horror stories of not thoroughly testing apps before deployment are too numerous to mention, and can be real career threateners.

Check out the tips below to see how can you ensure the success of your DevOps apps without sacrificing quality and other hallmarks of excellence that have made waterfall software design so successful.

1. Focus on time to market automation

If you're going to adopt a DevOps methodology that requires near-simultaneous development, and testing and deployment of apps that dramatically improve your time to market, you need automation tools that can speed up the process. There already are tools for rapidly developing application prototypes where users enter data and test navigation.Tools that allow you to automatically deploy virtual instances of operating systems for test also exist.

Now there are testing tools that automate the check-out of a new app on a plurality of different devices and appliances.

"What we want to replicate is what end users do," said Shoeb Jared, CTO for Worksoft, which provides test automation tools. "With automation, we can test 60% to 90% of applications, although there are still manual parts of business operations that can't be tested by automation."

2. Get the right DevOps teams in place

DevOps doesn't work well when IT is deployed in traditional departments like application development, operations, infrastructure, networks, database, and QA. Because all of these activities can go on simultaneously with DevOps, the DevOps team should be an interdisciplinary group that includes all of these functions. The team need end users, as well.

If you don't have this interdisciplinary team in place, you will have a hard time succeeding with DevOps. It's equally important to recruit the right types of personnel for DevOps teams, whether they come from IT or end user areas. DevOps team members should be collaborative and team-oriented.

SEE: Research: DevOps adoption rates, associated hiring and retraining, and outcomes after implementation (Tech Pro Research)

3. Demand quality testing

Taking shortcuts on testing is a waterfall as well as a DevOps programming problem. By nature, application developers don't like to test. When they are up against a deadline, they also tend to view QA (and QA functions) as impediments to completing work.

DevOps test tools help automate testing at multiple levels: field edits, ergonomics, database and system routine access, stress testing, integration testing, etc. These tools can even test an app on multiple devices. However, in other cases, such as complicated middleware interactions or highly complex database access, manual testing works best. The DevOps manager (and team) must determine the best testing mix.

4. Insist on documentation

Like testing, documentation is another area that programmers dislike.

There are automation tools that capture logs and issue alerts. They can be combined with test scripts to produce more complete documentation, but some of the same "black box" or undocumented code that haunts waterfall applications also exists with DevOps. For instance, you seldom get a meaningful summary of the app's overall purpose and functionality. This can make it difficult for follow-up maintenance, because the maintenance programmer doesn't have a full sense of the app, which makes it harder to fix or enhance.

SEE: IT leader's guide to making DevOps work (Tech Pro Research)

5. Use DevOps for internal company applications—but avoid using it for outside customers

DevOps is a fluid, continuous and highly creative application development process. DevOps can also be highly experimental. For this reason, it is best to deploy DevOps applications internally and not with your end customers, who could get disrupted if there is too much application change.

Also see

By Mary Shacklett

Mary E. Shacklett is president of Transworld Data, a technology research and market development firm. Prior to founding the company, Mary was Senior Vice President of Marketing and Technology at TCCU, Inc., a financial services firm; Vice President o...