The new era of developer tools
I have been excited by developer tools and the value they can bring since my days at university. Back in Greece, and later in Edinburgh, I had the pleasure of being part of groups that were conducting research in machine learning on source code using language models over seven years ago. This research would eventually pave the way for AI-powered developer tools, such as Copilot. It is fascinating to see Charles Sutton and Miltos Allamanis receive the Most Influential Paper (10-year) award at the MSR conference for their work on language models.
It is also satisfying to see companies increasingly focusing on the developer experience and the growing traction of AI-powered developer tools. The number of developers has been steadily increasing by roughly a million each year since 2018 (source), and we need tools to enhance their productivity by reducing cognitive load and manual work.
Throughout my journey in tech so far, I have had the opportunity to work in and explore various domains, such as product engineering, developer productivity, cloud and reliability engineering, observability, and the wider platform engineering domain, to name a few. To my surprise, I discovered that the majority of the tools employed in these areas seemed outdated and had not yet incorporated artificial intelligence. Fortunately, recent innovations like Copilot X and Sourcegraph’s Cody have begun to pave the way for more advanced and intelligent tooling. Nonetheless, there remain several domains that have yet to be disrupted, as illustrated in Sequoia’s diagram above. A few examples:
- Issue trackers have not significantly improved in terms of ease of use, intelligence, or user appeal.
- Monitoring platforms often create more friction than they reduce cognitive load, primarily due to their vast number of features and various methods for achieving the same objective.
- Logging platforms still require developers to manually go through hundreds of logs unless they become proficient with the respective domain-specific languages.
- Developer portals and hubs remain static in terms of content, lacking more personalised results.
- Popular git hosting services are still not there when it comes to intelligent features, such as those facilitating pull request reviews.
- Using Continuous deployment platforms for releasing and rolling back changes remains time-consuming and largely manual, although this might be a good thing.
- The default terminals of widely-used operating systems have experienced minimal change over the years.
Considering that many large organisations use different solutions for each (sub)domain, such as logging and monitoring platforms, it remains challenging to connect the dots between these various systems. Moreover, it is not always in the best interest of the vendors to collaborate. While developer hubs could potentially offer a unified view, the processes of debugging and incident response have become harder than ever before. This issue is exacerbated by the increasing complexity within both the application space, as evidenced by the emergence of smaller and more numerous micro-services, and the platform space, as demonstrated by technologies such as Kubernetes and operators, and the various building blocks and abstractions created as part of many companies’ recent re-engineering efforts.
This increasing complexity not only highlights the broader need for simplification, but it also stresses the importance of more sophisticated and intelligent developer tools, which would enable developers to perform their tasks with greater efficiency. That is, these advanced tools should facilitate the seamless building, operation, and debugging of applications by developers.
PS: This blogpost was not written by ChatGPT.