Why You Should Build Your Software How Boeing Builds Planes
The longer we test applications and the more we develop and test software, the greater our understanding of the entire process becomes. Agile, DevOps, continuous delivery, and continuous testing—developers and testers are finding faster and smarter ways to streamline the procedure.
However, Naga Jayadev, the chief technologist for the Continuous Delivery and Advisory Services Sales teams at CA Technologies, might be the first person to suggest we look to Boeing to better understand how to build stable, well-tested software.
Instead of building each individual part, putting it all together, and testing it to see the results, Jayadev references how planes are assembled and argues that this is a much smarter way to put together a new piece of software.
“Imagine if Boeing built a plane like the way we build software today. If we build the fuselage, the wings, the engine, and we say, ‘We got to test it out.’ Would you want to be the pilot on that first flight when we've not tested anything and we try to fly the plane?” he said at this year’s STARWEST conference. “You don't. Right? We can't fly the plane and say, ‘Let's go replace the pilot if it failed.’”
It’s an interesting notion. With software, we often build all the separate pieces, throw them together, and see if the final product works as intended. With the plane example, Boeing builds the fuselage and then decides to test it in a wind tunnel. If the fuselage is properly tested in isolation in a wind tunnel and hits all its marks, you can then lower the risk that it’ll malfunction when it really counts.
If there are problems with the wings, engines, or any other part of the plane, these are often discovered in the isolation testing and snuffed out before too long. That’s how Jayadev thinks software should be handled, too.
“Our goal is to decouple all of these components and test everything in isolation in a wind tunnel. That is where service virtualization fits in,” he continued. “Again, this is one of the small pillars of continuous delivery in DevOps to say, ‘How do I bring this in into my strategy of making sure my software is of high quality and I can deliver it faster?’”
Sometimes, instead of focusing on how things are done in the world of software, it’s best to look toward other industries to discover smarter ways to optimize testing.