In this podcast Shane Hastie, Lead Editor for Culture & Methods spoke to Alessandro Cauduro about his role as CDXO – Chief Developer Experience Officer.
Key Takeaways
- Developer experience is the experience of the developer with a product or platform, and it involves considering user interfaces, workflows, and automation to reduce friction.
- Improving developer experience is important for businesses as it can increase productivity, speed up developer velocity, and retain developers.
- Skills needed to lead a developer experience role include technical skills and experience as a developer, as well as leadership and communication skills.
- The developer experience mindset involves thinking about the developer as the end user and making the software and technology stack easy to use and helpful.
- To improve developer experience in an organization, it is important to focus on onboarding developers smoothly, removing friction in their work processes, and considering AI as a tool to enhance developer productivity.
Subscribe on:
Transcript
Shane Hastie: Good day, folks. This is Shane Hastie for the InfoQ Engineering Culture podcast. Today, I'm sitting down with Alessandro Cauduro, who is the chief developer experience officer for Azion. Alessandro, welcome. Thanks for taking the time to talk to us today.
Alessandro Cauduro: Thanks for having me, Shane. It's a pleasure.
Shane Hastie: My normal starting point with a guest is, who's Alessandro? Tell us a little bit about your background and what brought you to the chief developer experience role.
Introductions [00:35]
Alessandro Cauduro: Okay, let's talk about it, it's a long story. I've always been a very curious person since a young age. I got in contact with computers when I was around nine years old. Right now, I'm 47. That's been a long time ago when it wasn't very cool to like computers. I got fascinated. I always wanted to see what could be built, and that got me excited and I'm excited till today for using computers. My whole career has been based around using technology innovation. I was able to, because my dad, who was a teacher at university, I started using the internet before it was commercial. In '93, since the very early days when he had to use a modem, everything was very slow. That was still very fascinating. I did computer science at university when I got the chance to go to university. During university, I started ecommerce platform in the very early ages, '96, so that's very early.
There was no way to do online payments. There wasn't many people using the internet. Things were very at the beginning. I continued working in companies that developed websites. In 2000, I ended up creating my own company with my three other friends. It was a very exciting time, it was in 2000. Exactly when we had the dot com crash. Things were more clear are going to happen, but at the same time, there was many opportunities and we knew that the internet was going to be a big thing. It was funny because we had a digital agency, that term didn't exist at the time. We actually helped create an association of digital agencies so that the market could flourish.
The company grew quite a lot. We became a really big independent agency. We have almost 350 people working with digital marketing. When I sold my company in 2020, stayed on for two years and left last year. I was ready for a sabbatical, six months doing nothing, just thinking about life and enjoying life. My good friend of mine who's the owner of Azion, this edge computing platform. Not many developers actually know what edge computing is. Basically, it's a way of distributing applications around the globe so that you can have global scale applications that are very close to the end user and it's sped up and protected. We are a platform that helps do this because a single developer won't be able to do it by himself.
The CEO is a great friend of mine and he talked to me about, we were always exchanging ideas and we saw how developer experience was becoming a very important competitive advantage to companies that have good developer experience. He convinced me to do my sabbatical and come work with him to try and improve the developer experience of the company because it was going to give a great focus on this. Because the company is very engineered focused because they basically run very important sites for banks, for ecommerce, for entertainment. They're very focused on having a 100% uptime. There wasn't a specific focus on having a great developer experience. That's when I joined. We discussed how this could happen and we decided to create a role for it, a C-level role. Because we understood that this had to be a C-level role. Otherwise, we wouldn't be able to prioritize developer experience within the company. That's a short introduction, but actually it was a long one.
The importance of developer experience [03:50]
Shane Hastie: A really pertinent point there about elevating the developer experience responsibility to the level of a C-level role. Before we go into that, let's just explore, what is developer experience from your perspective?
Alessandro Cauduro: Developer experience is exactly what it says. It's the experience of the developer or the end user with your product or platform or service. It's similar to user experience, but using developer experience principles. For a developer, the user interface is not just the web, the CLI, the common line interface, the APIs, the SDKs VS Code plugins. They're all the interfaces that developer uses. We have to think about the workflows that the developer does and help him make it as seamless as possible. That's a great sum up of our developer experiences.
Shane Hastie: We talk about friction in the developer experience. How do we reduce that friction? How do we make the flow of development more effective?
Removing friction in the developer experience [04:54]
Alessandro Cauduro: I think that the best way is to understand what these flows are and see where there's opportunity to automate things, be it when the user is first using our platform for the first time. It has to be obvious how to do things, and we have to guide the user on how to do things so that he feels that he doesn't have to look at the documentation. I always say to my team that if the end user doesn't look at the documentation, that's because we've got a great developer experience because things are just obvious. That's one of the ways you can also talk to the end users and ask them what are pain points that they're having. We always be putting yourself in the shoe of the developer and thinking, how could this be better? Also, thinking about what's the traditional way the market does it?
Because developers already familiarized with some ways of doing things. There are some cases, there's no need to create something to do it in a different way that's already been done, that's already established. The developer experience is becoming very important in business. Even we have some clients that they have developer experience for in-house, not for the products specifically. Say, they have like 1000 developers, they want these developers to be productive. They want these developers to be satisfied. They want to get from up to speed. They don't want to lose the developers, so it's a cost-saving, productivity, speeding up developer velocity. That's why developer experience is so important.
Shane Hastie: Developer experience, removing the friction, important and valuable for organizations. What skills does somebody need to have to lead a developer experience in an organization?
Making developer experience a C-level responsibility [06:28]
Alessandro Cauduro: Apart from leadership and good communication skills that any C-level needs, I would say lots of technical skills and experience as a developer. I've been in a C-level position for almost four years, and I still code every day because I like it. This position for me is perfect in the sense that I did both positions as a CEO of a company, and also, that I totally get what developers are doing. I enjoy it. When things are not so obvious, it's clear to me. Many things we don't need to talk to the users that we know that we need to improve. Once you do the basics, then you need to go and talk to the end users to see how it can get even better. Basically, putting yourself in the developers' shoes is very important as a C-level. The position of a C-level is important because this is a company mindset. This is not just a company area.
We have to talk to the product team, have to involve the education team, engineering, sales, customer success, all these teams. They have to understand why developer experience is important and why we have to focus on making it better every day. Today, within my team, so I call it a mindset, a company mindset, not an area, but we have a marketplace in our edge computing platform. We have developers creating templates so that you can get up speed with partners and our own solutions. It's just single clicks that will automate complex configurations for you, integrations with Terraform. Everything that we can do that makes the developer very familiar and speed up the use of the platform, we're focused on that right now.
Shane Hastie: You describe it as a mindset, so a philosophy. What's core to that mindset? If people are thinking about improving the developer experience in their own organization, what philosophy or mindset do they need to bring in?
The mindset needed to elevate developer experience [08:15]
Alessandro Cauduro: Basically, you have to think about the user. That's obvious, but sometimes it's not practiced. A simple example that when I joined the company, so we had a CLI, and it was difficult to use. You had to know the commands on how to use it. I asked, "Why don't we just offer the commands to the end user, guide him through the path of doing something. That's a change of mindset. You're thinking about the end user, not just developing the software, the technology stack. Everything that's been done in the organization has to think about this, not just deliver a feature, but how can we deliver a feature that's easy to use that will help our end users?
Shane Hastie: If I'm doing this inside an organization for whom software is not our business, let's say, I'm a bank, but I've got a development group, a large IT team, probably hundreds, maybe thousands of people spread across many locations around the world. What do I need to do to start improving that experience for these people, for my people?
The importance of onboarding [09:11]
Alessandro Cauduro: You have to understand what's the best way to onboard your developers to your company so that they can be productive as quickly as possible. How can they find the projects? How can they find the people that are working on the projects? Basically, look at these internal workflows of software development. Even though a bank is not a software company, it needs the developers. Basically, the whole economy is a digital economy, even if you don't sell digital products nowadays. You have to think about removing the frictions that develops. Google and Facebook and all these big tech companies, they have their own tools internally because they have problems that no other companies have.
Using AI to improve developer experience [09:48]
They want to get the developers to be able to achieve what they need to do that's different from other companies. Thinking about what can be done to make the work inside the company easier. AI at the moment is a big developer experience thing that we have to be thinking about. There's lots of opportunities. In our customer success team, we trained all our tickets and all our documentation and all our software so that the team can basically use AI to respond to the clients in a very simple way. It was like, the client needs to do this. He can ask the AI, how can I do a GraphQL query that will do whatever the client is requesting and it works. Even for the internal team, this is a good developer experience in that sense.
It's easier for them to do their tasks. AI is everywhere nowadays. We're using it for questioning our knowledge base, even trying to do design to code so that we speed up the development process, code generation. We did something very cool that we did a ChatGPT plugin that talks to our API. Instead of having to call REST-based API, we can just say, ChatGPT, do this for me, configure my API to do this. You don't have to know if the command exists or not, how do you use it? If you don't give it the parameters, ChatGPT will ask you, please tell me this information. Much easier than having to read the documentation. AI is very good for developer experience, lots of opportunities to make products better.
Shane Hastie: If we can dig into that AI for developer experience, of course, there's the hype cycle as well that says AI is going to write the code for us. We're not going to need developers for the future. Are we heading that way?
Alessandro Cauduro: Maybe a couple of years. Not there yet. I believe that we're going to be AI pilots. They're going to be our assistants. Things just go so fast. I don't know. It's very hard to predict the future in that sense because technology moves so fast. Right now, my thinking is that the AI will be our assistant, that we become super humans with the AI in that sense. I don't know if we'll ever reach artificial general intelligence. That's a more philosophical discussion there.
Shane Hastie: What are things that people need to be careful to avoid? What are some of the common mistakes that get made when trying to improve developer experience and getting it wrong?
Alessandro Cauduro: Normally, when you do developer experience, you're improving something that's obviously wrong. When you're overdoing developer experience, I think maybe the answer would be doing something that you think is important but your end user doesn't think is important, whatever that is.
Shane Hastie: Turning that around then, what are some really good practices that people need to consider when looking to improve developer experience?
Good practices for improving developer experience [12:28]
Alessandro Cauduro: Like I said before, we have to think about the whole developer life cycle in development. Whatever your platform does, how are you helping the developer? How is that integrated into his developer workflow? How do we make it easier for him, whatever task he's doing? We have to be thinking about that. Some things that we like to do is to open source our solutions. We can't think of all use cases for our clients. When they have specific use cases, they can contribute to our open source. If they can change whatever we're doing, we like to open up your communities as well, because engaging developers to talk amongst each other creates a better developer experience. Sometimes they get stuck in specific use cases and they can help each other. Education is very important in developer experience. Getting developers up to speed very quickly, be it an easy product to use, or creating learning paths, getting started templates. Those are good developer experience principles to have a place. Basically, thinking globally about how you are helping the developer achieve something.
Shane Hastie: Alessandro, thank you very much for taking the time to talk to us today. Some interesting ideas and motivation for people to look at elevating the developer experience role to a very senior level. If people want to continue the conversation, where do they find you?
Alessandro Cauduro: They can find me at Twitter @alew3 or LinkedIn, Alessandro Cauduro, just search me. Not another Alessandro Cauduro out there.
Shane Hastie: Thank you so much.
Alessandro Cauduro: Thank you very much for having me.
Mentioned