The Sociable's Editor in Chief, Tim Hinchliffe, talks with the director of Marketing and Business Development at Perficient Latin America, about good practices in agile development and the experience of Perficient Latin America as a leader in the export of software development services.
Can you tell us a little bit about what Perficient Latin America does, what it stands for, a little bit of background about the company?
We are a software services company that was born here in Colombia and we've evolved over time to become a Colombia's largest exporter of software services to the US and Canada. We have about 600 engineers now.
Wow! So what kind of clients come to you, what are their industries?
We try to offer very exciting technical challenges to our people so that we can recruit some of the best talent out there and in that sense we work, or try to work, with clients that are somehow innovating in their field, but that can be very varied. We have clients in the advertising space, in the consulting space, in the industrial space, clients related to autonomous driving... many different companies but they are trying to innovate in their field through software applications.
You just mentioned there's a lot of clients in different fields but can you kind of walk through the process of when a client signs up?
For us the most important thing is to develop a long-term relationship with the client. Clients usually come to us looking to expand the bandwidth of their engineering teams, but many clients have done software outsourcing for quite a long time and in the US it's very traditional to look at India or other a part far east or Asian countries for this type of help.
We think that it's only natural when you are doing software development to look for a partner that shares a time zone and, that is now one of the big advantages that we offer, is that we are located in geographically an area that is very close to the US and we can offer services that are very real time. So, we look for clients that want to develop a partnership with a mature company that they want to involve in their day-to-day interactions.
Often in our engagements the client will contact and speak with our teams many times a day to make sure that we are all fully aligned, and this happens because the client is experimenting with a product and many new things come up, new challenges, changes in, or pivoting in, in the initial idea and that has to be quickly taken care of by the development and the engineering teams so we want to have a long-term partnerships with the client there are very real time, very interactive and that is what we offer at Perficient Latin America, and communication is key.
Let's talk a little bit about agile. If I'm not mistaken, a major part of your methodologies are agile based. Can you describe what agile is and what are the advantages of going agile?
In principle agile is a way of working that doesn't anticipate the future or try to define what is going to happen two or three years from now, but it's a very practical approach to engineering. Generally speaking, it basically says, "OK, we have a general idea, a general trajectory that we want to follow in this software product or software engagement, but we are going to test first it in the market," and to do that basically the software development teams create what is called a sprint, which is a short stage of work in which specific functionality or feature of a software is developed, then it is put to test at the market, and then you listen to your clients and understand what they found relevant and what not, and then you go ahead and do another short sprint (one to three weeks) and continue to pivot and to iteratively improve your product to make sure it's relevant to the customers. You find many surprises! Sometimes the original idea didn't stick but a little appendix of the idea became the main product etc.
This is a very common approach to engineering right now rather than going into a cave for six months to develop this application only to find out that it may be irrelevant to a mark and nobody finds it useful, or entertaining, or whatever.
So we talked about trust a little bit earlier so when you're in your services a lot of relationships of course any relationships based on trust so when clients come to you: how do you inspire confidence?
I think in an agile relationship very quickly you can see that the proof is in the pudding. Since we deploy working prototypes from week two or three of our relationship, the client can know themselves or understand if we did a good job or not, if we are creating a quality product or not, if we deploy quality software or not, and they can constantly gauge this every two or three weeks.
In fact, every day when they interact with our teams because they know if we have technical dexterity, or if we are good at communicating, or if we are able to raise red flags early to surface ideas that can help improve the relationship the product or whatever it is that we are doing and that is how we build trust.
We never tell clients they have to stick with us for X period of time or hold them contractually to a long term relationship it's basically like a marriage, I mean, if you're happy every day the marriage would last otherwise you'll break up so it is really as I said before the proof is in the pudding. Clients have developed trust because they see our day-to-day work, the way we interact and the way we fix things when we break them and we accept that we broke them and that is from the communication accountability.
Excellent. So I want to talk a little bit about the scrum methodology: first of all what is it and then how important is this methodology in managing complex software and product development.
I really don't want to get too technical, but scrum is a particular approach to agile. It has certain types of meetings that are held regularly in daily scrum retrospectives and other types of meetings that basically ensure that the team is communicating correctly, doing retrospectives of what just happened and how they can improve, and raising red flags so that everybody can own the project as a team and collectively assume responsibility for a deliverable, for an end product that works and is delivered in time.
So SCRUM is one of the many methodologies we adopt with clients, obviously there's some leeway of how you specifically implement this way of working, but what is fundamental is it's a way of working that iterates to success, based on constant communication and constant experimentation.
Excellent! So just switching gears a little bit, what would you say that your biggest achievement so far at the company both as the company and you personally?
I think that Perficient Latin America was born with the idea of putting Colombia in the map as a relevant software technology hub that could deliver world-class services, and I think Perficient Latin America has done that and we opened up a new avenue for growth in Colombia. I mean Colombia has been a country that traditionally exported coffee or bananas or many other things not worth mentioning, but we are just very proud that Columbia is a country that is exporting ideas, movements, and allowing local engineers to be able to be part of world-class applications that are driving technology and driving disruptive change the world across. I think that's what makes us a global player.
So any interesting software development projects in the works right now for you?
Of course! I've been with Perficient Latin America for around 10 years and what has kept me going and excited in the company is that we always have a new challenge. Right now, our challenge is to be able to continue to recruit the best people and manage growth because if you grow too quickly you might lower the bar for the type of people you're recruiting, if you grow too slowly some clients are not going to be happy that you weren't able to live in the required bandwidth. So, the challenge is hiring the right people and keeping them very happy. We have a very low churn rate: churn is crazy in the software engineering space worldwide! Our churn rate is around 7% a year, which is really world-class in this area and it is because we keep our people happy, they are well compensated but also they have the right challenges to keep them professionally developing in a company.
Any advice for anyone who wants to follow in your footsteps?
I think that the software services space is a wonderful space because it is very varied no two challenges are alike. You get to taste a diversity of industries.
I was talking about programmatic advertising, autonomous driving, big data, artificial intelligence, machine learning, DevOps, I mean there's a lot of things that you can learn about if you like. Even though technology is important in this industry to be successful, to be successful it is not just a technical quest. Having some technical background helps, but managing relationships is key. I mean any software project is about a group of people working together towards a common goal and it has its own complexities technically, but those can be fixed. But, when the group doesn't have the right communication, the right attitude towards learning, towards experimentation, then the group is not going to succeed.
So if you are a person that likes people, likes communication, likes leadership and likes technology, I think the software services it's a great space to be in.