The Salesforce Developers website will undergo maintenance on May 29, 2024 from 3:00 a.m. UTC to 10:00 a.m. UTC. The maintenance process may affect the availability of our documentation. Please plan accordingly.

Join us as we chat with Nicolas Vuillamy, CTO at Cloudity, about his journey from programming on a Commodore 64 at the age of 10 to becoming a professional developer at 16. Listen in as he shares his experience of discovering Salesforce and how the Trailblazer community played a crucial role in his growth. Nicolas talks about the inception of SFDX-Hardis, an open-source project designed to help developers and administrators implement CI/CD processes efficiently, filling the gap between expensive homemade pipelines and third-party tools.

In this episode, we explore how SFDX-Hardis allows administrators and developers to perform complex tasks with simple commands without needing extensive knowledge of Git or SFDX. Nicolas also highlights the importance of having a release manager with Git expertise to handle more complicated tasks like conflicts. Hear the story behind the creation of a purging flow versions command and how feedback from colleagues contributed to the SFDX-Hardis roadmap. 

Don’t miss this fascinating conversation with Nicolas Vuillamy and learn more about the powerful SFDX-Hardis project!

Show Highlights:

  • What SFDX-Hardis is and how it works.
  • What the role of a release manager with Git experience is.
  • The importance of the project being open source
  • How new features are handled 

Links:

Episode Transcript

Nicolas Vuillamy:
I started at 10-years-old on Commodore 64 programming, so it was in BASIC.

Josh Birk:
That is Nicolas Vuillamy, CTO over at Cloudity. I’m Josh Birk, your host of the Salesforce Developer Podcast, and here on the podcast you’ll hear stories and insights from developers for developers. Today we sit down and talk about SFDX-Hardis, an open-source project that’s designed to help people get up running with CI/CD. But we’ll start as we often do with his early years.

Nicolas Vuillamy:
But maybe we’ll skip to the part when I became a professional developer at the age of 16, and I spent 20 years in DXC Technology working on insurance software backend. And someday my boss asked me, “Hey, Nicolas. We need to do something on Salesforce for our backend.” I said, “Okay. Let’s work in Salesforce.” And that’s how I fell into the Trailblazer Community.

Josh Birk:
Really? So wait, what was the first project you did with Salesforce? Was that like an integration project then?

Nicolas Vuillamy:
It was an ISV, an AppExchange project, because we had a big pre-sales campaign and our competitor was saying, “Oh, these guys, they don’t know how to do something on Salesforce.” And we said, “Okay. Let’s launch Salesforce and let’s do it,” and we made a PoC within a few months. But even a few weeks for the first PoC. We had built it was a still called Community, but now it is [inaudible 00:01:44] application for helping so people to see how far their contract, their placement with a direct connection to our backend application.
And what was fun is that in all my team, no one ever did Salesforce before. And that’s why we liked a lot of Trailheads. And it is at that time I discovered that the Salesforce community was really helpful, because Salesforce, it is well documented. But when you don’t know, it is nice to have people you can ask and I have seen that there is a lot of people in the community that help for free. That’s why I tried to become one of those guys now.

Josh Birk:
Nice. Nice. Quickly, how would you describe your current job?

Nicolas Vuillamy:
So as a CTO, I do many things. I do strategy, I do organization, I like a lot to do some pre-sales campaigns too. Sometimes I even code. Yes. I like my mind to remain sharp and not doing just managing stuff. So I also personally try to develop our AppExchange digital offer, because it’s a topic I started with and that I like a lot, especially the product approach compared to the project approach, which is nice, but I like to build things that are used by the most possibly people. And doing products, it allow us to have a bigger reach than projects.

Josh Birk:
Nice. Nice. Well, let’s jump a little into SFX… Oh my gosh. I can’t believe I’m… SFDX-Hardis. Thank you, mouth. What’s the origin story here? When and why did it begin?

Nicolas Vuillamy:
So SFDX-Hardis, basically it’s when I started in strategy a little bit more than two years ago, we had a very few projects working with CI/CD process. And it was all homemade by plans. So meaning each project has its own scripts mostly in Bash. Also in Groovy. And it was long and hard to set up. So as we are a fast-growing company, when I started we were 150 doing Salesforce and now we are 350 three years laser.

Josh Birk:
Oh wow.

Nicolas Vuillamy:
So it was clear that we needed to have an industrialized CI/CD process. And we had this knowledge about how to do it, but we didn’t want to repeat ourselves on each project. So we decided to package everything that is common to all projects in order first to implement CI/CD faster and for [inaudible 00:04:57]. And also we decided to expose it as open-source to share what we do with the Trailblazer Community, because part of SFDX-Hardis relies on other SFDX plug-in like SFDX-Git-Delta by Sebastien Colladon, like Salesforce Data Move Utility, which is an SFDX data loader by Hameroff. And also tech save SFDX plug-in by Fabien Taillon.
So basically for our needs, we used what was provided for free by others. So why not ourselves provide it to the Trailblazer Community what we create to manage our projects as it can be usable for other projects? So that’s how SFDX-Hardis started. We could have still have made the choice to pay for data tree or tools like [inaudible 00:05:48], Salto, [inaudible 00:05:51]. There is a ton of them. But as we didn’t know which one to choose and as none of clients would have accepted to pay for something which is not perceived as tangible, so we decided to go with our proper tooler and to share it. And that’s where it started off.

Josh Birk:
Nice. Nice. Does it play nice with products like yours that are Copado in case somebody’s already using those?

Nicolas Vuillamy:
Yes, yes. Sure. Sure. Because we don’t sell anything, first. So basically, their products are best because there are 100 of people working on it everyday. So they have a lot of UIs. They have full research and development teams to build them. So we will not try to compete with anyone. Let’s say we just fill a gap and we accept and we encourage everyone who are in the same situation than us, meaning expensive and completed homemade pipelines versus expensive tools. We want to be in the middle and I think we already are. The more users there will be, the more contributors there will be and the more awesome SFDX-Hardis will be. So if anyone is listening, please give a try to SFDX-Hardis. It’s really good.

Josh Birk:
Well, so I had this question down the road. That’s good. Let me jump to it. How core, like how important was it for you for this to be open source? You sound like you’re kind of an open-source advocate and it sounds like that was central to the concept of releasing.

Nicolas Vuillamy:
Yes. Yes. I fell in open-source some years ago working with Lindus. Maybe you know him [inaudible 00:07:51]. And when I started to industrialize stuff in Cloudity, for me it was clear that open-source was the good choice because okay, it means that you’ll give tools to your competitors, but it also means that your competitors will contribute. So people like me with engineer background, of course we care about how much our companies, when they do whatever. But there is also a lot of passion here and collaborating with people with great minds to build shared big stuff is really a principle that I like and that I try to transmit to everyone I work with. So anyway, in the Salesforce ecosystem, there is enough clients, enough integrators. There is a share for everyone of the big cake.

Josh Birk:
Nice. Nice. Like it. I like it. Tell me a little bit about the name Hardis. What does it mean exactly?

Nicolas Vuillamy:
So Cloudity, Cloudity is the name of our company today. So like I said, 350 colleagues. We are mostly Pan-European. We do [inaudible 00:09:10], Marketing Cloud, Pardot, Mersoft, Tableau, et cetera. We also progress on vertical licenses in Salesforce like consumer goods or manufacturing. And I know it is not the answer of your question, but I will get to it.

Josh Birk:
That’s fine.

Nicolas Vuillamy:
Cloudity is a subsidiary of Hardis Group, which is a French company. It’s a French company mostly known for logistics software. And we were just a business you need doing Salesforce, but really our business, we are a pure player. We wanted to be known with a name. So some months ago, we married with a company name, the Cloudity. And as their name was already known as a pure player, so we decided to create a subsidiary with them and to share their name.

Josh Birk:
So in the documentation, you say that Hardis can use simple commands to do complex tasks that would normally take hours. Can you give me a few specific examples of that?

Nicolas Vuillamy:
Yes, sure. So basically, when you use Salesforce DX row commands, you need to for to write many of them, you have also to handle Git operations, you have to know how to call different commands, and one of the goals of SFDX-Hardis is to expose CI/CD management for administer tasks. And I’m sure we’ll know administer tasks. And if you go to them and you just say, “Okay. So you will start to work on this project and work on this project. You will have to do a git fetch, a git pull, a git add, git commit, SFDX blah, blah, blah, blah, et cetera.
And for people who are not very technical, if you ask them to do that, and believe me I tried, you are not well received. So the first attempt in order to avoid that, we have to learn many commands was to embed low level commands and orchestration within SFDX-Hardis command. For example, if you do SFDX-Hardis work new, it fetches the latest version of the integration branch where you will publish. It creates a new branch. It selects an org or it creates a scratch org. It automatically assigns permissions. It can run initialization AppExchange. And it can also load data to your sandbox or scratch org.
So it means that in one command, you have a ready to use Salesforce org to work with. So for me, it was already a great achievement. So I was so happy. So I went to my preferred administrator and said, “Hey, Mike. You know it is just one command. It’s easy.” And he replied to me, “Go to hell with your command lines.” So I said, “Okay, okay. I’ll see what I can do.” And no. I love him, but he didn’t like command lines. So okay. So you don’t want to write command lines. I will create a menu and you will have to click.
And then it was mostly because of my colleagues that we created VS Code, this SFDX-Hards extension. And now for all administrators and developers or whoever job working on SFDX-Hardis CI/CD project, they work with clicks and no command lines. What is a bit strange of SFDX-Hardis because it allows anyone to do complicated stuff with just the clicks. So maybe it reminds you a CRM platform that we know.

Josh Birk:
Nice. Nice. So administrators can come to this in a very friendly way. So how important is it to have a working understanding of Git, or is that kind of all abstracted for them?

Nicolas Vuillamy:
For administrators, they don’t need to know Git because all the Git and SFDX operations are done in background. They just click on menus. All they have to do with Git is commit. So basically, they click on the menu saying, “I completed my task. I want to publish,” and in background, it does the retrieval of the deleted metadata. And they just have to select the files that they want to commit. And again, it is with clicks and that code. And then they have to create a product request or a merge request, depending on which platform we work on, and then the CI jobs take the relay.
And if of course there is some complicated stuff like Git conflicts or whatever, on each project it is important to have a person named as release manager that will have the Git knowledge and will handle this complicated stuff. But basically, unless SFDX-Hardis project, you just need one person knowing Git, not all the others.

Josh Birk:
Got it. So the end users who are responsible for figuring out what’s going to get committed, what’s going to get put into production, they can kind of write on the abstracted layer, but your recommendation is to have a release manager who understands branching strategies and forking and all of that kind of good stuff.

Nicolas Vuillamy:
Yes, yes. You have to have someone knowing that, because we cannot ask anyone to merge conflicts between flows. For example, even for me it’s difficult sometimes. So I think that we have a lot of great people which are very good at their job, but not let’s ask everyone to know everything. Let’s help everyone focus on what they do best, and admins, what they do best is configuring Salesforce. We don’t want them to be a Git expert. Even if some of them are more and more becoming some, I am thinking to my colleague Andrenique, who is no… She never wrote a single line of code, but she’s able to set up SFDX-Hardis on a new project. So it is even the upper level and the release manager, it is set up manager. We have some people like that. It’s funny because some people who are not so technical in their background, they discover that they like technical stuff. It’s also a entrance door for those who are interested.

Josh Birk:
Very, very nice. Tell me a little bit about the future. Is there anything on the roadmap you want to give a call-out to?

Nicolas Vuillamy:
The roadmap. So like many open-source tools, there is no clear roadmap, because the roadmap is based on the requirements and needs that we have on our projects and what our contributors have on their projects. For example, I work with a [inaudible 00:16:26], which is one of our clients. Also [inaudible 00:16:30] who learned very fast how to be a release manager with SFDX-Hardis at her company use. And when they complain about anything, they tell me, “Okay. Let’s make a new feature. Let’s make an enhancement.” So it is from feedbacks that we build the roadmap, but also I try to add some new stuff.
So I started to work with Dutch, a guy I never knew two weeks before which is named Ruben Aleman. And he made very interesting open-source tools to analyze the consistency of flows. So we are currently working together let’s say to make his SFDX plug-in a little bit more user-friendly and industrialized. And when we will have completed, so we plan to complete that this summer, I think I will add it within SFDX-Hardis CI pipeline. That will allow, for example, to block merging when there is hardcoded IDs inflows or bad practice like that. We take IDs wherever they are.

Josh Birk:
Well, I think that speaks not only to the strength of it’s an open-source project, it’s a roadmap created by poll or request, but also if I’m hearing you right, it allows you to curate the plug-ins. So if somebody comes up with a neat idea, but you can make sure it still has that Hardis plug-in feel that’s still going to be admin-friendly, right?

Nicolas Vuillamy:
Yes, yes, yes. We have commands that are used just by admins and not in CI. I have a short but funny story I think. The first SFDX-Hardis command is a command to purge flow versions, because when you are an admin and you config your flows, every time you save, it creates a new version. So if you are in a sandbox, I think the maximum is 50 versions of flow. And when you want to continue working, you have to delete one by one manually the flow versions. And I heard about my colleague, Andrenique, complain about that in the open space. And, “Oh, it’s boring to click, click, click, click.” I say, “Oh. What is bothering you? Tell me. Okay, we’ll make a command.” And it was the first command of SFDX-Hardis.

Josh Birk:
And that’s our show. Now before we go, I did ask after Nicolas’s favorite non-technical hobby and he got technical on it.

Nicolas Vuillamy:
My favorite hobby. Do I surprise you if I reply open-source? But I also play soccer. I like beers. I live with guinea pigs. I have a full life, but open-source is before all a hobby and I am very happy to have managed in some ways to be paid for that.

Josh Birk:
I want to thank Nicolas for the great conversation information. And as always, I want to thank you for listening. Now, if you want to learn more about this show, head on over to developer.salesforce.com where you can hear old episodes, see the show notes and have links to your favorite podcast service. Thanks again, everybody and I’ll talk to you next week.

Get notified of new episodes with the new Salesforce Developers Slack app.