Agile, open source, the cloud, and DevOps have all led to a world where everyone should be involved in programming. Yes, everyone.
Once upon a time there were users and there were IT and never the twain would meet... except to do battle over tech support lines. Also in a galaxy far, far away there were developers and there were operators, and the only communications between them was brickbat thrown over the wall between the lab and operations.
That was then. This is now.
Sure, you can still have snarling fits between IT and the rest of the company. And yes, you can still have programmers and production fighting like cats and dogs. You can also still run Windows XP, write your documentation in XyWrite, and use waterfall for your programming teams.
It's time to wake up and smell the coffee, people. These days, thanks to the intersection of four technology trends -- Agile, open source, the cloud and the rise of DevOps -- everyone can get involved in programming. And, you know what? Everyone should.
As Jonathan Bryce, executive director of the OpenStack Foundation, explained at the OpenStack Summit in May 2014 in Atlanta, "We're living in a software-defined economy. Every company competes with a start-up. The barrier of entry is now very low. The technology shift of development to open source and the Internet has made it very cheap to build new software and this, in turn, is increasing the velocity of money. Any organization's ability to do great things with software is arguably its core competence, no matter the industry, vertical, or category."
The reason for this? We're now in a hyper-competitive world. Your clients or customers aren't going to wait for you to improve your service or product if someone else can deliver the goods to them faster.
As Walt Disney's director of cloud services and architecture, Chris Launey, said at OpenStack Summit we now live in a business world "people can set up a WordPress-powered content site in 20 minutes with a credit card they're not going to settle for an IT environment where they have to put in tickets." From where he sits, company IT should no longer have to choose the best two out of the traditional trio of good, fast, or cheap. Instead, the only " choice" is "fast, fast, fast. We change little bits all the time. It's all about faster pizza with an extra helping of faster."
Here's how this has happened. Agile, of course, provided us with a bridge between developers, operators and end-users. Instead of fighting with each other—therefore wasting time and money—they can, ideally, work together. Whether they use Scrum or Extreme Programming (XP) isn't so important. What's vital is getting everyone on the same page. At the same time, modern quality assurance testing tools have made this methodology far more practical.
That's fine within a company, but open source has extended the ability to work together in a collaborative fashion across companies. In the Linux Foundation's Collaborative Development Trends Report, researchers found that "Ninety-one percent of business managers and executives surveyed [from companies such as Cisco, Fujitsu, HP, IBM, Intel, Google, NEC, Oracle, Qualcomm and Samsung] thought that collaborative software development somewhat to very important to their business. And nearly 80% say collaborative development practices have been seen as more strategic to their organization over the past three years. Nearly half of business managers surveyed said they got involved in collaborative development because it allows them to innovate and/or help transform their industry."
They're doing this because open source is no longer a "grassroots movement" or a kind of shadow IT. Instead, "business managers recognize open -source software as a business imperative."
Why? Because it's a lot cheaper to work together for a common programming infrastructure. No single company may get most of a proprietary market pie, but everyone gets a piece of a large open-source market pie. And, I might add, it's simply faster.
Where the cloud comes in is that it makes it possible to deploy these Agile, open-source programs and services to a global market in a matter of minutes. Need to fix a bug? Add a new feature? Make it in your test cloud, then deploy it to your customers in your "real" cloud. No fuss, no muss, and, once again, it's very, very fast.
DevOps is where it all comes together. As Michael Cote, the 451 Research group's research director for infrastructure, said at OpenStack Summit, "DevOps is all about using agile and the cloud to deliver applications more quickly to market." That means building and revising your applications as fast as possible to them to an audience that expects them to be both mobile and cloud-friendly.
In other words, expect to be doing a lot of rewriting of your programs in the next few years. The best way to do this is to use DevOps tools such as Juju, Puppet, Chef and Salt. However, Cote observed, few companies are really efficiently using DevOps at this point. So, if you haven't started yet, you still have time to get up to speed before your rivals do.
What you can't do, Cote said, is wait. In three years, you'll be too far behind the curve to catch up.
I use the word "speed" deliberately because, as everyone agreed at OpenStack Summit and other open-source developer meetings I've attended in the last six months it's all about speeding up the software development process.
This can't be done with technology alone. To use these four change agents effectively you have to change your culture, according to Fred Brooks in "No Silver Bullet" (PDF). Sure, you could try to do it by throwing more programmers at it. But, if you've read your Fred Brooks The Mythical Man Month, then you know that never works.
No, to compete in this new hyper-accelerated market, you need to adopt new methods, or to be more precise a combination of new methods and change culture to make the best use of them. If you do, then you can use collaborative methods faster than ever before and that will give you, or your clients, a tremendous market advantage. Good luck!