At my first job, I was in charge of developing a distributed data pipeline and search cluster. These were the days before AWS was evident, and the company still had its own data centers. By far, the bottleneck for my development was getting more machines provisioned. It could take days.

So, I did what any good developer would do. I found a vulnerability (XSS) in the IT platform and used that to build my own "autoscaling" system. Eventually, I took more and more ownership over IT operations, like deploying and managing our version control and CI/CD systems. Not because I wanted to, but because I needed to develop as quickly as possible. It's not a coincidence my next move was to work on Kubernetes at Google in 2016.

People are avoiding each other at work, and self-service is on the rise. Software is democratizing every department. Product managers can run analytics and workflows without developers, developers can provision infrastructure without IT, and marketers can publish copy without developers. The flip side of the democratization of software is that workers can do more of their work without relying on others. Many software trends focus on removing the need for cross-functional busy work, the most expensive type of inter-company communication.

Collaboration is essential, except when it's busywork. Taking individuals away from their core tasks brings high costs.  

DevOps and cloud gave developers more control over provisioning. Low/NoCode gave non-technical roles more power over accomplishing their functions. Spreadsheets gave everyone the ability to do basic programming and avoid asking developers. Data Ops tools give data scientists the ability to run analyses on data without asking engineers to clean or move around the data. Product managers are learning SQL so that they don't have to ask developers to run queries for data. I wrote about Comparative Advantage and Why PMs Shouldn't Write SQL Queries, but maybe the takeaway should have been that we should be building tools to solve this problem.