10 Questions with Patrick Joubert
Are you confused between Ponicode and CircleCI? It’s not you, it’s us. Ponicode was acquired by CircleCI as of March 2022. The content and material published prior to this date remains under Ponicode’s name. When in doubt: Ponicode = CircleCI.
Last month we were very proud to celebrate Ponicode’s 2 year anniversary, and with that celebration also came a significant milestone when we reached 10,000 Ponicode users! It’s safe to say that it has been a crazy two years; from just four co-founders to now 22 employees, it can only go up from here 🚀
We took some time to sit with Patrick Joubert, CEO, to reflect on the past two years and the wild adventure he has been on, and how our mission is still as relevant as when we started:
Artificial Intelligence and Technology
Hello Patrick, happy Ponicode anniversary! What are we celebrating this year?
I think the most significant event over the past few months has been the technological breakthrough we’ve had. Our research and development efforts led into creating a unique, advanced and efficient piece of technology.
I am confident now that we have developed a game changing technology in the field of AI on code and it truly puts us in a different league. We now have a unique innovation in our hands that enables us to distribute highly efficient AI-powered testing solutions. It does not mean that our product is finished and we can go relax - far from it! We still have grounds to uncover, but when it comes to Ponicode for unit tests we “just” need to focus on task prioritisation from now on. We have the technology, we just need to decide which dimension we want to apply it to first. Be prepared to see Ponicode in new spaces, we are going to work hard to fulfill our ambition to provide Ponicode to every software engineer who needs our help.
Can you remind our audience how AI acts on code?
AI can act on code in two ways: firstly, within the code through natural language processing and secondly, at the codebase level to make global or architectural decisions. In natural language, the syntax is flexible, whereas in code it is extremely rigid. The number of possible sentence structures when writing code is much smaller than the number of possible sentence structures in natural language. However, code does not only consist of commands to the machine, it also contains comments and elements for other developers collaborating in the same file. Code can therefore be considered an advanced and more rigid means of communication than natural language.
Equipped with this understanding of code as language, it is easier to see how artificial intelligence, and in particular natural language processing algorithms, can be applied to code. This technology can capture key elements of the code, thus exercising functionalities related to language understanding that were previously reserved for humans.
Another very important area where AI can be applied is on the codebase as a whole, and therefore at an architectural level. Artificial intelligence will assimilate the whole codebase of a piece of software to a network. This network is made up of different code units (vertices) linked together (edges). Artificial intelligence can analyse this network and identify critical points. This means that it can find, without human help, information about the hierarchy of the code and its structure, helping to make decisions on aspects of improvement or risk identification. In the context of Ponicode, this allows us to help our customers identify where they are most exposed to potential bugs or software flaws.
Since Ponicode was created, we are seeing an increasing number of AI-powered coding tools. How do you feel about the recent evolution of this industry?
AI-powered tools are booming at the minute, and I’m sure within a few more years they will be part of any developer environment. Developers have one of the highest adoption rates when it comes to innovative tools, as long as they can really cater to their needs.
There are two areas in this exciting field that I am particularly impressed by, where the value provided by AI-powered tools is already significant and the potential for future progression is high;
Autocompletion tools: Tabnine or Kite, who, just a few years ago, brought little value by leveraging only syntax analysis and programming logic, have now taken things to the next level. Their deep learning algorithms are analysing semantics to make sense of the code. Until recently, they were just suggesting one or two characters, but they can now autocomplete entire functions or even bigger snippets of code. They do so with an acute sense of what the code is meant for and what kind of information it’s dealing with. Autocompletion is enabling software engineers to focus on the most complex part of their codebase and removing the burden of manually writing long strings of code.
Code analysis tool:. Snyk or Deepcode are tools dedicated to finding vulnerabilities in the code and suggesting actions to resolve them. These companies, which have been around for a while now, became game changers the day they started leveraging AI. The speed and accuracy with which they are capable of finding critical vulnerabilities and the quality of their problem-solving suggestions is impressive; it’s quite a contrast to the lack of help software engineers had available to them just a few years ago.
The days when developers had to write and read code line by line are gone. I’m excited to see how other steps in the software development lifecycle are going to be transformed and how tools will reach the same level as Kite or Snyck. Leveraging AI to effortlessly build efficient, single purpose, tested, secure and documented code is going to deeply impact the way software companies can create incremental value and innovation.
Of course, we are keeping a close eye on the tools released in our ecosystem. Github’s Copilot entered the AI-powered coding field last month and we could not ask for a better sign of market validation. Strong stakeholders such as GitHub are going to accelerate the market maturity for AI powered tools!
Code production versus augmenting a programmer's workflow: where do you stand?
Personally, I’m an advocate for augmented workflows thanks to AI. Currently, we see a lot of AI-powered assistants, enabling software engineers to gain velocity and accuracy in their work. The reason for the availability of more assistant tools than automation tools is that AI-powered automation has simply not yet reached the level of accuracy required.
Our industry is still young and even though we can already see the potential of automation with AI-based code generators - which have not been blown away by GPT3 performances when it comes to generating functional code - we have to acknowledge that automatically generated code is still pretty unmaintainable and the overall quality is not meeting the right standards yet. Give it a few more years!
While some engineers are working on the future of AI powered automation, my team and I, along with many other stakeholders, are dedicated to creating tools that are ready to be used today. Ponicode's ambition is to increase workflows and we decided to leverage machine learning with unit testing first and then expanded onto other steps of a developer’s routine. Within a few years, I believe there will be enough tools to cover all steps of the development lifecycle. Deep learning already enables us to cover the smaller tasks, the repetitive and redundant ones which clutter a software engineers' workflow. Today, artificial intelligence can free software engineers from tedious tasks which slow them down and decrease their creativity. The human mind remains far superior when it comes to creation, innovation and designing the most complex parts of our softwares. Enabling them to increase velocity in these exciting, high added value parts of their work is, I believe, the most interesting way to leverage the power of machine learning today.
I would like to add that AI-powered coding tools are not just valuable in writing code, it’s also powerful when it comes to upgrading existing code. We see a great number of new tools using AI to enhance legacy code and help existing assets reach industrial-grade standards. We can elevate developer legacy code management workflows and be part of reducing the hefty level of technical debt built up over the past 50 years in the software industry.
What are the limitations of AI-powered coding tools today?
Going back to my previous answer, I think that the first limitation of many AI-powered coding tools today is that they don’t yet reach the same level of accuracy that developers do (even with the latest ones such as IBM’s recent release). In order to improve our models, we need to more efficiently exploit the huge datasets made available thanks to the open source community. While it’s a gold mine for machine learning, unfortunately, they are not necessarily so readily accessible.
This is a major issue for many startups. Digitalisation is very advanced and the scope of applications being developed and what they are meant for is so broad that it becomes impossible to find exhaustive datasets and create AI-powered tools trained to manage this diversity. Exhaustivity is still not AI's strongest point, because machine learning models are trained on limited data sets. They consequently build several biases and some users are left aside because their context was not taken into account when training the algorithms.
Moreover, AI is very resource consuming, it requires costly installation to be trained and run. Many startups are cornered into finding hacks and shortcuts to deliver efficient AI. The economics behind building AI-based innovation is still a limitation; connecting great projects with financial resources is still not a seamless process, especially from my European standpoint.
But if we want to really grasp AI-powered coding tool specificities, I think the last relevant limitation would be the uniqueness of code as a language. Many tools are leveraging natural language processing to create coding tools but I think the rigidity of code as a language has still not been fully mastered. The diversity of the coding language, the fact that it’s created by humans for machines, used by machines to communicate and by humans to collaborate, creates a level of complexity we are still exploring.
Let’s shift towards some more software engineering focused questions; how did you originally come up with the idea for Ponicode?
In 2018, after the sale of my company Recast.AI to SAP, and fuelled by the success of the conversational artificial intelligence application, I travelled to Silicon Valley to gauge the temperature of the software industry. During my conversations with those who are building the tech products of tomorrow, one thing became clear. We code in much the same way as we did 30 years ago. Despite the development of the cloud and automation, the developer is still doing the same job. We don't have the tools to help them produce code in a more industrial, consistent and high quality manner. The lack of innovation to help make good quality code is striking for a sector that claims to be so "cutting edge".
Code is a complex language and with the RecastAI experience, I suspected that here too, artificial intelligence and natural language processing algorithms in particular, could be part of the solution. So, Ponicode is an answer to the following question: who is going to solve the impossibility of producing high-quality code with the speed required by our resolutely digital-oriented economic environment? Today, Ponicode is a tool for developers, but above all it is a technology that allows each line of code written to live for a long time.
Code quality and code security seem intrinsically linked: is Ponicode a code security tool?
Yes, if you take the standpoint that code quality is a source of code security, we are. Ponicode helps developers to test their code and thus reduce the vulnerabilities that can lead to security breaches. The reason there are so many bugs and vulnerabilities in our applications today is that developers don't think about rare and extreme events. Their code is therefore insufficiently tested.
Scenarios that developers aren’t thinking about today can become vulnerabilities tomorrow. A well-known scenario due to developers' lack of anticipation is the Y2K bug. When the software was built, they did not imagine that it would have to display a value beyond 99 (1,999). Artificial intelligence can assist the developer in the same way as it does with doctors, by reminding them of rare diseases during a consultation, helping them to avoid missing the most important diagnoses. In code, these are called edge cases. The platform supports the detection of vulnerabilities by systematically suggesting edge cases, ensuring that the developer can test their code exhaustively and deliver a software to their end users that remains extremely robust over time.
Code languages are first and foremost human languages, does Ponicode AI take into account the personality of the developer?
The personality of the developer is at the heart of our work, because we want to standardise software production while at the same time being a daily partner for developers. This may seem contradictory at first glance. We are creating an artificial intelligence that helps all developers to produce robust, standard-compliant code. So, while the standards are the same for everyone, developers each have their own way of achieving them. Our tool needs to accommodate the meticulous, the rushed, the bored, the beginner or the expert in order to achieve their code quality goals. Artificial intelligence, together with continuous development of our user experience, allows us to produce a flexible and versatile tool to meet this diversity.
Our goal is to become the partner of choice for developers, and this is reflected in our choice of features, our design, and the languages we support. Ponicode makes repetitive, monotonous and time-consuming tasks more accessible, more fun and faster for developers so that they can focus on the creative and innovative parts of their core discipline. This starts with helping with unit testing, but we are already exploring ways to optimise documentation creation and developer reporting.
Code quality for Enterprises
What kind of value does a tool like Ponicode bring to a company?
When we see the numerous leaks and bugs from any software, including the ones built by leading multinationals, we can agree that our industry has not yet reached the required level of maturity. AI-powered coding tools are mostly meant to enhance the developer experience and empower them, thanks to greater velocity and greater efficiency. Behind these developer-focused benefits, I believe we are on the way to allowing software engineers to build industrial-grade software, where quality, innovation, and speed are reached systematically.
AI counteracts human flaws and the downsides of working routines, thus reducing the losses generated by collaboration, work discontinuity, context shifting, loss of focus and information erosion… Consequently, we can put a stop to the sacrifices that we continuously have to make towards achieving quality, innovation or speed.
Enterprises using AI-powered tools are systematically meeting high quality coding standards and they are building new features at a fast rate. We can already see them becoming more competitive and gaining market share over late adopters.
Why is code quality considered a strategic asset for companies?
Three quarters of the software on the market contains security flaws and the cost of repairing bugs amounts to more than 300 billion per year. These staggering figures would be unthinkable in the construction industry, the automotive industry or any other sector that tends to take a zero-defect approach today. Yet companies that produce software consider poor code quality to be inevitable.
This is not the case. To protect this strategic asset, companies must invest in tools. In a zero-defect logic, it is necessary to test early in the development process and systematically in order to deliver robust applications. While code can be a strategic asset, it is still too often just a thorn in the side. Bugs cost on average 100 times more to fix than bugs detected during development.
At a time when developers are a scarce resource, the cost of a bug is estimated at €5,600 per minute! It is therefore crucial to adopt a quality approach in order to protect the integrity and durability of this strategic asset and, by extension, those of the company.
Thank you Patrick for taking the time to chat with us! It's great to have some real market validation at the same time as we are perfecting our technology and reaching major milestones for Ponicode. We certainly have quite the adventure ahead of us! 🚀
Some more resources 🌈 :
We have a video with Patrick on our YouTube where he further discusses the story behind Ponicode and even where our little unicorn came from 🦄
If you want to read more about code quality and the value it brings to companies today, we have everything you need to know in our article; Code Quality; a strategic asset.
You can also check out Patrick's reaction to a statement from Angela Merkel, German Chancellor, on the future of the European economy and the need for Europe to improve their digital expertise.