The Art of Collaboration and Remote Work: A chat with PM Jesús Magaña.

The Art of Collaboration and Remote Work: A chat with PM Jesús Magaña.

Working with a team is always a challenge, and doing it from another country is a craft. So we sat down with Jesús Magaña, one of our experienced Project Managers to talk about remote work, teaming-up, and the best parts of doing home office. Enjoy!

What does “collaboration” mean for me? Well, since school, teamwork gets a bad rep, as it mostly means dividing homework between several people. A student writes an introduction, another one does the illustrations, another puts everything together and someone prints it at the end, right?

Okay, what does a Project Manager do? I coordinate teams of people every day, so we can reach the agreed milestones of any project at every step of development until we complete it.

There are lots of issues that need to be solved during a successful development cycle, that go from personal problems to more technical issues, like faulty connections, server troubles, to limitations I try to mitigate. You know, the usual “Ah, I can’t get this thing right”, or “We are missing this thing to move on”.

It’s said that a PM manages time, budget, and scope. In reality, I manage people, which requires the usual soft skills. How do you tell a client that something has to be delayed without harming the relationship? How do you bring an issue to the team and correct it? What words do you use to give feedback?

The Art of Collaboration and Remote Work

This already has lots of nuance in a normal job environment, where certain situations are more easily approachable when you have a team physically there with you, like going to someone’s desk to check a task’s progress, knowing who is present by looking at their seats, or being available for the team when a problem arises. “Hey, I want to show you this real quick”, or “Can I get your opinion on this”.

For a Nearshore development company like Scio, with collaborators all over Latin America, these situations are different. Bonding and communication have to be considered differently, traded for some advantages that not every company has. 

After all, it opens a ton of possibilities in terms of the kind of talent you can work with, be it from your city or an entirely different country. I would have second thoughts about moving elsewhere to work, and the option to join remotely allows us to meet talented people with affinities to everything relating to software, which is great for the overall talent we have at Scio.

Also, more and more clients are trusting the capabilities of Nearshore development, as this industry is particularly capable of incorporating remote models of work, and needing everyone in the same office is increasingly unnecessary.

The Art of Collaboration and Remote Work

Now, as you can imagine, I spend most of my time on calls and videoconferences. When the pandemic started and we had to move to our homes, it was somewhat uncomfortable. “Oh, they are going to see my house”, or my wife or children would pass behind me inadvertently, but you learn to deal with that.

I know being on camera can be awkward. Maybe it’s just me, but seeing myself on the screen is distracting, as I wonder how everyone else looks at me. I turn that off and try to avoid it, although watching everybody during a meeting forges a sense of teamwork.

Using these tools well is important. In the apprenticeships here at Scio, for example, new developers get training and experience, and doing it online can be difficult. They see someone explaining something on a screen, just like online classes, and there is no sense of a difference between a school setting and a professional one. 

The challenge, then, is communicating Scio’s culture to everyone joining us. Is necessary to develop a sense of camaraderie, even remotely, and something that worked for us is having leisure sessions where everyone, even project leaders, can mingle and play something together. We don’t talk about work during these sessions, the point is forming a relationship beyond that, creating the bonds we need to work well together.

Collaborating is understanding that, even if we have different roles, our goals are shared, with an attitude of “Well, I finished my tasks, and it’s only Wednesday. The sprint finishes on Friday, let me see if someone needs help”.

The Art of Collaboration and Remote Work

In soccer terms, if a striker scores three goals, he has achieved something great individually. But if the team gets scored against four times and loses, that was pointless.

Collaboration is seeing yourself as part of something bigger you help to accomplish, regardless of your personal objectives.

And you have to keep in mind collaboration with clients directly, the other side of the coin in Nearshore development. Every client has a different approach to every project; sometimes they join during every scrum each week, and sometimes they have more of a “Nice job, see ya’ll in a month for the demo!” attitude.

I prefer a close client; I can create certain transparency where they can see how your team functions with an inside look into the kitchen, so to speak, to see what we are putting on the pizza they want, asking questions, and requesting some changes.

At Scio, transparency is key. Scrum helps, giving the current status of the project to everyone involved, not only the leads. “I’m working in so and so, that’s going well, but this other thing has these issues”, and that helps us to not see each other as individual pieces, but as a unit building something together.

I like the way we are working together now. The team is more productive, and although I miss the old office dynamics, remote work opens tons of connections and made a lot of changes in my personal life. 

The Art of Collaboration and Remote Work

Do you want to know something cool about working from home? I have lunch with my kids every day. I used to eat out of Tupperware at the office, but now it’s a break when I can spend more time with them. 

You see, when your job is transmitting the culture of Scio to everyone collaborating here, dealing with people in a professional, empathic, and understanding way from home, your kids can see it too, and are probably learning something very valuable in the process.

Developing soft skills in other people is part of my job. For example, the responsibility of the developer is to give estimates of the time a task is going to take, and for a junior dev, these estimates are more of a personal wish than realistic plans. So, as PM, I might have a better understanding of the work involved, and I need to communicate that in a respectful and empathic way. 

In other words, being a Project Manager today is different. You need to create an effective working environment, make a team self-directed without someone checking every step, while forging a strong relationship with a client with enough transparency they can see results every week.

Taking my soccer analogy back, to be an effective Technical Director you have to know the game, playing matches in every position possible. I’ve been a Developer, QA, analyst, and more, and having those perspectives are crucial to understanding everyone on the team. 

In-office or remotely, the point is motivating the team to give their best, solving anything that gets in the way of achieving a successful project. Is transforming teamwork from a chore into the best possible way to work.

Remote Work: Soft skills for a successful team

Remote Work: Soft skills for a successful team

By Scio 

The importance of soft skills in the workplace cannot be overstated, and doubly so for remote work, when coordinating a team you may not know in person is the core of a successful project. But how to apply those skills?

It’s no secret that managing an effective team requires a special kind of talent, one able to bring the best of every individual in the team, while also keeping everyone on the same page, looking at the same goals. In the old days, you could achieve it by having close proximity with your collaborators, keeping an eye on their needs and difficulties, and doing your best to lessen them to create an effective working environment.

But yeah, that was when the office environment was a given, and managing was a face-to-face affair. However, in the New Normal, where remote work is becoming commonplace, probably with coworkers living in entirely different continents, the skill set necessary to complete a well-done project is changing. 

How do you communicate an effective company culture remotely? What do you need to manage talent through a screen? Here at Scio, where working remotely has been the norm since the very beginning (both with clients and collaborators), we know how important these skills are, and how they will become more sought after as this organization model becomes more commonplace.

1. Communicating through a Zoom call: More difficult than you think!

Remote work is a skill: What do you need to know.

Hey, raise your hand if this situation is a tiny bit familiar to you:

Trying to make a joke on zoom – YouTube

Yeah. As we all know very well, conducting a videoconference is tough, as reading your coworker’s body language, emotions and predispositions are nearly impossible at a distance. Humans are social creatures, designed to pick up on gestures and the tiniest social cues while talking, and doing so through the barrier of a Zoom call is an important skill to attain.

That’s why implementing clear communication rules, and enforcing them effectively is so important. Simple etiquette rules (like turning the mic off when not speaking, giving space to questions and answers, or RVSP any invitation), assigning a person the specific task of conducting the call, as well as being clear if the call is more formal (i.e. presentations with clients) or informal (like a brainstorming session) can make a world of difference in the way a team functions.

Once your collaborators internalize these rules, further strategies will be easier to implement, and you will avoid awkward scenarios like that one.

2. The importance of choosing the right tools

“An artisan is as good as his tools”, the shared wisdom says. And that’s true whether you are talking about making a vase or developing a software app; selecting your tools well is just as important as the technical knowledge applied behind. 

Zoom is a good example of the pros and cons of these tools. There are plenty of reasons why Zoom became the choice to work remotely during the pandemic (it’s friendly to use and offers a good range of basic options), but that doesn’t mean this software lacks drawbacks (like its lax security) you need to take into account.

The same is true for any tool you have at your disposal to manage teams and projects, and learning to choose and use them effectively is a valuable ability in any remote team. There are plenty of options to try and decide, but also don’t be afraid to discard anything that is not helping the team to reach their objectives.

Here at Scio, for example, beyond the usual suspects (Microsoft Teams, Zoom, Trello, etc.) we developed some internal tools, like an internal guide with the names and positions of everyone in the company, or a proprietary clocking-in page, that we continually improve and tailor to fill the needs of our clients and developers, making sure all of our developers and collaborators have any piece of information they might need.

3. Remote company culture is possible

As we mentioned, certain skills are needed to do remote work well, and these will grow in importance as more projects realize the potential of Nearshore development.  The importance of soft skills has grown in recent times, as being able to communicate with your team is just as important as the technical talent you have behind. So what do you need?

  1. Have clear expectations: For anyone joining an organization remotely, knowing exactly what’s required of them helps build boundaries and focus efforts on things that matter. Lay them out at the beginning, and should have no problems making everyone work towards the same goal.
  2. Create working structures: For remote teams, lack of structure on a given day can be an obstacle to productivity. That’s why good team leaders establish a clear schedule of deadlines and meetings and explain in certain terms where a particular collaborator fits into the workflow. 
  3. Determine delivery: In a traditional office, the time in front of the computer seemed to be just as important as the work being delivered, which of course is unsustainable in a remote environment. This is why an effective manager keeps track of the actual output every review (let’s say, once a week), to determine the effectiveness of the collaborator, who can set their rhythm with flexibility. As long as the project delivers by the agreed deadline, everything else becomes unnecessary.
  4. Encourage social interactions: The best teams have chemistry and rapport behind their collaboration, and managing that remotely is truly a challenge. That’s why social interactions are important; celebrating important holidays, giving them channels to communicate freely, and organizing activities for fun help a lot and creates familiarity between co-workers that otherwise will never happen. 
  5. Give ongoing feedback: Good feedback is the lifeblood of any team, and for remote teams, doubly so. Being gentle with it, but also effective and certain, is an important skill for everyone on a team (not only leaders), and learning how to give and receive feedback is critical to delivering better and better projects. 

4. The Key Takeaways

So, what does this all mean? That the best remote teams are those with strong structural support behind that lets their talent be used to its maximum potential. So we can have these few takeaways of the soft skills behind an effective remote working environment

  1. Pure technical knowledge can only get you so far. Managing with a wide range of skills helps everyone feel part of a team in order to achieve objectives.
  2. Remote working needs certain flexibility to function, but firm boundaries keep the team focused and productive, from a simple call to delivering a whole project.
  3. A good company culture needs to be clear and well communicated, and implementing it effectively means the difference between a good team and a so-so one.

This is clear for us in Scio, as our Nearshore model is designed to use these methods to their fullest, and guarantee that any project you have in mind has the right team for you.

Doing Nearshore in LatAm: Differences between countries (Argentina, Brazil, Colombia, Costa Rica, others)

Doing Nearshore in LatAm: Differences between countries (Argentina, Brazil, Colombia, Costa Rica, others)

Latin America’s influence as a major provider of nearshore software development and IT outsourcing has the world taking notice. Especially considering they offer tax incentives, a growing population of English speaking workers, and a rapidly improving telecommunications infrastructure. 

How do you decide which country best suits your needs? What are the costs, cultural differences, and challenges to consider before making a final decision?

We wrote this article to help you on your quest to find the perfect nearshore partner:

Cultural Differences

You’d be forgiven for thinking most Latin American countries have similar cultures based solely on proximity and shared languages. The truth is that each of the 20 countries and 14 dependent territories that stretch from Mexico to Tierra del Fuego on the southern tip of South America have their own unique ways of living and doing business.

 For example, the Spanish language dominates in many countries, but the vocabulary and dialect shift widely based on region. Some words more closely resemble Castilian (European) Spanish versus others that are inherent to the local populace. Countries like Brazil speak primarily Portuguese, while some countries still speak Dutch or French. Argentia boasts the highest population of English speaking citizens, followed closely by the Dominican Republic, Peru, Ecuador, and Mexico.

 Many countries have more of a relaxed attitude about space and time as well. One such survey found that 83% of Chileans believed it was acceptable to be late to a social gathering, whereas 43% of Argentinians concurred. Being late to work is less acceptable. Generally, people in Latin America dislike rushed meetings or back-to-back appointments because they’re seen as detrimental to trust and relationship and building.

Direct and Indirect Costs

Outsourcing software development, as an example, will run you between $20 and $50 per hour in India. Latin American developers cost around $40 to $70 per hour. When comparing costs on absolute figures, Asia is the better route, but you should also consider indirect costs such as expertise and how many hours it takes to complete your project. Or the cost of waiting since contrasting timezones across Latin America and the world can really set a project on strict deadlines back.

If you’re weighing options in several Latin American countries ask about project timelines, possible delays, direct costs, and any unforeseen indirect costs that may arise.

Timezone Challenges

Countries like Mexico and Costa Rica have a clear advantage when it comes to nearshore software development and outsourcing since they share a central US timezone. That means they can easily do business with companies on the West and East coast. Countries like Argentina and Brazil are at a disadvantage because they’re 5 hours ahead of the West coast. That 5 hours may not seem like much, but when you’re on a tight deadline or want to include your development partners in meetings, your options become limited.

Productivity

Colombia and Chile lead the world rankings in Latin America for ease of doing business. Not to mention, they offer incentives for any companies outsourcing operations there. Brazil’s large workforce is a major plus, but regulatory obstacles and slow bureaucracy limit them. 

 Argentinians have a knack for finding innovative solutions that stem from a common saying in their culture, “Lo atamos con alambre.” which means “tying it with wire” but idiomatically translates to “make it work!” It comes from their desire to make things work with the tools and materials at their disposal.

 Mexico is a no-brainer if you’re looking to save money and boost productivity. Despite industrial wages going down in the 25 years since joining NAFTA (Now USMCA), productivity has shot up 80 percent.

Travel Duration and Costs

When it comes to reducing travel costs and shortening trips, countries like Argentina or Chile struggle in South America. Here are some flight times and major airline cost averages from Chile’s principal airport in Santiago to corresponding US airports:

  • SCL to DFW is 14 hours and $1,046
  • SCL to JFK is 16 hours and $356
  • SCL to LAX is 13 ½ hours and is $380

North and Central American Latin countries, on the other hand, such as Mexico or Costa Rica, provide considerably cheaper and shorter airfare options. For example, if you hired a nearshore software development team in Guadalajara, Mexico, you’d see the following flight times and average flight costs:

  • GDL to DFW is 2 ½ hours and $223
  • GDL to JFK is 5 hours and $259
  • GDL to LAX is 3 ½ hours and $164

As you can see, visiting your new development team in Latin America can vary widely in cost, travel duration, and you’ll experience significant cultural shifts when traveling thanks to varying languages, dialects, and customs. Ultimately, doing your due diligence and thoroughly vetting a team before hiring is the best-case scenario for getting your project complete on time, within budget, and to satisfaction.

Which country are you considering for your nearshore development needs? Tell us in the comments below:

Top Software Development Companies In Mexico

Top Software Development Companies In Mexico

Contrary to popular belief, software development isn’t just a Silicon Valley thing. Mexico has exploded onto the tech scene with game-changing companies creating software across the full spectrum of industries. 

With a rapidly growing talent pool and shared timezone, these companies can easily integrate into your day-to-day processes, save you money, and deliver top-quality software. When it comes to software development, Mexico stands tall by helping engineers and devs accomplish some truly remarkable tech innovations.

1. Scio

Founded in 2003, Scio’s passion for creating world-class software combined with their desire to provide a full lifecycle approach earned them a Top 10 Places to Code award, a 5-Star Web App Development Services review from Liveli Enterprises, Top Software Development Companies Of 2020 according to DesignRush.Microsoft, AT&T, and Anthem Blue Cross Blue Shield are just a few of the Fortune 500 companies that trust Scio to deliver their software needs. Scio’s specialty is working with established companies looking to augment their staff or scale-up existing software. Whatever your needs, Scio has the development team in place to quickly bring it to market, within budget, and precisely to your specifications.

The Scio Advantage:

Deep technical knowledge and experience that scales with your business. True agility in the form of real-time collaboration and faster review cycles. Flexible engagement models to help you build and support your application in unique ways. High-performance collaboration with aligned goals so both teams can achieve greatness.

Services:

  • Staff Augmentation
  • Custom Software Development
  • Software Testing & QA
  • Mobile & Web Development
  • Maintenance & Support
B2b Companies Mexico 2020 Scio
Techreviewer Dot Net Scio Mexico
Best Place To Code Top 10 Mexico

Customer Quote:

“Scio offers a team of well-vetted, professional developers. In addition to being timely and proactive in their approach, their unique backgrounds make for a professional relationship and improved outcomes. They continue to be a great long-term partner.” — Manuel Romero

WebsiteTwitterCase Studies 

2. PSL Corp

Self-described “purpose-led” software development company that aims to provide top quality agile development services nearshore in Mexico and Latin America. They are Colombia based with four offices there and have satellite offices in Mexico City and New York City.

Services:

  • Agile Custom Software Development
  • IT Outsourcing
  • Comprehensive Outsourcing of Quality Assurance Support
  • DevOps Transition
  • Cloud Architecture Design and Implementation
  • Software Reengineering

Customer Quote:

“They have an advanced software development process, and I like the fact that they are an employee-centric company like we are. Their reliability, quality, and technical ability is excellent”   — Tom Holt

WebsiteTwitter

3. BairesDev

A San Francisco based technology solutions and software development company founded by developers back in 2009. They recognized a wealth of IT talent growing in Latin America and quickly expanded operations to Argentina, Columbia, Brazil, and Mexico. Their mission is to help get companies talent they need at the right time so they can scale quickly. Time to market is something critical to their core values.

Services:

  • Custom Software Development
  • Software Testing & QA
  • Cloud Computing
  • Mobile & Web Development
  • Maintenance & Support
  • Blockchain Consulting

Customer Quote:

“BairesDev has helped us develop a secure bitcoin-based cryptocurrency platform with engineers that are qualified and proficient in crypto. We are extremely satisfied with their collaboration and achievement. We are happy to have given BairesDev a chance to earn our trust” — Willie Wang

WebsiteTwitter

4. Unosquare, LLC

An Inc. 5,000 fastest-growing company, Unosquare bootstrapped their own growth on the idea that talent, transparency, quality, availability, flexibility, and value matter most. They have a global presence with offices in the US, UK, and Mexico and specialized in BFSI, life sciences, and high-tech industries.

Services:

  • Software Development
  • Technology Project Consulting
  • Digital Transformation Strategies

Customer Quote:

“Not only did Unosquare give us solid guidance on the project, it innovated on its own” — Nick Cutillo

WebsiteTwitter

5. iTexico

ATX based iTexico bridges the gap between Mexico and Texas with their nearshore specialization. Founded in 2010, iTexico has found its footing through offering cheap labor and real-time collaboration. They advertise talent available “right now” and strive to make the hiring process as quick and painless as possible.

Services:

  • Software Development Services
  • UI/US Design
  • QA
  • Mobile
  • Cloud

“The main impact was their speed and quality of delivery.” — Michael Baron

WebsiteTwitter

Summary

When looking for top-notch software development, Mexico has a world-class talent pool and the technical expertise you need to get your software developed on-time and under budget. You have many choices, but a review isn’t enough to find out if a company fits your budget, culture, and software vision. For that, you have to dig deeper and ask the right questions.

If you’re in the market for custom software, reach out to start a conversation with us.

How To Hire Developers in Mexico

How To Hire Developers in Mexico

When you’re toying with the idea of outsourcing software development outside of the US, Mexico may not be the first country that springs to mind. Especially considering that Southeast Asia has dominated the outsourcing market for over a decade thanks to its cheap labor force and predominantly young population. 

However, cultural differences, language barriers, and time zone challenges are ongoing challenges when it comes to outsourcing,  leaving US firms looking for alternatives. Despite the US media conjuring up various political agendas, Mexico has quietly grown its engineering workforce behind the scenes in an effort to position itself as a technology and software development heavyweight.

With the increasing participation of Mexican engineers in software development work, US companies are beginning to take notice. So we thought we would provide you with some guidelines for how to hire Mexican developers for your software projects:

Why Hire Mexican Developers?

Latin America has the second-highest growth rate of software developers in the world, and Mexico specifically has invested heavily in STEM programs. If you’re not familiar with STEM programs, it’s a curriculum built to educate students in science, technology, engineering, and mathematics. 

The Mexican government also built over 140 new colleges, of which 120 now specialize in engineering and technology. Each year, thousands of information technology students graduate from universities across the country, such as the prestigious Tecnológico de Monterrey.

Mexico is simultaneously growing its English speaking population, which makes them a growing epicenter of highly sought-after job candidates.

How Do You Hire Mexican Developers?

Bring A Mexican Developer To The US

One route you can take is finding a Mexican software developer that wants to move to your location. If you’re in the US, you’ll need to adhere to USMCA, which is the United States-Mexico-Canda Agreement. It goes into effect on July 1st, 2020, and will act as a NAFTA 2.0 and facilitate an updated trade agreement between the United States, Mexico, and Canada. 

When it comes to hiring for software development Mexico and Canada adhere to TN Visa requirements. The Visa is granted to those with qualified positions in one or more of sixty categories. Here are the steps:

  1. Ensure your role is a TN approved occupation. According to Nearshore Americas, the category “Engineer” includes software engineers.
  2. Offer the applicant a job. This step requires an official job offer letter and a contract term not to exceed three years. The offer letter must include start and end dates, salary, and job description on a company letterhead.
  3. Ensure the candidate meets TN education requirements. The applicant is required to prove they qualify for the minimum education requirements for the TN role. In most cases, this means a Baccalaureate or Licenciatura degree in a field related to the occupation.
  4. Assist the applicant in gathering all the necessary documents. Passport, signed job offer documents, diplomas and transcripts, equivalent studies letter, and a DS-160 application before booking the interview appointment. 
  5. Apply and attend the interview at the US Embassy or consulate in Mexico. All documents must be submitted and any fees paid. Instructions for applying for a TN Visa can be found at the US Department Of State’s website
  6. Upon approval, apply for admission at a Customs & Border Protection designated US port of entry. This depends on the applicant’s final destination.

Keep in mind, some of these steps may differ depending on your role, destination, and educational background. The US Embassy or consulate in Mexico will always have the most up-to-date information.

Hire A Nearshore Software Development Team

If dealing with immigration lawyers and consulate visits seems too much work, there is a faster, easier way to begin leveraging engineering talent in Mexico – that is, nearshore software development. This is outsourcing software development with a firm in Mexico rather than going through the arduous steps above to sponsor a job candidate. Instead, you can hire a vetted software development team to work remotely for you from Mexico.

Working with a Mexican software development team has several advantages, ranging from:

  • Sharing time zones which makes it easy to integrate them into your day-to-day operations
  • Considerably more affordable development compared to North American, European, and Australian developers
  • More than 300 flights each day from major US cities to Mexico making it easy to visit them
  • Cultural affinity and high professional standards
  • All HR work (recruiting, benefits, vacation time management, etc.) is done for you by the firm you work with

Both routes have pros and cons, but if you need help sooner than later and need the power of a team versus an individual, then a nearshore software development team is the way to go.

Wrapping Up

If you’re looking for a software development team that works using an Agile process and offers a one-stop-shop for all your development needs, then consider us at Scio. Whether you’re a startup, a Fortune 500 company, or something in between, we’re ready to support your every software development need.

What are you waiting for? Contact us today.

Successful Software Development Outsourcing

Successful Software Development Outsourcing

As a provider of nearshore successful software development services, Scio has a proprietary interest in assuring the success of our customers’ outsourcing projects. But of course, in that respect, we’re no different than any service provider. So, it could easily be said that this article and more that will follow on this critical subject have a built-in bias we can’t ignore. We want you to understand our experience, our business model, and how it shapes our approach to providing outsourced services. We hope that understanding will lead you to explore working with us and to hire our team. So yes, this is an exercise in self-interest…. But that said, we also have an interest in promoting improvement in our industry and the knowledge of critical success factors (CSFs) for the outsourcing of software development. This certainly isn’t a new subject – both the buyers and the sellers of outsourcing services have been trading tips, CSFs, and white papers on the subject for years. A quick Google search will turn up thousands of papers from professional societies, trade journals, buyers and suppliers in the field. But it is a sufficiently rich subject, with ongoing learning and improvement, to continue the conversation among participants. Do we have important information to add? We believe we do and we’re willing to expose our knowledge and experience so you can judge for yourself. To begin the discussion, let’s set a few common terms in context:
  • Outsourcing is a broad subject and different industries approach it from different angles. In basic terms, we’re only discussing the outsourcing of software development, but many of the lessons learned in outsourcing across other industries do apply.  The term comes from tying together the words used to describe «outside resourcing» – bringing resources from outside a company to meet business needs. With that in mind, outsourcing can describe the contract of work to a provider in the same building, city or country, just as well as it can describe the outsourcing of work to a provider in a different country or a different continent.
  • Information Technology (IT) Outsourcing is generally considered to be a subsector of Business Process Outsourcing (BPO) that involves operation, management and maintenance of IT services and infrastructure within an organization. Although technical skills are necessary to maintain aspects of IT operations, generall software development is not the primary driver of IT outsourcing contracts.
  • Offshore or Offshoring is a term that, like outsourcing, has many meanings specific to the industry where it is used. For our purposes, it means the use of service providers with working hours that have very little or no overlap with their clients. Generally, these providers are on different continents with completely opposite work periods. A great deal of successful software development outsourcing is done by offshore providers so it is not intended to have a negative connotation. But, in many software development projects, communication and collaboration are key and in that respect, using offshore services requires special adaptations that both the client and the provider must be aware of and enforce.
  • Nearshore or Nearshoring in our context refers to the contracting of work to providers in a different country that shares significant working hours overlap and often shares a border, region or continent. Scio is a nearshore provider of software development services to North American clients. Our services leverage the benefits of a nearshore relationship with our clients so the situations where we work best tend to exploit those advantages. Successful software development outsourcing relies to a large degree on the relationship between the client and the service provider and the requirements of the work itself. Some software development can leverage nearshore advantages better than others. Some providers have adopted practices that lower the risks inherent in software development outsourcing, regardless of their physical proximity to their client teams. Regardless, understanding the differences between offshoring and nearshoring of software development projects is an important subject for all participants in the industry. There is no «one size fits all» as evidenced by the growth of both nearshore and offshore development centers within large outsourcing consultancies.
  • Agile Software Development is a methodology that is widely used across the software development industry. It is based on the idea that software development projects should be composed of short, iterative cycles producing valuable software incrementally while allowing for the evolution of the results based on constant consultation and interaction with the client and user base. The methodology itself is constantly improving and allows for adaptation to many situations. Because of this flexibility, the agile practices adopted for one project or practiced by a development team will vary, but overall the basic principles as they apply to client and team interactions and software quality during a project are expected to remain.
  • Scrum Software Development is an extension of the agile framework for software development down to the team level. It includes descriptions of roles, processes, and ceremonies that strengthen agile principles and give structure to the software development process. Like agile, it is an adaptable methodology but it does include more detail specific to the software development process. Scio provides software development teams using a proprietary implementation of agile and scrum. Not all software development projects require agile or scrum, but most can benefit from some level of integration with the methodologies.
  • Distributed Agile Teams are a part of the outsourcing of software development when you use either nearshoring or offshoring of a part of your agile team. In agile/scrum methodology, a premium is placed on open and frequent, face-to-face interactions between the development team and the product owner from the client-side. But, agile is also practical and adaptable, so there are practices that help to overcome the team isolation and improve interaction when parts of your team are remote. Scio is a provider of distributed agile teams for software development and integrates the practices necessary to assure success in these situations in all our projects.

What is a Successful Software Development for You?

It is hard to discuss «success» without knowing what it means to clients in general and it is almost impossible for a specific project to be «successful» unless all participants understand what it means from the start. In simple terms, most people would say without thinking it means providing software on time, on or under-estimated costs and that delights users – but that simple definition ignores all the trade-offs and pitfalls that need to be avoided or mitigated and the stakeholders who must be satisfied to arrive at a successful outcome. In researching the literature on this subject, an IEEE literature review came upon the subject that found some interesting results:

Top 5 CSFs for Success in Software Development OutsourcingSuccess Factors for Outsourcing

  1. Contract Flexibility
  2. Trustworthy Relationship Management
  3. Competitive Bidding
  4. Consultation and Negotiation
  5. Quality Management

Last 5 CSFs for Success in Software Development Outsourcing

  1. Time Management
  2. Culture Awareness
  3. Intellectual Property Rights
  4. Data Security and Privacy
  5. Detailed Specification of Product and Project
These results came from a specific set of criteria concerning the basis of the outsourcing contract and relationship, as well as the contract and contract management – rather than a soft assessment of project outcomes, so it is probably not what you might think at first. But consider the elements of the top 5:
  • Contract flexibility, like agile practices in software development, this allows the project to evolve in various ways to reach a successful outcome. It is a realization of the simple fact that at the outset of a project, and throughout the development cycle, participants don’t know what they might discover or how they will work together. A flexible contract, instead of locking them into a tight box, provides a framework for realizing opportunities not foreseen at the beginning of a project or dealing with unexpected issues that might derail the project. A good contract focuses on the objectives of the outsourcing relationship rather than operational details.
  • Trustworthy relationship management gives everyone involved the ability to bring issues up without fear and mistrust. It allows open negotiation during the development process without bringing everything to a screeching halt. Again, it acknowledges the established truth of software development – there are things we don’t know and opportunities we haven’t considered that will be discovered as we move forward. We won’t be able to consider them if we don’t have a relationship of trust between the players.
  • Competitive bidding, when it is done not just on price, but on a range of weighted factors, helps to increase the feeling of trust and control between the service provider and the client. Everyone understands what is important from the outset or has explored the issues until a successful conclusion is reached. Blind bidding, where bids are submitted, but no discussion or negotiation occurs among the top bidders and the potential client do not build this level of understanding however. No amount of paper and diagrams can substitute for the level of understanding that can be reached in direct, verbal negotiation.
  • Consultation and negotiation are a realization of the fact that constant communication is necessary in all software development projects to insure the development is on track to meet the goals set out in the beginning of the project or, where needed, the teams can negotiate in good faith to reach alternative outcomes that better fit the situation as it has developed. Virtually all software development projects need both a mechanism to ensure open communication and negotiation.
  • Quality management, not just against a set of detailed requirements (that is number 15 in this list after all). When everyone is involved in quality, it becomes a key to reaching a successful outcome. But as the agile methodology guides us, only if the management of quality is a continuous process throughout the incremental software development process. If it can only provide feedback at the end of prescribed  phases or the end of the project, the risk of going off-the-rails becomes too large and failure to reach the necessary outcomes of a project area almost assured.
Now, of course, you are likely to see a different list in your head or have a specific list of CSFs in mind for a project. But list brings up an important consideration – what weight should you put on the need to deal with change and to work successfully with your vendor throughout a project or relationship? And it is important to understand, this is a result of the frequency of a CSF being identified among several papers, not the weight it was given in any one paper, if indeed weights were given. So the number of times a CSF was mentioned in the surveyed literature produces the order of the list.

Nearshore? Offshore?

Successful Software Development We find these kinds of communication problems come up in many aspects of the provider/client relationship in outsourced software development. Agile and scrum development practices address these problems well, but in the case of offshore services, the agile model becomes stretched in ways that require adaptations that can be costly or distracting in the course of project operations. That is not to say that nearshore distributed teams, a model we use frequently,  do not require specialized planning and adaptations, but it is part of our standard practice package, not something we do on a one-off basis. We find all projects benefit from attention to better communication and tighter relationships between our teams and their product owners. And we have that built-in advantage of nearshore; our development team is working in real-time with the client team. There is a lot more to discuss successful software development outsourcing – and we will be doing just that as we continue to provide information from the field.