As software becomes part of an increasing number of products, software developers take on roles in more parts of a business. Products and services that have built-in ways to derive sentiment analysis data require developers and statisticians as part of the earliest discussions. Finance departments can plan usage and revenue more closely by talking with IT.
Much of that is going on now, at a small scale, and will likely spread. It is not hard to adjust to but over time may well have fantastic consequences. With the key technologies moving from their early days to broadly accepted tools, it’s a good time to think about what widespread deployment will mean.
Sam Ramji, who talks about these kinds of changes in a recent interview, has been thinking about the upshot of computing revolutions for over a decade. He is particularly interested in maximizing the power and utility of people and machines. At Microsoft, he led open source strategy, trying to harmonize two divergent but powerful computing propositions. At Apigee, he focused on ways to make APIs maximize the potential value of data. As the chief executive of the Cloud Foundry Foundation, he led innovations in open source software for cloud computing.
Now the head of developer platforms at Google Cloud, he blends open source software and cloud computing to increase the utility of both.
The collection of people and skills at any successful company, he says, is “a distributed cognitive system.” As computing touches more points, software developers need to be there too. “Get them committed to the company,” he says, “mix them up” in the overall corporate process.
Collective work that is broadly
accepted eventually creates
standards that don’t favor any
It’s easy to see how the open source style of software development is timely and attractive when computing is cheap and easy to access. Open software can be developed at maximum speed, in a way that is still rules-based. It tends to be more secure, since people from diverse viewpoints are spotting potential flaws.
Given the flexible nature of cloud systems, utility is increased by using standard open software across a number of places. Work can move naturally from local computers to public clouds, or even among clouds.
Developers are cognitive
carpenters. The more they can
standardize the tools they’re
using, and modify them a bit to
meet their own needs, the better
of a house they can build.
One upshot of open clouds: A lot of boring and expensive work in corporate information technology, stuff around manually getting incompatible systems to work together, is likely to go away. Software can be made in more modular ways, and then automated to run across any number of locations, using what are termed software “containers,” and management systems like Kubernetes and Istio.
The point is to maximize utility, so at any given time the latent economic power of a product, a piece of software, some data, or even an idea, can go where it is best used. (If you have seen the interviews on human collaboration with Prabhakar Raghavan, you’ll notice many parallels with what Ramji is saying.)
As with any move into new ways of working, that means changes — in particular to the need to hire for different skills, stay up on a few trends, and think creatively about how people and teams do their jobs. The good news is, most of the new technologies and practices are intuitive — far more than how we worked just a few years ago.