Disclosure: Codacy, the automated code reviews platform, has previously sponsored Hacker Noon. For Hacker Noon readers, they’re offering 15% off using this code: HACKERNOON.
Could you share current numbers on Codacy’s progress, scale and usage?
Currently, Codacy is used by more than 60k developers worldwide, including companies like Deliveroo, Cancer Research UK, Google, Paypal, as well as some of the more important Open Source projects in the industry.
We analyze on a daily basis more than 1 billion lines of code.
One of the numbers that we are more proud of, is that, according to our stats, users of Codacy see a 6% improvement on the speed of delivery of code.
Codacy raised a $5.1M Series A led by EQT Ventures in August. Could you dive into some of the specifics about how and when you are going to allocate the funds? And what drives your decision making (KPIs, Gut Assumptions, etc.) in terms of allocating funds to different divisions and projects within the company?
We want to do 2 main things. The number 1 objective is to continue pushing our product forward. One of the learnings we had so far is that the best marketing and sales strategy in our industry is having a killer product. We want people to be delighted with our offering and really help them in their work everyday. We’re hiring some of the best people in the industry to help us make developers’ lives easier.
Number 2 is to reach as many developers as we can, which means that we will invest in sales and marketing.
What do you think are the most common things holding engineering teams back from better code quality? And how can they be prevented or avoided?
We did a survey where we asked what was the biggest problems engineering teams had. The answer depends highly on their role.
What we see is that technical debt (which could also be seen as code quality) is the #1 problem for developers whereas Managers and Directors say it’s speed of delivery. Funny enough, everyone mentions workload (i.e. being spread too thin) as being their second problem.
So I would it say it boils down to time and the difference in expectations between management and development. Developers understand the necessity and requirement of having time to maintain software. Managers get pressured into putting software out the door so this misalignment causes some tension.
A final funny fact is that #3 problem for developers is management.
Can code reviews become truly automated?
I think that code reviews won’t be fully automated and I also believe that they shouldn’t.
Code reviews serve important purposes other than making sure code looks good. Code reviews serve as information sharing and decision logs. One can share information with other people about the design decisions in a pull request so that other people learn easily what is being done (which is especially useful when you’re working with larger teams in other products).
Our purpose at Codacy is to make sure people are focusing on the right things. Discussing whether your software is doing the right, most efficient thing is more important than discussing basic security or even stylistic preferences. We elevate the discussion in code reviews since we become an extra reviewer looking out for thousands of smaller topics that are important but not as important as you shipping well and on time.
I don’t think anyone is going to argue to change any of the words of Moby Dick, 1984, In Search of Lost Time or any other great novel. These are timeless and continue to be consumed everyday. Do you think code — like literature — can be timeless? Is there code out there that will continue to function as is without need for iterations?
I think the fundamental ideas behind coding remain the same. This is why it makes so much sense to read fantastic books like Structure and interpretation of computer programs. However, the literal form in which these ideas manifest themselves change over time to adapt to different programming languages, paradigms, frameworks and even hardware.
There’s probably code out there written in Cobol that will continue to function as is without the need for iteration but not because of its awesomeness but because of fear of breaking things.
Your Twitter bio claims an interested in “jiu-jitsu.” Personally, I lean toward basketball — and it’s helped my approach to business. For example, it’s better to pass and score than just dribble down and score yourself — even though they’re both worth 2 points. How has jiu-jitsu helped you better approach your business?
I started practicing Brazillian Jiu-jitsu because I was looking for a sport without routine (i.e. no gym). I did one class and after that I got addicted to it. I’ve been trying to distill for a while why I like it so much. I believe it has effects on me personally and my performance on our business.
The first is strategy. When you practice jiu-jitsu, you find yourself many times in bad hurtful positions but with possible escapes. The art teaches you how to be patient, endure and persist through the discomfort in order to get a better position ahead.
The second is perspective. Everytime I enter a BJJ class, I come in with challenges and problems that I’m currently solving. By the time the class is over, I discover that I did not think about them once while practicing. I believe it has to do with a primal part of our human nature. When we are faced with someone that wants to pretend to murder you or break a limb, we stop focusing on the little things and get perspective on them. I’m less fearful and I attack things head on.
The third one is patience. Progress and evolution in BJJ is glaciar. It takes years to be basically competent in it. There are no overnight moonshots that make you good. Much like business, progress is built on many small little improvements that add up over time and consistency and not quiting the most important things.
When you think of Codacy’s overall code base and tech stack, where do you think you are closest to cutting edge innovation?
We do several things well and uniquely.
One is our code analysis infrastructure. We’re able to manage code securely and analyze at scale and elasticity. This means that on any given moment if people are committing and pushing more code, we can scale our infrastructure to produce more results faster.
Another important piece of software that we developed internally is our enterprise deployment system that allows for companies to use the same product that we’re known for in the cloud behind their firewalls. This includes automatic updates, version management, database and core code separation, etc.
Our process is also something I’m proud of. Until very recently with a team of 13 people we were servicing 50k developers and 400 customers — many of them enterprise. Only with a good development process we can support that.
Any bold predictions for the future of software development?
Today you have great platforms that help you collaborate on software development as well as organize a great development process. In the future, I believe we will have smart platforms that will tell you what is good and bad code decisions. These will come naturally from companies that have this data collected, Codacy is a great example of this.
I believe one day AI could help us write software with enviable acumen. This could increase our productivity as software engineers tremendously.
I think everyone will be a coder in the future. Barriers to start coding will continue to go down as a consequence of the big necessity of software development.
If things go to plan, what does Codacy as a product and a company, look like in 5 or 10 years?
Our mission as a company is to help developers at scale by increasing productivity through quality. Aligned with this main vision, our product and solution will continue to grow and improve. We see a future where we can help every company in the world ship better code faser. In 5 years time we hope to be closer to realizing this dream.
Today we’re focused on providing the very best quality automation solution for the most demanding software development companies. If we continue to do that, the sky is the limit for us.