Monday, February 22, 2010

IT Outsourcing Mistakes

While outsourcing is a powerful tool to cut costs, improve performance, and refocus on the core business, outsourcing initiatives often fall short of management’s expectations. Outsourcing failures are rarely reported because firms are reluctant to publicize them. However, contrasting them with more successful outsourcing efforts can yield useful “best practices”. In this post I will underlie most failed outsourcing efforts.

  1. Outsourcing activities that should not be outsourced. Determining which activities can be best performed by outside vendors requires a good understanding of where the firm’s competitive advantage comes from. Resources and capabilities that are valuable, rare, difficult to imitate, and difficult to substitute for lead to superior performance. Activities that are based on such resources and capabilities (i.e., core activities) should not be outsourced because firms risk losing competitive advantage.
  2. Selecting the wrong vendor. Selecting a good vendor is crucial for successful outsourcing. A useful distinction can be made between hard and soft qualifications. Hard qualifications refer to the ability of vendors to provide low-cost and state-of the-art solutions. Important criteria also include business experience and financial strength. Soft qualifications include a good cultural fit, a commitment to continuous improvement, flexibility, and a commitment to develop long-term relationships.
  3. Writing a poor contract. A good contract is essential to outsourcing success because the contract helps establish a balance of power between the client and the vendor. Spending too little time negotiating the contract and pretending that the partnership relationship with the vendor will take care of everything is a mistake. Drafting a good contract is always important because it allows partners to set expectations and to commit themselves to short-term goals.
  4. Overlooking personnel issues. The efficient management of personnel issues is crucial because employees generally view outsourcing as an underestimation of their skills. This may result in a massive exodus even before an actual outsourcing decision has been made. Firms that contemplate outsourcing must face two interrelated personnel issues. First, key employees must be retained and motivated. A second personnel issue is that the commitment of employees transferred to the vendor must also be secured.
  5. Losing control over the outsourced activity. When an activity is outsourced, it is crucial to retain a small group of managers to handle the vendor. These managers must be able to develop the strategy of the outsourced activity and keep it in alignment with the overall corporate strategy. While vendor management skills are very important, they must also be complemented with technical skills. If no one in the company is able to assess technological developments, outsourcing is bound to fail.
  6. Overlooking the hidden costs of outsourcing. Transaction cost economics (TCE) suggests two main types of outsourcing hidden costs. First, outsourcing vendor search and contracting costs. Search costs are the costs of gathering information to identify and assess suitable vendors. Contracting costs are the costs of negotiating and writing the outsourced contract. Second, outsourcing management costs: monitoring the agreement to ensure that vendors fulfill their contractual obligations, bargaining with vendors and sanctioning them when they do not perform according to the contract when unforeseen circumstances arise.
  7. Failing to plan an exit strategy. Many managers often fail to plan an exit strategy (i.e., vendor switch or reintegration of an outsourced activity). Actually, outsourcing relationships can be viewed on a continuum. At one end are large-term relationships where investments specific to the relationships have been made by one or both partners. At the other end are market relationships where the client has a choice of many vendors and the ability to switch vendors with little cost and inconveniences. In this case, there is no real advantage in recontracting with the same vendor.

This article is a shortened article of Jérôme Barthélemy “The seven deadly sins of outsourcing”

Tuesday, February 16, 2010

10 reasons to have your own client team:

  1. We establish the client’s own team especially comprised to his own requirements.
  2. The client gets experienced and qualified developers which he can interview himself via skype.
  3. Our company sets the infrastructure and registers the fact of working of the employees.
  4. The hiring process is implemented in 3 steps: first –HR manager interviews the candidate (100%), then our company’s CEO (50%), third the client interviews the most appropriate candidates (20%)
  5. The recruiting process is free of charge and is accomplished within a month, if the client is not satisfied with the candidates he can quit collaborating without any charge.
  6. The client sets himself the salary for his employees.
  7. The team works under the client’s direct control ( the customer sets tasks, schedule, meetings)
  8. The team is flexible to scale up/down
  9. Each team member can communicate directly with the client, discuss openly various issues and suggest solutions.
  10. We can provide with a PM locally to the client’s demand

Friday, February 12, 2010

Brief Facts on Ukraine

How to minimize the hidden costs of IT Outsourcing

The major goal of IT Outsourcing remains cost reduction. However, this brings unexpected investments far too often. Companies who are willing to outsource should not underestimate hidden costs as well. What follows are the most reasons for increased budget.

  • Vendor selection. The clear vision of what needs to be achieved would help a lot. Which processes are to be performed offsite? What model of work would suit the best – is it project-based IT outsourcing, or hiring dedicated resources
  • Hardware and software for distributed development. The internal software development processes will need to become more mature, through the implementing of certain processes, artifacts and communication tools. It is better to invest in effective tools for the distributed development, rather than have delays or bad quality in the future. 
  • Knowledge transition. The initial stage of IT Outsourcing may be performed in a cost effective way – such as specifications writing, conference calls and online meetings. Nevertheless, especially for larger projects, costs invested in on-site visits prove to pay off. Making offsite workers spend time together with the onsite team to study the project environment in-depth reduces the miscommunication quite a lot. 
  • Cultural, language, time differences: to increase the interaction efficiency and to avoid misunderstandings it is useful to evaluate the level of mutual understanding already during the vendor selection. 
  • Layoffs: to avoid this, assign new roles to the staff. These roles may be related, for instance, to the management of the distributed development process.
  • Support: to be independent from the service provider, ensure that on-site staff interacts closely with the off-site team and is up to date with the developed product. Another way to avoid additional support spending is to negotiate with the service provider the technical support as well.

IT Outsourcing requires additional costs for management and for the interaction. As Hank Zupnick, CIO of GE Real Estate, says in the article "The Hidden Costs of Offshore Outsourcing, "You can't expect day-one or even month-six gains. You have to look at offshore outsourcing as a long-term investment with long-term payback."
What costs has your company experienced that were not overseen from the beginning? How can these costs be avoided?

Wednesday, February 10, 2010

5 Tips on interviewing for distributed development team

Distributed software development can drive the company’s productivity – given that the dedicated team is comprised of the right people.
How is interviewing virtual team members different from ordinary staff hiring? When the personal meeting is impossible, what are the key actions that help find the best developers for the distributed team?

There are plenty of opinions to be found. Some would warn you against hiring people who smile too much, some claim Twitter to be a great tool for interviewing. However, most valuable set of advices can be gathered into following five tips:

  1. Autonomy: Virtual team is most productive when comprised of people who want and are able to successfully work on their own. Give an impossible-to-solve task to see the reaction of your future employee.
  2. Motivation: Ask questions to evaluate the candidate’s desire to work.
  3. Skills matrix: gathering the possessed skills into a matrix would simplify the data processing.
  4. Reference check: check selected references out of provided. Be concrete to mention the problems that you are willing to avoid. It is useful to check the references via social networks such as Linkedin or Xing.
  5. Salary: Do not hesitate to ask the candidate’s expectations during the first conversation. Although you might encounter the candidate’s resistance on naming the number, it is better to negotiate the financial part at once as it influences all the further steps.

It would be great to hear about readers' experience for interviewing dedicated developers. Which are your favorite questions? Is voice or chat communication enough or do you use video conferencing?

Tuesday, February 9, 2010

Overview of the communication tools

Software development requires frequent interaction. As companies extend their IT department to remote locations, they tend to invest more time and efforts to make the communication process flawless. As the business scales up, it may become challenging to manage the virtual team, nevertheless there is a comprehensive set of tools to keep the understanding on a high level.

In-house team members manage the team, assign task and control their execution. The most helpful tools will be reviewed further. However, the most optimal method of communication depends on the number of virtual team members, on their roles and on other project characteristics.

Individual messengers are good as they are mostly free and easy to install and to use. They are good for environments where one cannot talk aloud, they do not require high speed Internet connection and they are the best tool for team members with not perfect English skills. Text chat allows to discuss small issues once they arise. Chatting creates another level of documentation as the chat history may be exported or reviewed later. Some people do not like messaging as it distracts them from work. To prevent this, it would be better to keep messengers switched off for certain periods, or simply to increase one’s discipline so that popping messages cannot influence one’s work. Another alternative is to switch to e-mails completely.

Voice interaction provides higher level of understanding and allows to have a more detailed conversation. Using voice may be more cost-consuming. Given that all the team members speak fluent English and the connection is good enough it is a great tool for conference call to enlighten the most important issues. It is best to have such meeting scheduled, and to agree upon the agenda beforehand.

Video conferencing tends to be gaining popularity as it allows to see each other and to read the body language. High quality video conferencing certainly demand well-established infrastructure. However, as the technology develops, we may expect video conferencing to become less expensive.

Web conferencing and screensharing tools allow participants to follow the leader during the presentation and obtain a record for later use. In some cases number of participants can be limited.

To obtain and manage the corporative knowledge it is effective to use wikis. For the smaller projects it might be replaced with Microsoft Office Groove as well.

Google wave also tends to help a lot as a communication tool. It allows users to join the interaction at different time and simplifies the sharing of visual presentations. As more people discover and start using it, there is more google wave users feedback provided, along with its benefits and negative sides.

Face-to-face meetings. It is arguable, to what extent are the face-to-face meetings important. Personal encounter, especially for large teams, proves to speed up the initial stage of the project. On-site visits help help to decrease the time for the developers to familiarize themselves with the project information. Face-to-face work strengthens the team and increases the team spirit, yet there are no proofs that this is an inevitable action to take.

I would recommend following articles - this article on BNet on the collaboration for remote work has provoked quite interesting comments, and there is a comprehensive list of communication tools on Technology Magazine and on Mashable available.

Friday, February 5, 2010

Developers sought! Is it better to find a freelancer or to engage with a company?

There are many materials on the web how to choose between service provider and freelance workers. However, inspired by this question on, I decided to summarize this and to brainstorm this question further with our readers. Yes you are reading a blog of a service provider company, but this post’s purpose is to help find the best solution. So feel free to share your experience when working with freelancers as well as service providers. What would you recommend to keep in mind when selecting between these two options?
Companies that need to enhance their programming team face several options: to hire developers on payroll, to outsource, whether locally or overseas, or to engage with freelancers. It is well-known that freelancers tend to deliver more cost effectively yet there are some risks and inconvenient moments in contracting with freelancers.
Freelancer may appear to be a college student or a full-time employee with another company. He does not always have to protect his reputation. Yet every case is different, and of course the freelancers are not all the same. Although it seems like most brilliant minds would work for one or another company, that is not a rule. Some talented workers simply enjoy working from home and being able to select their customers. The point is to find and access such kind of freelancers.

Summarizing the reasons to hire a freelancer:
  • rare skills are sought, and there is a way to check the person’s competency
  • the job scope is clearly defined
  • project is rather short, in-time delivery is not critical
  • the job can be executed by a single person (as it might be difficult to coordinate the work of several freelancers as well as engage them into collaboration)
  • there is a way to check the intermediate release and assure that the contracted person will stay in touch frequently
The cases when it is better to select a service provider:
  • large project
  • broad range of expertise is required
  • intellectual property must be securely protected
  • the project will need to be enhanced or supported in the future

So I conclude that it is useful to have both freelancers and service providers in the network of contacts. Once you have a small project with clearly defined job scope and you have a reliable freelancer within your network, engaging with him may prove to bring success. For bigger projects that will be further developed and enhanced in the future, it is definitely better to approach service vendors.

Thursday, February 4, 2010

Hire or not to hire?

Hire or not to hire, that is the question. Searching, hiring, training, paying a full time employee, managing personnel, sick days, maternal leaves, vacations, accidents, resignation - that is all a lot of in-house staff.
To give an answer to the title won’t be an ungrateful thing to do, because some employers are for outsourcing staff others are for insourcing staff. Controversy and a conflict of opinion over this matter will continue to exist. Yes, tastes differ, as people say one man’s meat is another’s man poison. What I’ll do is just state the benefits of hiring remote employees. Here they are…
You don't have to provide desks and office space. You avoid office overhead costs, such as office rent and phone, electricity charges, and all the other little things than having an office involves.
You don't have to calculate and pay sick pay, vacation pay, maternity leave, health insurance, superannuation, family leave or whatever complications apply in your country.
You don't have to wade through the red tape that having employees involves. Indeed, a lot of "bookwork" is involved when an employee simply wants to arrange a long weekend off and take one day's vacation pay.
Outsourcing is usually much cheaper. You pay a contracted rate, negotiated between you and the contractor.
Having remote workers gives you more freedom. You can run your online business from anywhere that Internet access is available. You can travel, spend time with relatives, have long weekends away from home, and so on.
There’s one more factor, psychological. Hiring part-time workers who are efficient specialists can reduce your stress. One of the big benefits of outsourcing is that you can hire people who actually like doing fiddly stuff.
Moreover, hiring a specialized expert, as well as freeing you for tasks you do best, gives you peace of mind because you know the task is being done accurately.
Outsourcing work is very useful when you just have occasional tasks that need doing - you don't have to worry about trying to keep someone fully occupied in productive, revenue-generating activity every day.
You can keep confidential business methods secret by splitting up tasks among a bunch of remote workers, so that each one sees and understands only a very small proportion of your process.
Training usually isn't necessary because you hire freelancers who already have the skills you require.
You now have employees to manage. You need management skills. Your library will probably have dozens of good books on the subject, but do you have the time to read any of them? You also need patience and empathy and need to have the right personality to manage staff.
The decision of outsourcing or insourcing doesn’t depend only on your business situation, but also on your personality I consider. Outsourcing and hiring remote workers are for those who value his own privacy and freedom, for those who don’t want to discuss things face to face and manage personnel. And nevertheless it’s up for you to choose and decide.

My article is based on the materials of the Article by Allan Gardyne “Hiring Versus Pitsourcing”