There are plenty of experienced software developers in Mexico. The domestic economy supports a thriving market for technology businesses. Their experience spans the gamut of programming languages, platforms including mobile, and applications.
New graduates learn English as part of their requirements. Earlier graduates have learned it on the job along with other work experience. In any case, we only hire developers who can hold a spoken conversation in English—this is one of the steps in our interview process.
We can’t speak about “Mexico,” but Hermosillo has a pretty good infrastructure; and it is pretty resilient, too.
Each situation is different and we accommodate each client as needed. In general, however, we generally follow this outline:
- As soon as the contract is signed (and sometimes, sooner), we assign a Transition Team. This team is made up of one to three senior people with the appropriate skills and technology experience. More importantly, these are people who we’ve identified over time as being most adept at quickly understanding new situations and requirements.
- The Transition Team engages with the client, while, in parallel, we bring in permanent staff. As new staff comes in, they gradually take over.
- One of the functions of the Transition Team is to figure out any gaps in tools and processes (i.e., what we use versus what the client uses) and figuring out what to keep and what to complement.
- The Transition Team will also get started with requirements and architecture. When there’s existing software, the Transition Team will review it to identify weak areas and make suggestions for improvements.
- Once the first couple of members of the team are in place, we take advantage of our proximity and usually have an initial on-site visit for training, knowledge transfer and socializing with the client team.
- Other trips are scheduled as needed. Because the flights are short (< 6 hours door-to-door) and inexpensive (~$600), it is easy enough to have engineers travel back and forth for things like re-architecting, new products, etc.
We use several techniques/tools to stay in contact and keep track of things. Each team uses its own combination of tools.
- Daily meetings are a key practice. Maybe as part of a full Scrum process, but not necessarily. These short, 10-15 minute meetings are irreplaceable to keep the team in sync and make course corrections in a timely manner, as needed.
- Everybody in the team communicates online using Skype, Google, Adobe Connect, etc., throughout the day.
- Meetings Minutes.
- Collaboration portals, wikis, document sharing, etc.
We work very hard to find people who fit our culture, and have very good experience. This is not just a “motherhood and apple pie” statement. We’ve had the fortune of working with really high caliber people in the US and our expectations are pretty high.
Although the company is fairly young, as individuals we have a lot of experience hiring world-class technical staff. We’ve gotten very good at recognizing and attracting the “good ones.”
Breadth and depth of experience is important and we look for that first, but sometimes we run into young talent with “superstar” written all over and those go to the top of the list as well.
First and foremost, candidates have a to have very good, fluent English, both spoken and written.
They have to fit and work well with the current staff. Although people are assigned to specific clients, we all have to work well together as a team.
We can make the first few hires for a new team within eight weeks after the Kickoff. For an out-of-the-beaten-path skill, it may take longer.
We maintain a pretty deep pipeline of pre-qualified candidates for various skills. Our recruiting staff is constantly sourcing candidates.
The other side of hiring is attracting the top skilled people. This is made that much easier by our staff, who are very good in their fields and are very enthusiastic about working at Xipe Technology and communicate the excitement to new recruits.
It is our stated goal and company mission to become one of the top 10 best companies to work for in Mexico. And every year since 2008, we’ve had confirmation that we are right up there with the best of them!
No, we don’t just grab warm bodies. In fact, we work hard (and smart) to find people who “think right,” have very good experience and are good team players.
We can do this, and do it quickly, only because we are always looking for talent and keep a long, up-to- date pipeline of candidates.
We follow a 10-step recruiting process and the first eight of those are completed as soon as a candidate is identified. This is a significant, but strategic investment for the company.
- Identify resume with appropriate skills and experience.
- Initial, one-on-one phone interview to spot-check claims made in the resume
Most likely, we will also ask the candidate to transpose his resume to our format. This is important for various reasons,
- Ask candidates to be specific about what they did in their resumes. Not what the company did, or their team did, but about their individual contribution.
- Ask candidates to speak some English up front to determine if they are going to be capable of handling the Logic Test.
The candidate is asked to take our Logic Test that checks out how self-disciplined the candidate is, not what the candidate knows (that comes later). This has turned out to be an excellent tool to identify candidates who “think right.”
Initial, one-on-one phone interview to check level of spoken English.
The candidate is interviewed over the phone by one of our engineers to determine if we should do an in-person technical interview.
The candidate is interviewed by the folks in Hermosillo, in Spanish. We’ve already checked English fluency earlier, so at this stage we want to figure out the candidate’s depth of knowledge in technical areas.
Next, the Task Interview is either a Pair Programming test for developers (including QA Automation developers) or a Manual Testing tasks. This is as close as possible to the typical working environment. The candidate can search the web for information, ask questions, discuss an approach, etc., much like it would happen throughout a working day. During this interview we observe how the candidate works in teams, how they evolve their ideas, how fluent they are using their favorite tools, etc.
An up-or-down decision is made by the interviewing team in what we call the Thumbs meeting.
If the candidate gets a Thumbs Up, then s/he has a final interview is with one or more client representatives. At this point we are pretty confident that the candidate would make a great member of the team.
Reference checks happen.
Terms are negotiated with the candidate and an offer is made.
- to make sure we have complete information on the candidate,
- to make it easier to identify “holes” or weak spots in the candidate’s background,
- to normalize our database of resumes, so they can be compared among each other.
Once the offer is accepted,
- Arrangements are made for the new employee, including the move, temporary housing, desk, computer, telephone, email, etc.
- Our orientation program trains them in our tools and processes so s/he can become well integrated with the existing Xipe Technology team.
Questions of Fit
Our staff has a wide range of experience with many languages and platforms. However, by design, they are assigned to specific client teams. Because of that, when we sign up a new client we invariably have to staff a new team from scratch. This gives us the flexibility to accommodate new technologies relatively easily.
So it really becomes a question of whether we can find people with specific experience in a reasonable timeframe. The answer to that we can make the first hire for a new team within 3-4 weeks on average, six weeks max.
Besides recruiting the right people quickly, we have also demonstrated that we can integrate them into effective working teams just as quickly.
From previous companies, we’ve had the experience of hiring many people, very quickly only to end up with a number of competing approaches to designing and creating software. Over time, these “camps” found it hard to work with one another, to the detriment of the business. This time around we’ve made sure that we would not go through that experience again.
Because of the nature of our business, everybody is assigned to a long- term team and so when engage with a new client we invariably have to staff a new team with new people. This gives us the flexibility to accommodate new technologies relatively easily because we can staff the team with people with specific experience.
The overall SDLC and development methodology does not change because of the technology in use.
Also, having expertise in multiple software technologies gives us the breadth to recommend alternatives that may increase your chances of success.
Yes, that’s true. And that’s why we hire people with experience in the specific technology and eventually form “centers of excellence” (CoE) around the more popular ones. We don’t always manage to do this, but our strategy is to hire very senior people first to create Centers of Excellence around them.
Currently, we can claim CoE around Java, .NET, J2ME, LAMP (including Python) and Lotus. That means that for each of these technologies, we have a number people with a mix of experience that can leverage each other.
Having said that, we work very hard at hiring people with a demonstrated ability to learn new technologies quickly and can just as quickly spot the strength and weaknesses in new technologies. Technology changes all the time and critical thinking is the skill for the long run.
It often makes sense to look for a vendor who has some experience in the overall market your product fits into (e.g., healthcare). While the technologies in use may change, the functional demands of these fields do not, or do so only slowly, so you can leverage a vendor&rsquos experience to your benefit.
Comparing "Offshore" to Mexico
On average, the hourly rates are going to be higher for equivalent experience. However, due to the time, cultural, and geographical proximity, the Total Cost of Engagement (TCE) can be lower in Mexico, by as much as 20%.
Xipe Technology is definitely not the “cheap” solution. If you are looking for a body shop or somebody to do a short-term project, as inexpensively as possible, then we are not a fit.
If, on the other hand, you are looking for a long-term partner to extend your development team, then Xipe Technology is an excellent option for you.
We will be happy to discuss this further. Please, contact us at your convenience.
It depends on what your company does. In some cases, it may still make sense to outsource to the least expensive offshore location. Call Centers, Business Processes, and other backroom activities may even benefit from the time separation. However, having a faraway team does not work if you are developing a software product.
Even under the best of circumstances software development is hard to do well. Splitting the development team across multiple time zones makes it even harder, almost impossible to do it successfully.
If you plan to outsource software development, you should first consider doing it in the US, but still within two time zones of your US-based team. Your Total Cost of Engagement (TCE) will be lower and the risks will be much more manageable.
Alternatively, you should consider extending your team outside the US, but still sticking to locations that are within two time zones from your US-based team. And make sure that there’s good cultural alignment, too. Otherwise, you are going to waste a lot of times paying for misunderstandings (e.g., what does “yes” and “done” mean?).
The best approach, technically, is to have all developers co-located. If it makes sense to outsource, depending on the situation, doing it with a US-based team might be a good choice. In Life 2.0, author Rich Karlgaard describes 150 “reasonably priced US cities and towns you might consider.”
Even then, keep it within two time zones. Going beyond it makes it extremely more difficult to keep everybody in sync and working as one team.
For Call Centers, Business Processes, and other backroom activities then the time separation may be less of an issue. The assumption here is that these functions don’t require a whole lot of interaction between the people in the US and the people offshore.
However, if you are developing software products, this “benefit” does not apply. In this case “working around the clock” is as big a myth as “the mythical man-month.” Even trying to do testing at an offshore facility is problematic, particularly when the teams’ working hours have no overlap whatsoever. For example, having daily standup meetings with people who are more than a couple of time zones apart is not sustainable for most teams.
Engineers need to talk directly to one another, as often as possible. Product Owners need to be in direct, close contact with engineers and not through an offshore Engagement Manager or some other bottleneck. Everybody needs to talk to everybody all the time.
In the traditional offshore setting, the teams will play email ping-pong, sending questions and counter-questions back and forth. One team will ask a question today only to get a request for clarification to the question the next day. This is very frustrating to both teams and causes delays and quality problems.
On the other hand, working with folks in Mexico removes these negative side-effects. Everybody wakes up and goes to sleep at the same time and they can talk with each other and clarify any issues throughout the day.
This is true given the sheer size of those countries, even after taking into account the different definitions of what an “engineering” degree is.
However, India and, in particular, China also have a lot of internal demand for these engineers. This means that offshore vendors will have a heck of a time finding and retaining experienced engineers and project managers.
India’s outsourcing industry has doubled every year for the last four years and the unfortunate side-effect of that is extremely high turnover as offshoring companies compete for experienced people. Also, the rise in salaries and the valuation of the rupee vs the dollar has made India more expensive.
Besides, the critical success factor for software product development is proximity in time, culture, and geography. Having access to a large number of engineers is a moot point if they are 10 or more time zones away and half a world apart.
Hermosillo is the capital of Sonora state. It is a nice, quiet city south of Phoenix. With a population of over 800,000, Hermosillo is a safe, family-oriented city. This, plus a reasonably low cost of living makes Hermosillo attractive for young families.
Hermosillo is a “High IQ” city with over 17 universities and colleges, 12 of which have Computer Science and Software Engineering programs at the BS, MS and PhD levels. This includes a Tec de Monterrey campus. The “Tec,” as it known, is the top school in Latin America.
There are daily flights to San Francisco, San Jose, Oakland, Los Angeles, Phoenix and Houston, the city is within easy reach of Pacific and Mountain states.
It is easy enough to fly in on a Monday and be back by Wednesday. This makes it easy to drop by the office if there’s a need to work with the team face-to-face.