What are the schemes of remote work in offshore programming. Remote work in an offshore company: principles of work

The concept of outsourcing - the transfer of part of the company's operations to an external contractor - for a fee that is not related to the results of the customer company's activities. The essence of offshore programming, the purpose of which is to manage a company from outside the country.

Send your good work in the knowledge base is simple. Use the form below

Good work to site">

Students, graduate students, young scientists who use the knowledge base in their studies and work will be very grateful to you.

Hosted at http://www.allbest.ru/

Offshore programming (IT outsourcing)

offshore outsourcing programming contractor

Historically, outsourcing has developed within the United States, and this concept is most often understood there as the transfer of part of the company's operations to an external contractor - for a fee that is not directly related to the results of the customer company's activities. "Offshores" transfer logistics, finance, information infrastructure, etc. Until recently, the largest outsourcers were companies that combine audit, consulting, technology and even legal services. Now these businesses are gradually separating.

Outsourcing in the field of software development and implementation (especially international) is a relatively young phenomenon. With the exception of individual exceptions, it is less than thirty years old, and it flourished in the last 10 or even 5-7 years.

If we limit the consideration, then there are a lot of legal forms of organization of such companies. There are local branches of Western companies, including development centers of the largest software and hardware manufacturers, there are independent companies that have development teams and provide them to the client to solve his problems (as a rule, such teams do not carry out the entire development process, but only part of it). There are companies that receive specific orders from Western clients (not necessarily belonging to the IT industry) and deal with them on their own.

The type of activity of a software outsourcer can also be different, and include all or some of the stages such as: pre-project consulting, business analysis, architecture design, code and user interface development, quality control, prototyping, implementation and deployment, technical support and accompaniment, etc. There are companies that deal with products general purpose; and then there are those who make a product targeted at a specific vertical market or even an individual customer (this often requires a staff of specialists with unique skills, such as wireless telecommunications or numerical methods).

Recently, interest in our companies has increased. There were quite large orders. Growth is likely to continue against the background of the recession that has befallen the American market... However, it is rather difficult to name any exact figures.

India is recognized as the leader in offshore software development in the world. More than $4 billion in 2004 was published recently for custom-made software in this country. India is followed by other developing countries - Taiwan, Philippines, Indonesia, China. It is curious that Vietnam has also recently been trying to enter this group. Vietnamese companies do a lot of work for Australia, using benefits recently granted by the government and specialists trained in the USSR. But in Singapore, things are not very simple. The standard of living there is high, and all the efforts of the government have not yet led to the creation of anything more than small "sales offices" of Indian, Russian and other companies.

Traditionally strong outsourcers are Israel and the Czech Republic. By the way, there many - in the recent past - small companies have already turned into firms known on the world market. Offshore companies in Russia, Ukraine, Belarus, Kazakhstan and Armenia are known in the CIS.

The first and most important reason for this growth is cheapness. In the States, programmers - even visitors - need to be paid much more. And by the way, according to this parameter, Moscow loses, for example, to Bombay or Gomel - overhead costs are higher. It is cheaper in the provinces, but the situation with qualified personnel is more difficult there.

There is also a noticeable advantage in comparison with the export of people abroad. Firstly, not everyone will go for it for a variety of reasons. Then, different costs are associated with the move - a person will have to adapt to the local culture, acquire a house. At home, the programmer quickly joins the workflow.

As a rule, offshore companies do not develop whole products, but parts of them. All sorts of things are being developed; for example, reusable Java2EE components. Of course, they mainly develop software for personal computers with Intel architecture for Windows and Linux. By the way, back in the old Soviet times, Nokia placed orders with us for software for its robots. It was almost the first offshore project in the CIS.

Vested Development can be singled out among the main players in the outsourcing market. This is an example of a company that simultaneously works for many software development clients and provides them with solutions that are then incorporated into the products of these companies.

Probably the largest offshore software company that is partly owned by IBM is IBA. It is a recognized player in the global JavaBeans market.

An example present in all publications is Luxoft. This company is part of the IBS group, and this is already a serious guarantee of quality and stability. They have interesting clients. For example, Boeing.

EPAm was among the first to emerge. Now her clients are SAP, Samsung, Halliburton, Colgate and many others. More than 400 people work in its offices in Princeton, Moscow and Minsk.

The St. Petersburg company "Reksoft" is an example of a company that has successfully mastered the vertical market. On the one hand, their developments in the field of telecommunications are guaranteed to be in demand. On the other hand, they require high qualifications and long-term training of personnel. This is likely to greatly contribute to the growth of profits. In Russia, Reksoft is known mainly for the Ozon electronic store project.

To a greater or lesser extent, everyone is trying to work with offshore developers - from aerospace firms to chip and equipment manufacturers (Intel, Motorola, Sun, NEC, Fujitsu, Samsung, Silicon Graphics).

Of course, among the customers there are many relatively small but aggressive companies promoting new classes of products on the American and world markets. For example, CRM systems and suites for integrating sales channels. They need new products quickly, "cool" and not very expensive.

In principle, even the largest, multibillion-dollar multinational corporations can also outsource significant parts of their IT infrastructure to the most reputable of our firms. EPAm had such projects. They had to do implementations in more than thirty countries at the same time, localizing their developments into many languages, including Japanese.

Microsoft also works with offshore companies, but they have a policy of not trusting any "serious" stuff to third party developers. Typically, after working for a trial period with a firm, Microsoft simply buys it - and makes sure to transport people to its campus in Redmond, Washington. If employees do not want to move (as, for example, was the case with the Quebec French-speaking company Softimage), then the company is simply resold.

However, Microsoft already has software centers in India and China.

For a company to be an outsourcer is in many ways a necessity. It is quite difficult to come up with some "boxed" product that can be sold. But it is difficult - the market is divided and it is almost impossible for a beginner to get there. There are custom and semi-custom items.

For Belarusian companies entering the Western market, the main problem is that in order to receive an order, you need to have a decent reputation in the West. And in order to acquire such a reputation, you need to successfully complete some orders. Vicious circle. As a result, most offshore firms have arisen simply on personal contacts with foreigners. It is necessary to pay a lot of attention to management and marketing. If you are not directly a branch of a western company (in this case, you may have almost only developers on your staff), then you will have to work hard to earn the trust of western partners. And, in particular, to hire highly qualified and expensive sales managers, preferably from among Americans by birth.

It is also necessary to take into account the peculiarities of offshore development. First of all - very often you have to withstand the most intense pace of work. There are clear requirements, iron deadlines; often the work is "interactive" - ​​i.e. During the working day, you have to communicate several times with customers or testers. It happens that work on one project is carried out by several firms scattered around the globe. For example, IBM is proud of its "round-the-world" development using the "San Francisco" technology: morning comes in a Chinese offshore, programmers do something, connect to the project, then the working day begins in Minsk, the main work goes to Belarusian and Baltic developers, and finally Americans are involved in the work - for example, they are testing a project. In general, it turns out that the globe goes around a kind of marker - this allows you to reduce the "absolute" period of work on the project by several times. In general, offshore companies are by far one of the most efficient software developers in the world, and a model of work organization for other industries.

Several outsourcing models are active in the IT services business.

"Onsite contract worker" - the customer company hires additional staff from among emigrants or foreigners who have a work permit. This model is used in some complex projects and allows you to save on staff, taking into account the location.

"Onsite-offshore project" - allows you to avoid the difficulties associated with coordinating the implementation of projects inherent in the previous model, since the contractor's team is physically located at the customer, and is able to quickly and efficiently respond to the conditions of the project. This model is used in some complex projects and allows you to save on staff, taking into account the location.

"Pure offshore project" - provides for the possibility of greater savings, since the project is carried out in the country of the manufacturer. The amount of savings in this model depends on whether the contractor works directly with the customer or through a local system integrator.

Onsite-offshore project" - allows you to avoid the difficulties associated with coordinating the implementation of projects inherent in the previous model, since the contractor's team is physically located at the customer, and is able to quickly and efficiently respond to the conditions of the project

"Onsite-onshore-offshore project" - as in the previous two, the main work is performed by a remote contractor, which is supported by the contractor's representatives included in the staff during the creation and testing of the product, as well as the allocation of internal company resources. This team is primarily concerned with project and change management, as well as creating and testing part of the overall project. This model is common in Europe and is used only in very complex projects.

The growing popularity and diversity of offshore programming have necessitated the creation of specialized centers - offshore development centre. This model is very popular among US companies that are operated from outside the US. Quite a lot of IT projects, both simple and complex in execution, go through such centers.

Hosted on Allbest.ru

Similar Documents

    Analysis computer network and software company "IT-Garant": organizational structure; information security assessment, threat vectors for the company. Disadvantages and improvement of the process of turnover of applications for the provision of outsourcing.

    thesis, added 07/13/2011

    Learning the QBasic programming language from a structural approach in order to develop the right programming skills. Preliminary analysis of a complex problem in order to break it into separate simple parts. Detailing and drawing up subroutines.

    tutorial, added 10/11/2011

    Analysis of the stages and features of the development of an optimal and functional ARIS-model - a software product from IDS Scheer for modeling the company's business processes. Learning the basic concepts, methodologies and approaches of Extreme Programming.

    test, added 06/04/2011

    Description of the management structure of the company. The structure of software and hardware. Analysis of technical specifications. Calculation of a generalized criterion for the effectiveness of an information system for project management of a construction company. Choice of programming language and DBMS.

    thesis, added 06/29/2013

    History of development and classification of high-level logic programming languages. Definition of concepts GUI, network protocols and database models. Modern programming systems from Borland/Inprise and Microsoft.

    term paper, added 07/11/2011

    Comparative analysis of existing developments of media sites. Review of two products of the company FarbaSite CMS and Joomla CMS, which contain the "Electronic diary" module. Database design and connection. Choosing a programming language for the client side.

    thesis, added 05/21/2013

    Basic requirements for the development of the Internet site of the LLC "Account-Business" in order to attract new potential customers. Description of the programming environment. Requirements for hardware and software. Anomalies and defensive programming.

    term paper, added 06/30/2014

    The concept of a design pattern or pattern in software development. Changing the behavior of a system (database) using a generative programming pattern - an abstract factory. Database programming and management in C+.

    term paper, added 04/30/2011

    The concept of an algorithm and its characteristics as the main element of programming. Forms of representation of algorithms, basic algorithmic structures. Structural and event-oriented programming. Object-oriented programming.

    abstract, added 07/17/2008

    Definition and description of a "genetic algorithm", the idea of ​​which is to organize an evolutionary process, the ultimate goal of which is to obtain an optimal solution to a complex combinatorial problem. An example of its trivial implementation in C++.


My previous text on this topic has accidentally disappeared. There was a lot, a lot of text. And I got upset. Then I thought maybe it was for the best. It is much more pleasant to read a little and to the point. I'll try to be short and to the point today.

Custom software development involves solving specific application tasks set by the customer. These tasks, applied, can be of a completely different nature and field of activity.

The customer rarely understands WHAT he really needs. Although, he himself believes that he understands this completely and is trying, moreover, to influence HOW to do it. Unfortunately, this is a reality. And it does not depend on the subject area, age, gender and language spoken by the customer. Both our and foreign customers are the same in this matter.

In these difficult conditions, the most important thing for a programmer (or project manager) is to get the customer talking about the upcoming task. Talk and find out all the details about the environment and the business process. For example, you are offered to create an online ticketing system. Usually it says something like "It's simple. The user registers on the site selects and buys tickets." Later in the conversation, it turns out that there are 3 types of users, and the purchase process for each type is different, and invoices are issued only to the 1st group, and in general these are not even tickets, and not a sale. It is important not to immediately rush into battle, despite the requirements of the customer "faster, faster."

After an approximate model of the entire process has been drawn up, the entry-exit points have been determined, you can think about the pilot. God forbid you promise the customer to complete the entire scope of work in one stage and at a fixed time. In my life, I have not seen people who could adequately estimate the term of the entire software project as a whole and then do everything within the framework of this estimate. A pilot is something that works, but is terribly castrated in terms of functions. There are times when the customer, seeing the pilot, said - "Oh, hell, this is not at all what I need." So it turns out that the less functional your pilot is, the less likely it is that the efforts to create it were wasted, which means less money was spent.

Once I did not understand this truth and tried to do as much as possible in the pilot, to approach the solution of the problem as architecturally as possible. At the same time, the thoughts were something like “do it anyway in the future - I’ll do it now, then it will be easier” or “then I will use it everywhere” or “there will be a cool flexible system, it will be possible to configure here, here and here”. It is clear that as a result of all this, the time to implement the simplest features was inflated by 2, sometimes 3 times. And it is not at all a fact that due to this it was saved in the future.

One day there was a turning point. I worked with one foreign manager. To my question "let's do it this way and it's so cool" he replied "do it as quickly and easily as possible, the client is not yet sure that this project is worth investing in". And at that moment I realized that I was sitting here thinking about how it would all work "assembly", I wasted my time, but this "assembly" would not happen at all, the project would be closed and that's it. From that day on, I decided that if the choice is "sit down and design for years ahead" or in half that time "just make a working prototype", then the choice is obvious - option 2. But with one caveat, when the decision to continue the project is not made by yourself , i.e. you work to order. (In the case when the task is worth designing for years, you need to fulfill the task :-))

The most important thing in custom development is time. Because time is money. The connection is very direct and absolute.
What you need to spend less time on development:
- reliable tool, including our own production.
- experienced staff
- rigidly defined technological process

Many do not think about the 3rd point. Generally. But in vain.
Software production is a technological process, a production that has its own stages, regulated operations, methods of control, quality measurement, etc. metrics. Of course, it is absurd to demand compliance technological process from 2-3 people, but if there are 5 people at work, then this is already a mini-factory, a production workshop.

What are the specifics of offshore programming?
Here, in my opinion, there are 2 points: finding a customer and communicating with him. Everything that goes beyond these two points differs little from the usual custom software development.
I distinguish 2 types of offshore programming companies. 1 - working with one regular client. 2 - having many different, usually temporary clients.

I'll tell you how to cut it, the first will never become major players. A single client (or he may just be an overseas sales manager) is the bottleneck of the business chain. This is a bottleneck for the development of the company as an offshore service provider. Such companies are doomed to stagnate in terms of development.

As elsewhere, the rule of diversification works. Even if you have a great relationship with this person, it's worth finding a few more project delivery channels no matter what. If you do not do this, then you are not doing business with this client, but simply doing it, out of friendship, so to speak.

Yes, it is difficult to find clients, especially offshore ones. Unfortunately, I have little experience in this area. Just a few thoughts.
1. Any way to find the first one. (Work in the negative. Work 14 hours a day. Get a positive result in any way)
2. Rely on feedback first
3. Participate in project exchanges, for example, elance.com
4. Send targeted offers to partner companies, for example, hosters if you make websites.
5. Take only obvious projects. It is better to do 10 easy ones than to fail one difficult one.

P.S. in general, this rule works almost everywhere: It's better to make a lot of small things than not to make one big one.

We all know what "programming" is. What does "offshore programming" mean?

I found a popular description of offshore programming at zapros.f2s.com/offshore.html:

“Offshore programming is a type of telework specifically for IT professionals, the meaning of which is to involve performers from regions with cheaper labor in the programming process, which can significantly reduce development costs.

The term "offshore" emphasizes the significant geographic distance of "overseas" performers and gives the connotation of freer handling of employment and taxation laws. Offshore programming is usually used to develop complex and time-consuming projects and the contractor is a specialized company, contact is made through an intermediary company acting as a guarantor of the integrity of the relationship between the parties. One of the leaders in offshore programming is Offshore Software Developers Guild, moreover, this company declares that its services are free. More than two thousand permanent members are united by Software Contractors' Guild. The guild's job bank is targeted primarily at US residents, but one-time software development contracts have no territorial restrictions.

This page lists some of the most reputable resellers that can help you find full-time or one-time offshore programming telecommuting jobs.

workexchange.com

Is it easy to find a Western employer and get paid from him? Here is a letter from a reader who has been offshore programming for years:

“I have been fulfilling orders from abroad for a long time, there is a certain contingent of regular customers from whom payment has already been received, there is also a black list of those who have not paid or pay partially. Almost everyone asks to complete some test task first, and then 99% disappear without a trace.
Now we are not able to fulfill some orders due to lack of skills or time or lack of programmers.
Finding orders is very difficult and even more difficult to get paid later. Personally, I spent about 6 months until I received the first real order. This was about a year and a half ago.
In general, everything is not as difficult in offshore programming as it seems at first glance, try it, you might be lucky.”

So where do you start?

Sergey Koval (Ukraine) gives professional advice to programmers trying their luck in offshore programming:

“I am a Project Manager by profession. I am 27 years old. AT this moment I run a small firm (40 people) for writing programs.
This also allowed him to become a co-owner of several portals on the Internet.

Here is my experience: you can find orders on the Internet for offshore programming. And it's not as difficult as it seems. Of course, if a person does not know English, dreams of earning money by Western standards right away, then, of course, it will be difficult for him.

What you need to get started: find a few friends who are programmers and designers. This is for help. Then make yourself a website. As interesting as possible (you can just look at the sites that win the titles of "site of the day", "site of the month", etc. - this will give ideas).

Place a so-called portfolio on the site. There you need to collect everything, everything, everything that is from what you did. Works, sketches, programs, etc. And the bigger and better everything looks there, the higher the rate of payment you will receive.

One has little chance. It is better to immediately make a website for a small team of 3-5 people. Since it is rare to find a project for one person.

Then, if everything is fine with your English, then you can start talking to people in American forums about part-time jobs. If English is bad, then it is better to spend all the time learning the language instead of the site. How are you going to discuss the technical details of the project in a foreign language, if the customer himself is still confused in the specifications? This is just unreal. Good English is required.

Then the strategy is this: look for any customers. Even if they don't pay. This is not so important at the first stage. The main thing is that you will replenish your site real work that you did for Western companies. It is important. You need money right away - earn extra money on the side or whatever. Your financial situation is not relevant now (hard, of course, but this is a business, alas).

But then, having received a portfolio and experience in negotiating and executing orders, you can start counting on some money. Just remember to make the payment mechanism simpler for the customer - open an account somewhere for this. So that he can calmly pay without being nervous.

We have grown from 3 people to almost 40 in less than a year. That is, as you can see, I am not a theorist. There are still more orders than programmers. This is true. It's just that for many complex tasks it was not so easy to find people. In the end, you will come to the right conclusion - in order to do a good business, one must not be able to work well in this direction, but to be able to manage well. People, resources, etc. So you will need to study - I immediately warn you.

If you have any questions, write to: [email protected].

P.S. Offshore programming is a business that can be transformed from home to small and medium. There are some economic difficulties in America right now (like all of us here) and the difference in prices in the labor market is very noticeable. This can be a good use."

The term outsourcing (outsourcing) in translation from English means "external source". Any third-party development (by another company) is actually outsourcing. So, a product of literally any type of activity can be outsourced - consulting, software development, Web design, etc. Any large company uses outsourcing services in one way or another. Outsourcing allows you not to hire expensive specialists, but to take them on the side for the duration of the project or any part of it, while significantly reducing costs.

Approximately at the beginning of 2000, information began to appear in the press more and more often that America and Europe were beginning to refuse the mass admission of programmers and other computer scientists from the CIS and Asian countries. Somehow, the words began to sound quieter that for the full development of Europe and America, several hundred thousand foreign specialists are needed. This is what happened: it turned out that Indian, Russian and Chinese programmers can do the same job in their homelands. For less money, without the costs associated with immigration and no less professional. It's all called - offshore programming or IT outsourcing. This phenomenon is now on the rise in Russia. Moreover - many say that we are just waiting for the boom of the new industry.

Historically, outsourcing has developed within the United States, and this concept is most often understood there as the transfer of part of the company's operations to an external contractor - for a fee that is not directly related to the results of the customer company's activities. "Offshores" are given logistics, finance, information infrastructure, etc. Outsourcing appeared even before offshore programming and originally meant contract work for large consulting firms.The term was very fashionable in 89-90, when all these corporations and specializations were born. It was then that it appeared and in that context meant the transfer of business functions. But outsourcing is not only an order for programming. For example, construction is a typical example of outsourcing. If you need a house, and you do not build it yourself, you hire professional builders. Moreover, if you need an office, you can either buy it or rent it. Most of the offices are rented - this is also outsourcing. That is, all those cases when we buy services and goods necessary for doing business on the side, all this is formally outsourcing. Until recently, the largest outsourcers were companies combining audit, consulting, technology and even legal services. Now these businesses are gradually separating.

Outsourcing in the field of software development and implementation (especially international) is a relatively young phenomenon. With the exception of individual exceptions, it is less than thirty years old, and it flourished in the last 10 or even 5-7 years.

Concerning offshore programming, then this is a type of telework especially for specialists in the field information technologies(IT specialists), the meaning of which is to attract performers from regions with cheaper labor to the programming process, which can significantly reduce the cost of development. The term "offshore" emphasizes the significant geographic distance of the performers and connotes a looser handling of employment and taxation laws. Offshore programming is usually used to develop complex and time-consuming projects and the contractor is a specialized company, contact is made through an intermediary company acting as a guarantor of the integrity of the relationship between the parties.

Let's try to understand the reasons for using IT outsourcing.

The first and most important reason is cheapness. In the US, programmers - even visitors - need to be paid much more. And by the way, according to this parameter, Moscow loses, for example, to Bombay or Gomel - overhead costs are higher in Moscow. In the provinces, such services are cheaper, but the situation with qualified personnel is more difficult there ...

There is also a noticeable advantage in comparison with the export of people abroad. Firstly, not everyone will go for it for a variety of reasons. Then, different costs are associated with the move - a person will have to adapt to the local culture, acquire a house. At home, the programmer quickly joins the workflow.

According to Esther Dyson ( Adventure, USA), in light of the fall in the NASDAQ index, many companies are sharply reducing their costs, in particular, the cost of software development, thus, more and more attention is paid to offshore programming schemes. Also, companies often outsource routine work and focus on fundamental areas.

Outsourcing techniques, various forms and models

Forms of organization of outsourcing firms

If we limit our consideration to the situation with "distributed development" of software in Russia, then there are a lot of legal forms of organization of such companies. There are local branches of Western companies, including development centers of the largest software and hardware manufacturers, there are independent companies that have development teams and provide them to the client to solve his problems (as a rule, such teams do not carry out the entire development process, but only part of it). There are companies that receive specific orders from Western clients (not necessarily belonging to the IT industry) and deal with them on their own.

The type of activity of a software outsourcer can also be different, and include all or some of the stages such as: pre-project consulting, business analysis, architecture design, code and user interface development, quality control, prototyping, implementation and deployment, technical support and maintenance, and etc. There are companies that deal in general purpose products; and then there are those who make a product targeted at a specific vertical market or even an individual customer (this often requires a staff of specialists with unique skills, such as wireless telecommunications or numerical methods).

How can a company become an outsourcer? It is quite difficult to come up with some "boxed" product that can be sold. Yes, and in the Russian market in general, it is difficult to sell at least something. In the West, however, it is also difficult - the market is divided and it is almost impossible for a beginner to get there. There are custom and semi-custom items.

For Russian companies entering the Western market, the main problem is that in order to receive an order, you need to have a decent reputation in the West. And in order to acquire such a reputation, you need to successfully complete some orders. As a result, most offshore firms have arisen simply on personal contacts with foreigners.

Schemes of work of outsourcing firms

In offshore programming, two schemes of work are common. They differ both in the cost of work for the customer, and in the degree of risks that both parties bear - the customer and the contractor, and often in the quality of the product.
The developer can be serious, well-known companies that prefer to deal with no less serious foreign partners.
In this case, the customer receives the final product and the necessary accompanying documentation, in the course of work, the performers maintain close interaction with him, they have a well-established project management. In a word, such companies work "in an adult way". But they also take serious money for their developments. Firstly, the presence of references and a portfolio allow them to establish an influx of orders and even bargain with customers. Secondly, such companies prefer to work with large projects, and by our standards, an order for 100-150 thousand dollars and more is considered more or less "large", for the implementation of which the group needs at least six months of work ("average" order - from 50 thousand dollars, "small" - at least 10 thousand). At the same time, companies incur quite significant expenses for active marketing and advertising, because participation in only one major exhibition with the organization of a stand costs tens of thousands of dollars. Some companies, in order to provide themselves with regular orders from abroad, go to the establishment of representative offices abroad.
So the cost of developments ordered by such companies is still far from being equal to the Western one, then, at least, it is striving for it. However, such a scheme of doing business can no longer be called "offshore programming". In fact, this is a mutually beneficial cooperation of large companies for which the physical location of the head office of each of them is of no fundamental importance.

The work of start-up programming companies or just groups of developers, permanent, periodically working in the same composition, or temporary, assembled for a specific project, is built in a different way. Such groups and companies, as a rule, are outsourced to write not the entire system, but individual modules, often these are one-time orders, upon execution of which all relations between the group and the customer are interrupted.

The most reliable way to orders for a temporary group of programmers, however, as well as for a software company, is personal contacts with foreign partners. Apart from personal connections there are three more ways for start-up groups and companies to get an order. First, job postings and jobs are often published by non-specialized sites like the online version of the New York Times. Of course, in this way, "civil employees" are usually called HTML-coders or programmers-coders, that is, specialists of not the highest qualification, those who write program texts, and not develop algorithms. The second way to get a job is to apply through the same Internet to an intermediary firm. A kind of custom development exchanges are, for example, the American Offshore Software Developers Guide and Hellobrain.Com, the German Telework Unlimited. Some intermediaries take interest from the concluded contracts, some - a fee for access to project databases. There are those who work for free. But in any case, for each order on such sites, a serious battle unfolds, each offer competes with dozens of others. Finally, some domestic recruiting agencies are already taking on job searches for offshore programmers, although they will most likely look for offers using the same websites and the same New York Times.
It is clear that the results of such a search are often unpredictable. Therefore, to keep the customer behind him, to receive the next order from him, is considered good luck in this environment. If the customer becomes permanent, then very often the group closes on it, stopping the search for other employers: regular orders can be carried out either on a partial prepayment basis, or the group will receive other benefits and bonuses. But the point is not only in them, but in a very high competition among groups of programmers.


Small companies or just individuals, working on order, receive income, from which very often no taxes are paid. Works are usually carried out in the mode " remote office", in other words, the performers sit at home, which in turn reduces the overhead costs of the group to zero - for renting premises, electricity, etc. And this allows the groups to dump: even if the developers of the group are highly qualified, a programmer per hour of work on average, he receives "clean" 4-8 dollars in the regions and 5-9 dollars in Moscow.


The customer costs the work of a programmer per hour from 15-50 dollars, depending on the living conditions and the seriousness of the company for which the specialist works

Outsourcing Models

Recently, the media have been very often discussing the choice of a priority direction for the development of the export potential of information technologies. Two models of company development are often opposed: the "Israeli-Scandinavian" or product model, when a company invests on its own or with the help of investment funds in the development of a product and its introduction to the market and receives its profit from the sale of a replicated product; and the "Indian" or project model, where a company undertakes a custom software development project and earns its profit from each such completed project. The main idea of ​​the opposition is that Russia's resources are limited and it is necessary to concentrate on one model in order to achieve the greatest success. But not everything is so simple and unambiguous in such conclusions.

Consider each model from different angles:

Money

If we look at it in a big way, then, both in the project and in the product model, the budgets of companies consist of budgets for software development (product or project) and budgets for sales and marketing organization. The main difference is in their ratio. In an engineering company, the development budget is at least comparable to the sales and marketing budget. This is due to the following factors:

1. The market demand for companies built in accordance with the project model is mainly determined by the chronic shortage of qualified specialists for the implementation of projects. The need is determined by the level of information technology development in a particular country and the education system that trains specialists for the industry. An imbalance creates a need. The need is mainly determined by the shortage of specialists, and not by the price of services. This means that by specializing not only in the project market, but also in a certain part of it, where the shortage is felt most acutely, the price of services simply will not matter. The imbalance existed, exists and only increases with the development of information technology. This means that the need for quality project execution will exist for the foreseeable future. Technologies and tools may change, but the need will only increase. Consequently, money from the sales and marketing budget is spent mainly on finding new customers who, by definition, have such a need for the company's services, and not on development, let alone creating a market and creating a need for the company's services.

2. In a product company, the sales and marketing budget is highly dependent on how the product "hit the market." That is, if a product occupies a niche where there are no competitors and the product itself is of sufficient quality, it sells itself. In this case, at the stage of initial sales, the costs of their organization are also comparable to or lower than the development costs. But very few people are so lucky. Basically, product companies have to make products where competitive products already exist. Therefore, in order to enter the market and win a certain percentage of the market, massive financial injections into marketing and sales are required. In this case, the development budget is significantly lower than the development and marketing budget.

A few words about profit. The project is already being done for the customer, that is, if there is no customer who is willing to pay money, then there is no project. Therefore, the final element of the project company is already profitable for the company. Therefore, an engineering company is, by definition, profitable, as long as no stupid decisions are made by management, such as allowing the percentage of paid projects in the company to fall below a certain level, or greatly increasing non-development budgets. The product is made mainly for the future customer, that is, at the time of product development, the company is unprofitable, then entering the market and organizing sales also requires significant investments. That is, there is a vicious circle. A product company tries to be profitable, and in order to achieve profitability, it must spend more money.

The amount of profit. The size of the profit of the project company is relatively predetermined, since there are certain specified costs for the implementation of each project and the turnover is increased in an extensive way, that is, an increase in the number of employees for the implementation of projects. You can change the company's profit only by increasing the company's load and increasing the price, but it should be noted that it cannot be seriously increased. The profit margin of a product company is not limited from above by anything other than the number of customers who can buy the product. With the right hit in the market, you can provide hundreds, and sometimes thousands of percent of profits.

Hence the main conclusion:

1. The project company, if properly managed, is profitable and can exist and develop at its own expense.

2. By definition, a product company is an investment company and can be developed at the initial stage, using investment money.

Risks

Based on the fact that a product company is highly dependent on market uncertainty, it is more risky than a project company. Even the mandatory application of market research techniques cannot guarantee the reduction of the main risk to the level of the project company, where the market is more or less defined.

If we talk about risks of a different order, it can be noted that the project company has greater risks when compared with a product company of the same turnover in the following areas:

· company management risks. The project company has a large staff to achieve the same turnover. Consequently, the management of a project company is more complex and carries greater risks;

· growth risks. Since the project company grows in an extensive way, that is, by increasing the staff, the growth of the company, especially if significant growth rates are required, is fraught with risks. Because a significant increase in the size of the company without building an appropriate management system, and especially quality management, can lead to a loss in the quality of project execution and loss of customers, and, consequently, profit;

· risks associated with customers. If the number and dimension of customers is not properly managed in the project company, a bias in revenues towards one customer can form, which can lead to serious problems for the company if this customer stops working with the company;

· country risks. Since the project company has a large dimension and less mobility of the production component and, in addition, the production in the project companies is usually located in countries with a lower standard of living and greater political and economic risks, therefore, it has greater country risks.

The product model is hardly realistic for Russia. After all, it requires not only very significant investments, but also relevant experience in forecasting the development of the world market and promoting products, in Russia there is very little (there are no more than a dozen firms involved in the creation of export software products, and this is a minuscule amount).

A more realistic way for Russia is a design model, custom development. This is what India does. Here, too, some investments are needed, but their volume is an order of magnitude lower than in the first option, since this model initially profitable (of course, if there are orders).

However, in addition to the obvious advantages, the offshore programming model also has a lot of disadvantages. Some of them: organization of work is required without constant contact with the customer, demand for services depends on the situation in the international market, it is difficult for Russian companies to compete with Indian firms (leaders in this field) in terms of price.

Therefore, it makes sense for software companies to think about other ways to make money. Let's say it's quite realistic to get shares in new projects (in addition to money) just for doing it a little cheaper. This way of earning income is widespread among Western computer firms. Let's say Ariba, Commerce One, Computer Associates invested in online exchanges not money, but software and services. At the same time, the risk is small, but there is potential for growth. " eGAR did this when she created a product for a Spanish company. Now this company has placed its shares on the stock exchange, made IPO (i.e. Initial Public Offering - initial public offering) and costs 11 million dollars", - Zhene Ioffe shares his experience.

Outsourcing company success criteria

Now let's try to identify the key factors for the successful operation of an offshore software company in the market. All these factors can be called derivatives of the quality of one kind or another and can be divided into three levels: personnel, project, company.

The first level is the quality of personnel

In offshore programming companies, people decide everything. Computers, compilers, etc. are just tools. Employees who, regardless of their level of training, because of bad morale, poor management or lack of motivation, do not want to work effectively, mean death to the company. It is no secret that even diggers often do not work in Russia, for which you can set clear production standards, expressed in cubic meters or trench length. It is necessary to hire the right people, train them and create conditions for them to work independently with maximum efficiency. You can make a person dig, but it's hard to make a person think. This is the main difficulty in building management in software companies.

Only well-selected, trained and motivated staff can carry out high quality projects. They say that even within the same project, the quality of programmers' work can vary by orders of magnitude. (This is not about lines of code; it is not a big problem to write a lot of code - the problem is efficient code with a minimum of errors, easy to understand and maintain.) lie abyss. And no impact on the next levels of quality assurance will help to correct, let alone solve the problem of personnel.

The quality of personnel is ensured consistently by the following measures.

  • Building a selection system. It is better not to take a person than to take the wrong one. This rather conservative approach to selection does not correspond to the usual Russian "maybe", but it is the best suited to ensure the quality of personnel. Clear requirements for personnel should be formulated, the violation of which is not allowed. Requirements should be as detailed as possible. It is necessary to provide means of checking the candidate for compliance with these requirements: a resume and assurances of the candidate of his own "coolness" will not help to understand what is behind it. A system of interviews should be built with the company's leading developers who are able to assess the candidate's skill level. It is advisable to interview several leading specialists with the organization feedback, i.e. with an analysis of the subsequent work history of the accepted candidates: this allows you to make adjustments for excessive optimism / pessimism of interviewers during the selection procedure.
  • Building a system of natural selection of personnel within the company. It is very important to build a system for identifying problematic employees, monitoring their work and making a decision on their adequacy for official duties. Very often, to solve these problems, a powerful managerial structure is built at the rate of one manager for 7-10 employees. It should be noted that his colleagues are more interested in resolving the situation with a problematic employee, but they do not want to participate in making an unpopular decision. As one of the variants of the system of natural selection (when colleagues at work take part in identifying problem employees), the so-called refusal rule can be used. An employee can be fired if he is consistently rejected by project teams. Project managers have the right to refuse, and management has the right to make an unpopular decision based on the refusals.
  • Building a system of evaluation and career growth. In addition to the initial assessment and monitoring of the employee, it is necessary to build a system of continuous certification of employees. The appraisal system is inextricably linked with the employee's career development system. At the same time, goals should be set both in the professional and in the managerial plane; they should have a clearly defined character and clear time limits for control, and their achievement should be stimulated. Such a system not only gives employees the opportunity to grow financially and professionally, but also allows the expansion of the company to adapt its structure at the expense of its own employees.
  • Building a personnel training system. The knowledge of the personnel must meet the requirements of the market, therefore, it is necessary to pay attention to the retraining of employees in relation to new conditions. Refresher training can be organized through courses or research projects. In addition, the training system can be tied to the selection system. For example, if you need to hire more employees than can be found in the market according to the given selection criteria, then the only way to still recruit the required number of staff is to reduce the requirements while organizing the training of recruited employees.
  • Building a motivation system. It is very important to build a personnel motivation system in the company aimed at high quality of project execution. At the same time, the motivation system should give the employee the feeling of some guaranteed income when production is connected with the success of other departments, for example, the sales department. This means that an employee must have a basic guaranteed salary, which is determined by his professional level and is reviewed at the certification, increasing also with bonuses for the success of a particular project. It is important that the scheme for calculating and distributing bonuses be transparent. Another most important condition for the correct system of motivation is its mandatory implementation. Delays in salary payments and problems with bonus payments after successful completion of a project can lead to company morale and quality issues in subsequent projects. You can save a ruble, but then lose thousands.
  • Building a system of social protection of personnel. Very often, the social protection system, which includes health insurance, meals, loans, mortgages and other elements, is perceived as a kind of costly component designed to ensure the company's competitiveness in the labor market. However social protection employee can directly benefit the company. Thus, the absence of an employee due to illness during the week causes a loss, because his time cannot be invoiced to the customer. If, however, 30% of the staff dropped out of a short-lived project due to an influenza epidemic, then this project will be difficult to save.

The second level of quality - the level of the project

Assume that the company has a trained, trained and properly motivated staff. Is there now confidence that all projects will be carried out with the required quality in the required time frame? Probably not. It is also necessary to give employees the means to successfully complete the project.

It is convenient to think of a project as a triangle with three parameters at its vertices.

  • Functionality. A set of project requirements.
  • Quality.A set of criteria for quantifying project quality (for example, the number of errors of a certain priority when testing according to specific scenarios).
  • Timing.Delivery dates for a project of a given quality and required functionality.

Project management takes place within this triangle - roughly speaking, there is trade between its peaks. Adding functionality affects the timelines that can be met by lowering quality or changing from one requirement to another. If we add here the cost of the project, the triangle turns into a pyramid.

Let's analyze the means for the successful implementation of the project.

Organization of development teams. There must be a certain division of labor and responsibility in the project team to improve productivity and quality. For example, a developer can potentially work as a tester and even test the results of his own work, but even at the everyday level it is clear that this approach is not optimal. In addition to the division into development and testing, other functional areas can be distinguished: business analysis and work on requirements, visual design, etc. In addition to the functional division, there is also a management division in the team, say, a lead developer and a lead tester. The project manager closes the project triad.

Project development processes. For all its technical uniqueness, each project carries some repeatable elements that can be identified, documented, and constantly worked on optimizing them.

At the heart of any software development project are several key processes that do not need to be invented, but simply implemented.

  • Interaction with the customer. The organization of such interaction or the management of customer expectations is one of the most important elements of quality. The contractor must clearly understand what the customer wants, and the customer must be clearly aware of what and when he performs and delivers. Only with this understanding, the customer will be ready to part with the money. It seems to be a simple formula, but it requires exceptional attention, because between the customer and the performer there is sometimes an abyss of thousands of kilometers, in language and culture. When organizing a remote development process, there is no magic formula that can solve all problems.
  • Change management. Any project, even with the most detailed elaboration of requirements, is subject to change. As time goes on, market requirements may change, and, accordingly, project requirements may be revised. No need to be afraid of it, you just need to be able to manage it. Any change must be formulated, evaluated in different directions (labor intensity, cost, date shift, risks) and accepted or not accepted for execution. In other words, the process of evaluating each change is aimed at understanding what this change will bring, and an informed decision on its fate.
  • Project risk management. It is necessary to constantly assess the status of the project and possible risks that may affect the implementation of the project on time and with a given quality. At any given time, you can assess the ten most significant risks and develop a plan to address them. Every week, such results of risk reduction work and the risks themselves can be reviewed and a new action plan developed. This approach allows you to clearly identify the problems of the project and constantly work on their elimination.
  • Configuration management. The project does not consist only of executable program modules, but is a large collection of design documents, testing documents, program texts and executable code. These are dozens or even hundreds of documents. All of them are knitted according to versions and interconnected. Thus, the introduction of a new requirement for the project changes not only the source code of the programs, but also all the accompanying testing documentation. The new requirement must be tested, and for this it must be included in the test plans. Configuration management is a set of procedures that maintains the integrity of all project documentation and project codes.
  • Project planning management. Without detailed pre-planning, it is impossible to plan the timing of the project; This is not a wish, but a strict requirement. The plan should be as detailed and detailed as possible: you can’t go there without knowing where.
  • Project quality management. This usually means testing the executable modules of the project for defects. In more detail, quality management includes several stages.
    • Planning the quality management process. Already at the stages of project evaluation, it is necessary to understand how the project will be tested, which modules, which elements, how and for what impacts will be tested: functionality, performance, load, compliance with standards. The absence of quality requirements in the project requirements document can lead to serious problems in the following stages.
    • Preparation of project documentation for testing. After the planning process, it is necessary to design testing.
    • Training additional systems for testing. Sometimes performance testing or automated testing requires the preparation of standard tools or even the development of custom tools.
    • Actually the process of testing and improving the quality of the project. The testing process should cover not only the executable code, but also everything that is produced in the project process, such as requirements, design documents, test plans, source code, etc. Only constant and end-to-end testing of all project components can ensure its quality.
  • Project standards management. In addition to processes, the company can identify common areas for all projects. For example:
    • coding standards. Describe the requirements for writing and documenting source code programs. Usually depend on the programming language and are mandatory for all projects, except when the customer requires to follow their standards. The use of this approach allows you to create code in accordance with predefined standards, which allows you to make it as independent from the author as possible.
    • User interface standards. Without limiting creativity, based on the experience of previous projects, they show how not to do it.
    • Design standards. They allow you to determine the requirements for the level of detail of design documents and avoid voluntarism in design. If the standard states that all error messages should be written, and the designer was too lazy to do this (which can lead to serious problems when installing the program), then, in accordance with the standards, testing of the project should reveal this flaw.
    • Ethics of project implementation. Ethics refers to the movement of responsibility for the quality of the project. For example, if top management, together with the functionality, sets the project team the timing and quality of the project, then who is responsible for the project delivery date? Project team? No - top management. If the project team has issued deadlines, then it is responsible. It seems, what difference does it make who is responsible for what, if both of them set the same deadlines? The difference is very big. The difference in the morale of the project team, which has a very big impact, if not on the timing of the project, then on its quality. If management "presses" the project on time, this can lead to the flight of employees from the project and from the company. Since significant money is invested in the selection and training of each employee, ignoring this rule can lead to very serious losses.

The third level of quality - the level of the company

One of the important factors for quality assurance at the company level is the creation of an optimal company management structure. The nature of business is that change happens all the time. It is impossible to work on the principle of “started a project and forgot about it”. Life is in full swing: new projects are constantly coming up, changes are taking place in current ones, projects are suddenly closed, and the structure of the company must be ready to accept such changes, responding to them with maximum speed and quality. Let's list the requirements for the company's management structure.

  • Adaptability.Project teams must be formed and disbanded at great speed.
  • No hierarchy. New inputs to the company come very often and the company must respond to them, so building a hierarchical structure is useful only when departments do not interact with each other at the project, operational level. Otherwise, it will take a lot of time and effort to make a decision on changes at the interdepartmental level. The nature of the project business is such that changes in the composition of project teams take place almost daily. Imagine what a nightmare the decision to change the project team will become if they involve not only project managers, but also a lot of department heads.
  • Production orientation. The company must have a clear understanding that project teams bring in money, and the rest, including management, no matter how insulting it may be, are aimed at servicing their work.
  • Self-organization. By following project ethics, delegating responsibility, and training staff, projects can become independent temporary units that require minimal attention during execution.
  • Efficiency.Each level of management in a company must be evaluated and constantly weighed against the added value it brings. There should not be bosses just because they should be.

There are many approaches for continuous quality improvement at the company level. Let's take a look at some of them.

  • Bestan experience. It is based on stimulating the generation of changes within the project team aimed at improving quality, their identification, analysis and subsequent consolidation within all project teams.
  • Metrics.It is aimed at the constant collection and analysis of objective information about the work of each employee, the project and the company as a whole. Objective information refers to quantitative parameters that describe the quality of work. For example, the average delay in project delivery or the number of errors. The presence of such metrics and the collection of information over a long period of time allows the company's management to make decisions based on more objective data and, therefore, improve quality more effectively.
  • Project audit.It pursues two main goals: identifying problems with project management that the customer has not yet identified, and taking corrective measures; identifying the compliance of the work of the project team with the requirements of the company and taking corrective measures regarding the team.
  • Post-analysis of the project. An analogue of the audit is carried out at the end of the project and allows you to identify the achievements and problems encountered during the work on the project.
  • Company certification. It consolidates what has already been developed in the process of building a company management system. Certification is often seen as a panacea for building a quality system. However, the sequence should be different - first, the construction of a quality system (possibly, taking into account subsequent certification), and then its certification.

Risks and problems

Technical risks

With all the benefits for both the customer and the developer, there are several negative sides to the offshore programming scheme.
First of all, neither the customer nor the performer, especially if the joint work is carried out for the first time and the parties are not familiar, cannot be completely sure of each other. There is always a chance that the customer will be insolvent or will not want to pay a predetermined amount. On the other hand, the performer may not be able to cope with the task, or not cope at the proper level, or simply miss the deadlines.
The remoteness of the parties also introduces a certain risk into the process: long distances do not allow the customer and the contractor to communicate often and tightly. As a result, programmers may misunderstand the terms of reference or, conversely, the customer may provide an incomplete terms of reference. This risk, however, is quite easy to neutralize by providing small stages in the calendar plan for the delivery of work. In this case, the customer can better control the development process, and the possibility of error is reduced for the developer.

Problems


There are a number of problems in offshore programming that do not have a good solution. One of these problems is the scalability of the future system. The fact is that it is rather difficult, and sometimes simply impossible, for a developer who writes not all the code, but only some of its sections, to imagine the entire system. Therefore, the entire responsibility for the applicability of the modules written by the outsourcer in the further development of the system lies with the compilers of the terms of reference. Programmers, at best, will achieve full compliance of the code with the text of the terms of reference.
Another kind of purely technical problem is related to the support and maintenance of the written code. After signing the acceptance certificate, the code is transferred to the customer along with the rights to its further use, while the developer loses the right not only to replicate his development, but also to use the functions, modules and libraries written by him in his other developments. Such an approach, on the one hand, infringes on the rights of the programmer, because his name is not even in the list of authors of the software package. On the other hand, along with the rights to the code, the customer must also take full responsibility for the correct functioning of the module as part of the system, its further modification, adaptation, and so on.


These risks are taken into account when choosing tasks that are given to offshore development. First of all, these are tasks that cannot be solved by standard means at the disposal of the company, or tasks that are not economically feasible to solve on their own. For example, a large Western firm that does not specialize in programming can entrust an offshore company with the creation of an entire system. And Western software companies offshore development of secondary modules, device drivers and similar programs, the writing of which takes a lot of time for highly paid employees of the company.

In our opinion, the most effective way to enter a foreign market is cooperation with a Western high-tech company that is able to transfer technology and experience in a particular market segment to a Russian partner. Usually, in an alliance with a Western partner, any Russian company has to go through all the stages of relations: from customer programming (a junior partner who performs custom programming work) to full participation in the development of systems developed jointly. But there are very few examples of equivalent alliances.


Our offshore programming market is very narrow, but it can be said that those companies that immediately create the right structure immediately receive advantages on it: sales offices are in countries where there are potential customers (USA, Canada, European countries, for example England), and departments that are responsible for the management and quality of the product - in Kyiv. Such firms will be successful provided that they are able to competently build a management structure, maintain quality and deadlines, plan work and resources. In order to actively sell abroad, you need to know the specifics of the Western market well, and, therefore, invite better Western specialists to sales departments. Professional managers are needed for effective organization of work on fulfilling Western orders in Russia. Unfortunately, people who have come to our offshore programming are mostly "techies" who do not have management skills.


A good manager can cost even 10 thousand dollars, and such expenses are not easy to "work off". But you don't need a lot of managers. In order to make a breakthrough, it is enough to bring a hundred to the entire Russian market, the rest can be brought up by yourself.

The heads of companies involved in offshore programming do not yet notice the state's special interest in the problems of this business. And some doubt the need" state support"as such, or they are simply afraid of it: "It would be better if they didn't touch it." But state intervention is inevitable. And this is the main - systemic - risk of the offshore programming market.


In the current law on foreign economic activity, the definitions of export and import are such that they simply take firms involved in offshore programming out of the law. But sooner or later the current situation will be corrected. According to rumors, one of the draft laws makes an attempt to clarify the concepts of export and import by adding the results of intellectual activity. If this bill is passed, then many offshore programming companies, as they do now, will have serious legal and financial problems.

The position of the government in relation to the high-tech sector cannot but be recognized as legitimate in many respects: legislators are waiting for the market to take on a clearer shape, develop its own rules of the game, which will then be reflected in laws. But the complete absence of rules greatly hinders the formation of a transparent and sustainable market. After all, only solid the legislative framework can become the basis for creating a favorable investment climate for the development of the high-tech sector.

Disadvantages and advantages of Russian outsourcing

Robert Williams ( CDC adviser, USA) noted in his report that in the conditions of the presence in Russia of all technical capabilities, sufficient qualified personnel who are able to develop and manage the development of complex software tasks, the main question is whether Russian companies will be able to arrange a solution to marketing and sales issues. In this vein, the recommendation to Russian companies is to pay more attention to the customers they have already acquired, since conquering new markets can become a very expensive undertaking.


Accordingly, in the process of competition for an order, the fulfilling company should not build a competition based solely on the price factor, since as a result there will not be sufficient funds to invest in marketing programs and technical improvement. In the end, companies from China or Pakistan will win the pricing strategy faster. Therefore, you need to focus on customer satisfaction with quality. And this requires an appropriate quality control system and ISO or CMM standards.

Speaking about the criteria for choosing a company to carry out outsourcing projects, Eila Ruumukainen ( Sonera Rus., Finland) noted that the company is trying to focus on a long-term partnership program. The main criteria for assessing the business of a potential partner:

  • technological competence;
  • effective organizational business models;
  • legal and legal aspects;
  • continuous and sustainable business development;
  • the presence of positive reviews, recommendations from previous customers;
  • caring attitude to the professional development of their staff;
  • availability of quality certificates for the services offered

Igor Agamirzyan ( Microsoft Research) noted in his report "Russia's Place in the Global IT Market" that Russia has potential, but the reality is far from desirable. Russia has a human resources potential: after all, the IT industry in Russia has been developing for 10 years. In addition, the state has recently begun to realize the strategic importance of the IT industry for the country as a whole. If we trace the history of the formation of the domestic IT industry, we can identify the following stages:

  • 50-60s- developments focused on military applications. In a certain sense, the rapid development of qualified personnel is beginning, but there was no real demand in the market - the industry worked in small circulations and small groups of developers.
  • 70-80s- stagnation in the field of creating original developments, the introduction of IT into the economy based on clones of Western models of computer technology and software (ES computers, SM computers). As a result, it was not possible to form industrial traditions in IT, there was an attempt to industrialize the industry by administrative methods, and Western technologies were used to "cheaperize". As a result, Russia is 5-6 years behind in the field of modern computer base, as well as the virtual absence of the software industry.
  • 90s- at the beginning of the decade, there was a transition of microelectronics to mass products of a low degree of integration and practically an exit of microelectronics from the high-tech sector. The non-state IT sector and the computer business based on Western PC technologies began to develop rapidly. The formation of a private business focused on the import of computers and components, as well as the formation of a sales model "distributor-dealers" began. The so-called. "red build" PC. In this decade, transnational manufacturing corporations entered the Russian market. The market is integrating information and communication technologies, the system integration segment is developing, an independent network of solution providers based on standard platforms is being formed, leaders in the development of application software for the local market in specific Russian niches are emerging.

As a result, due to the unification and use of international standards, by the end of the 90s, Russia had eliminated the backlog from the West in the field of technology and technological solutions. Thus, the IT market was formed, local suppliers of products, solutions and services appeared, and all this without any significant attention from the state.

As a result, we can highlight the obvious problems of the modern IT market in Russia:

  • personnel:
    • in Russia there are about 1.3 million programmers, but no more than 50-200 thousand actually work in the industry;
    • in 1990, 100 thousand specialists graduated from universities, in 2000 - only 7 thousand;
    • in the coming years, the demand on the market may reach about 100-150 thousand specialists.
  • financial:
    • taxation (in case of software export - VAT refund);
    • customs duties (in case of software import);
    • working capital and credit resources, investment attractiveness and capitalization of Russian IT companies;
    • the main task is to form the image of a country capable of solving its own problems.
  • legal:
    • industry standards;
    • copyright and related rights...
  • cultural:
    • linguistic and cultural fundamentalism, which contradicts the practice of information openness and globalization of labor organization and business processes.

Russian universities provide education that does not correspond to the tasks of business. Students do not have the practice of real projects. Starting in their second year, they are looking for a job that usually has nothing to do with programming: up to 70% of students become sales managers for anything. The university authorities do not understand how programming differs from commercial programming. Three courses are enough to train competitive personnel on the world market, but during this time the student must master the basics of industrial programming, production organization, project management principles, project marketing, and get the concept of project quality. Of course, good English is needed, but in institutes students do not receive this in full. Commercial training centers can only give lectures, and this is not enough. Therefore, some fairly large companies have to create their own training centers.

So, we can single out the following global problems of the Russian IT outsourcing:

Lack of experience in offshore programming scheme management
Russia is just beginning to penetrate this market and is in dire need of experienced managers at all levels, from top managers to middle and junior managers. Companies in other countries have spent years building and refining their organizational structures to ensure the stability and quality of the software development process. On this way, domestic enterprises, according to ATP experts, still have a lot of bumps to fill.

In support of these conclusions, the ATP review provides the following data. The Software Development Institute at Carnegie Mellon University has developed a system for measuring and certifying the software development process called CMM. Among the 160 organizations that have opened their level of certification to the press (from 1 to 5), there is not a single Russian one. Of the 39 companies that have achieved level 5 certification, 21 are located in India.

Obviously, the certification system developed by the distant University of Pittsburgh is by no means a mandatory standard on the market. But, at the same time, the adoption of certain rules of the game, although not an objective necessity, still has a certain impact on customers, and such market demands cannot be ignored either. Moreover, this certification becomes relevant in a situation where in Russia itself there is an acute shortage of companies engaged in consulting, training, and, ultimately, certification of business processes according to ISO and CMM standards. The lack of such systems of expertise, according to ATP, greatly complicates the promotion of domestic software companies in the world market.

Thus, according to the observation of foreigners, the number of experienced Russian managers in this market is not enough. That is why, in most cases, Russian specialists with management experience in IT companies abroad are willingly involved by enterprises to manage offshore programming projects in Russia.


Language
Most of the other countries involved in offshore business are English speaking. In fact, not every developer involved in the project is required to speak the language of the customer. Such a need exists only for project managers who are required to coordinate work with the consumer. Nevertheless, as ATP experts note, the more project participants speak the customer's language, the higher the level of mutual understanding in the team. According to Americans, the skills of senior managers of software companies in modern management and in knowing the language of the customer are at a critically low level in Russia.

Relative difficulties with entry into the country.

Compared to other participants in the offshore programming market, Russia has stricter control over the entry of foreign citizens into the country. So, if in India employees of foreign organizations that have placed orders under the offshore programming scheme have the opportunity to visit the country without a visa for a short period, then in Russia such trips are limited by the visa regime. Such conditions, according to American researchers, make it necessary to plan ahead for travel, which leads to complications in emergency situations.

High cost of telecommunications services

This indicator is a critical element in the offshore programming system. Despite the fact that prices for telecommunications services are falling, they still remain at a higher level than in other regions of the world.

Weak marketing opportunities

Lack of experience puts domestic software companies at a disadvantage. Most of the major Indian software developers have long opened their offices in the countries of potential customers. In addition, according to observers, the Indian diaspora is already quite entrenched in US software companies. It is obvious that having a strong representation in the country of the customer greatly facilitates the process of preliminary negotiations. It is still difficult for Russian firms to compete in the American market. According to Andrey Smirnov, executive director of the Novosibirsk-based Center for Financial Technologies, despite the fact that the company's projects in Russia include large banking payment and billing systems, their office in Chicago has so far managed to receive only the most basic orders. And this despite the fact that the representative office was opened in 1994.


Lack of specialized associations

Speaking about national associations in the market, first of all they mention NASSCOM, an Indian body that unites companies operating in the offshore programming market, as well as structures designed to promote Indian software on the world market. In many ways, it was thanks to the efforts of this association that the Indians managed to lobby their interests in their own government. The responsibilities of the association include providing the most favorable conditions for clients cooperating with Indian software companies. Issues of taxes, export-import operations, intellectual property, labor legislation, currency control - this is an incomplete list of problems that were resolved in India 10 years ago and that the Russian authorities have yet to solve.

Summing up, we can say that the current state of the Russian industry in the field of offshore programming is very similar to the state of affairs in India ten years ago. The total income of domestic companies in this sector corresponds to the Indian one 10 years ago. But in terms of wages in the field of information technology, there are no differences today. Therefore, Russia's main competitive advantage on the world stage remains only the educational system capable of generating specialists in high-tech industries. But this is not enough. In the opinion of the Chamber's experts, in the case of increasing marketing experience, Russia's potential is quite capable of making the country one of the world leaders in software development over the next 10 years.

And in general - it is necessary to pay a lot of attention to management and marketing. If you are not directly a branch of a western company (in this case, you may have almost only developers on your staff), then you will have to work hard to earn the trust of western partners. And, in particular, to hire highly qualified and expensive sales managers, preferably from among Americans by birth.

According to the magazine " iBusiness "You can take 6" no "to outsourcing in Russia. True, these negative points are more likely addressed to customers than to performers, but there is no effect without a cause ...

1. The specifics of Russian contractors and service providers is such that they seek to pass on to the customer all their own costs associated with the risks of non-fulfillment of obligations by other customers or with inefficient management of their own business. One of the typical examples of outsourcing is the delivery of correspondence by courier companies. Why do many firms still maintain a staff of couriers - because of inertia and unwillingness to accept advanced ideas? Hardly. Rather, they are driven by sober calculation. Own courier service is cheaper. It is headed by one manager, and not by a cumbersome hierarchical structure, as in a large courier company. She is more manageable. And she adheres to corporate standards of communication with clients. The same calculations can be made for IT outsourcing in Russia. The situation is aggravated by widespread computer illiteracy. So it's cheaper to have a "rapid response team" for recurring problems than to outsource computer system maintenance to a third party. Ultimately, the price of an outsourcer, whose employees will spend the days and nights in your company, will be such that it will be cheaper to abandon the computer system than to keep it functioning by contractors.


2. Relations with Russian contractors require vigilant control. But Russian middle management does not know how to do this. Moreover, there is always a risk of collusion between the service provider (contractor) and the client company's employee who controls it: prices are inflated, and the difference is divided in half. So the head of a Russian enterprise needs to be prepared not for savings, but for increasing the time spent on managing service processes.


3. Russian business is not yet very fond of the word "openness". Therefore, a confidentiality agreement is concluded with any partner, which usually contains clauses that prevent the transfer of any information about the customer to third parties. And the experience of the relationship between the outsourcer and the client is usually such that neither the customer of the services nor their supplier likes to talk about it.


4. In addition to the “closeness” traditional for Russia over the past decade, the problem is that there are simply no “best practices” for outsourcing in Russia. There are isolated examples of a more or less successful "marriage of necessity." But there are no truly effective solutions that can be replicated. In the West, the business of outsourcing companies is akin to consulting. Serving one or another process, contractors immediately transfer the advanced solution developed for one of the clients to all the others. But in Russia it is impossible. Whatever the city, then its own temper. Whatever the company, then exclusive schemes.


5. Employees of the company to which you have outsourced the maintenance of your information system suffer from the same vices and have the same attitude as your regular employees. And if you have not been able to get the full-time employees who are always at your fingertips and receive their livelihood from you, why do you expect those who are not dependent on you to work better? Their superiors are far away. And you can always explain to him that it is you who are to blame. And the leaders of the company that undertook to serve your information system, to save face and income, they will blame your employees, not their own.


6. The traditional Russian reliance on "maybe" is typical for outsourcing service providers to the same extent as for customers. Everyone wants to get more contracts. And today they prefer not to think about the fact that tomorrow there may be an explosive growth in the needs of the client. "Let's solve problems as they come" - a favorite saying of Russian entrepreneurs and managers

Now let's move on to smaller problems, such as project execution problems:

Problems of distance and language. Solutions to such problems can be the following options. You need to understand that there is no single solution - each of the options has both its advantages and disadvantages.

  • The local manager of the customer, who is geographically close to the customer, is "native" - ​​speaks the same language with the customer, understands its cultural characteristics and interacts with the customer and with the project team. Naturally, his role and significance depends on his personal characteristics. You also need to understand that it is not difficult to find a person who can solve business problems or technical problems, but it is difficult to find someone who will be strong in both.
  • The next step is to form a group technical specialists who work in the customer's office (on-site) and interact with the remote team. In the experience of large Indian companies, the ratio is often used: one on-site employee and nine remote employees.

Problems of unambiguous understanding of the project. It is very important that the customer and contractor have a common understanding of the project. The basis of understanding is the project requirements document, or, as they used to call it, the terms of reference. It is important that when different methodologies are used in describing the requirements, the customer understands these methodologies. There are no problems to implement the Rational Unified Process, the main thing is that the customer understands it. In the future, at the design and development stage, when the requirements are detailed, it is necessary to clearly understand the process and results. This is achieved in the following possible ways.

  • Maximum detail of project requirements and other project documentation.
  • Continuous delivery of modified project documentation to the customer.
  • Regular meetings for detailed joint analysis of project documentation; it is on them that misunderstandings and basic problems are revealed.

In addition to these problems, it should be noted that it is also necessary to manage the expectations of the contractor in relation to the technical level of the customer. After hundreds of completed projects, we have formed a clear rule to evaluate the technical level of the customer as the lowest possible. That is, all documentation, for example, on installation, should be so detailed that a first-class graduate could deliver the project.

Major players in the Russian market

Perhaps we should start with vested development. This is an example of a company that simultaneously works for many software development clients and provides them with solutions that are then incorporated into the products of these companies.

Probably the largest real-life offshore software company partially owned by IBM is IBA. It is a recognized player in the global JavaBeans market.

An example present in all posts - Luxoft. This company is part of the IBS group, and this is already a serious guarantee of quality and stability. They have interesting clients. For example, Boeing.

Also major contributors are data art Ent. (parent of Port.ru) and Moscow region Agava(Dolgoprudny city). Declared their intention to provide offshore services " Vesta Eurasia"(who bought V6), A.Partners and Actis Systems, which recently opened a branch in Vienna with the Austrian investment fund Red Stars, which will look for orders.

The company was among the first EPAm. Now her clients are SAP, Samsung, Halliburton, Colgate and many others. Its offices in Princeton, Moscow and Minsk employ, I think, more than 400 people. To my knowledge, they have made a significant contribution to improving the reliability and efficiency of Java machines (and application servers in general) for leading enterprise platform vendors.

Petersburg company " Reksoft"is an example of a company that has successfully mastered the vertical market. On the one hand, their developments in the field of telecommunications are guaranteed to be in demand. On the other hand, they require high qualifications and long-term staff training. This, probably, greatly contributes to profit growth. In Russia, Reksoft is known, in mainly, the project of the electronic store "Ozone".

You should also name the St. Petersburg company " Arcadia". This is not only the creator of a popular boxed online store integrated with 1C, but also a serious offshore company.

Still worth mentioning Novosoft and " Argusoft".

It is likely that the new project - SibIT in the Novosibirsk Academgorodok, which already has more than 800 programmers, will soon become a serious company. To do this, however, he will have to solve not only the problems of management and quality standards, which is already being intensively done, but also the problem of organizing sales in the US and Europe.

In addition, a number of Western companies have software development units in Russia. These include, for example, the company openpages, which creates e-commerce and Web site management software, and TerraLink, owned by Esther Dyson. And the companies Elvis+", "Elbrus-2000"and a number of groups from Novosibirsk and Sarov worked under contracts with such giants as Sun, Intel, etc.

Figures and forecast for the development of Russian outsourcing

Alexander Samochadin ( "Fort Ross") noted that according to the results of a recent study of the IT market in St. Petersburg, the following data was revealed: there are 203 software development companies in the city, 63 large companies (2,400 programmers) were examined in detail.

By areas of activity:

  • 48% of companies are exclusively engaged in custom software development;
  • 37% - development of own software;
  • 15% - service support.

Main customers The following countries are involved in the outsourcing scheme:

  • Europe (Scandinavian countries, Germany, Great Britain, Switzerland) - 24%;
  • USA and Canada - 37%;
  • Other countries - 4%;
  • The rest are customers from Russia.

Areas of software development:

  • Information systems using databases - 38%;
  • Internet development - 18%;
  • Telephony - 12%;
  • Artificial intelligence - 10%;
  • Reengineering, system programming - 22%.

However, statistics show the following figures for the market:

  • computer park:
    Russia - about 5 computers per 100 people;
    Japan - 48, USA - 62;
  • Internet access:
    Russia - 2.7% of the country's inhabitants,
    Japan - 48%, USA - 56%;
  • share of the IT sector in GDP:
    Russia - 0.61%, Japan - 2.72%, USA - 4.38%;
  • in absolute terms, the volume of the IT market in Russia is no more than 2% of the US market.

And at the same time in Russia:

  • labor productivity in the IT industry is 38% of the US level (this is an absolute record for the Russian industry, on average this figure is 18%);
  • growth rates average over 10 years at least 20% per year;
  • Russia has about 1.3 million programmers;
  • Recently, a number of "success stories" have already been formed: - in the domestic market: 1C, Promt, ABBYY Software, etc...
    - in foreign markets: Cybiko, Newspaper Direct, Parallel Graphics, Kaspersky Lab ...

So, offshore programming market dynamics as follows:

Region

year 2000

forecast for 2003

Russia

$125 million

$475 million

Asia/Oceania

$5 billion

$18 billion

The whole world

$78 billion

$130 billion

In addition to these data, Aleksey Sukharev (company Auriga, USA) cited InfoWorld data (February 2000) on the size of the offshore programming market in the USA:
2000 - $5.5 billion, forecast for 2005 - $17.6 billion

By the beginning of 2001 the volume Russian market offshore programming was, according to some estimates, about $70-$100 million.

This was stated in his report on the development of offshore programming in Russia by Vice-President of the Russian Academy of Sciences Vladimir Fortov, speaking at the day of the Ministry of Communications and Informatization of the Russian Federation held within the framework of the international forum "Russia in the Electronic World". According to V. Fortov, now in Russia about 100 companies are engaged in this activity, employing more than 8 thousand highly qualified employees.

McKinsey Global Institute has published a report on the development of the offshore programming sector in Russia. According to the report, this sector (including Russian specialists developing software products under contracts with foreign companies) will grow by 50-60% per year. And although at present the Russian offshore programming sector is still in the initial stage of its development, it will receive, according to the authors, international recognition and will play a significant role in the global offshore programming market.

Conclusion

The author worked for about six months in one of the outsourcing firms. The company was small, only 6 people. The founder was an American, an employee of the corporation Real Networks . Accordingly, orders were obtained from there.

In general, the organization of the company was quite competent: in the USA there was a CEO, here - an operating director, a financial director, a project manager (or Group Program Manager ), 3 programmers and a system administrator. Everyone except the directors had programming skills, so there were practically no emergency situations. Who was missing in the state - so it's testers, who did not have time to recruit until the closing of the company. Although the COO combined this position, the Americans remained the main testers.

The technical equipment of the company was more than good, software, in general, too. An error reporting system was implemented (or Bug tracking system ), code preservation tools, a centralized project management system were used ... True, the software was either free or pirated, but in Russian conditions this was not something unusual. In general, management was also organized quite competently. However, the quality of the work performed still remained low in Russia.

The end of this story is sad. This summer, due to IT -crisis in the USA and the fall NASDAQ all employees were dismissed on unpaid leave and then, after 2 months, they were completely fired at the time of the company's closure. The reasons for such a sudden closure most likely lie not so much in the crisis and the freezing of budgets, but again in the low quality of the work of this company.

Summing up, it can be noted that today the main problems of the Russian IT -outsourcing remain low quality projects and low level of management. This is typical for most small and medium-sized Russian outsourcing companies (with the exception of some large firms). In addition, there is a need to introduce a “product” model in order to have competitive advantages over Russia’s main rival in the field of

  • www. exteria. en- "Offshore programming or IT outsourcing" - 04.2001
  • www. pcweek. en- "Russian offshore programming" - 06.2001
  • The best reports at the scientific student conference
    "Global Information society: economic and socio-political aspects”,
    MGIMO-University, December 2007

    Offshore programming is one of the forms of offshore outsourcing, that is, the use of third-party specialists to perform part of the company's functions (“borrowing IT resources from outside”). The term "offshore programming" in the global IT industry is used to denote the provision of services for remote software development, performed by an independent from the customer and, as a rule, a foreign company with attractive development resources.

    European companies cite traditional cost reduction as the main reason for using offshore developers, which can range from 20 to 40% savings on in-house staff or local contractors. Two factors are also taken into account - time constraints and required skills. Time constraints become critical when compatibility issues between old and new versions of applications need to be resolved quickly, and the efforts of the available skilled staff need to be directed to other priority areas. In this vein, the desire of the outsourcing companies themselves to provide quality services is reflected in the possible construction of long-term relationships.

    Let's consider modern models of customer-executor interaction in the field of offshore programming.

    In the model Onsite contract worker client companies hire additional staff from in-country specialists from among emigrants or foreigners with work permits. To some extent, the main goal is achieved - saving on personnel costs, taking into account the place of residence, etc. This model works in some complex projects.

    In the model Pure Offshore Projects the possibility of savings is higher than in the previous one, since the project is carried out in the country of the contractor. The amount of cost saved depends on whether the contractor works directly with the customer or through a local system integrator.

    Model Onsite - Offshore Projects avoids the difficulties in coordinating the implementation of projects inherent in the previous model, since the contractor's team is physically located at the customer and is able to quickly and efficiently respond to the conditions of the project.

    Onsite - Onshore - Offshore Projects. As in the previous two models, the main work is performed by a remote contractor, who is "supported" by the contractor's representatives included in the staff during the creation and testing of the product, as well as by the allocation of internal company resources. An "included" team focuses primarily on project and change management, as well as creating and testing part of the overall project. As a rule, this model is used in very complex projects. Basically, this approach is common in Europe.

    Offshore Development Centers (ODCs). The growing popularity of the OP has necessitated the creation of offshore programming centers. This model is very popular among American companies that are managed from Indian centers. Thus, quite a lot of projects, both simple and complex in execution, pass through such centers.

    Volume of the world software export industry, 2005

    Source: Russoft Association, 2006.

    To date, the leading countries in terms of the number of companies providing offshore programming services are India (44% of the world market, exports of $23.5 billion), Ireland (17% 1 , $9.1 billion), China (13% 1 , $6 billion 2). Russia (3% of world software exports 1 , exports of $1.8 billion 2) is still difficult to compete with them, although, as experts say, it has enormous potential. Russian offshore programming is characterized by a number of features - disadvantages and advantages, which will be discussed in my report.

    Features of Russian offshore programming

    Many foreign experts in the field of information technology rightly point out that "IT can be called another natural resource in Russia" . The export of this resource is developing quite rapidly, one of the forms of which is offshore programming services. In this chapter, we will consider the features of Russian offshore programming, that is, those features that distinguish it from other countries (mainly from its main competitors - India and China).

    Disadvantages of Russian offshore programming

    Until recently, its main disadvantages were:

    1. The problem of communication with foreign customers.
    2. Lack of government support.
    3. Not a large number of programmers in companies.

    The problem of communication with foreign customers associated mainly with insufficiently good knowledge of the English language. While programmers from India and China conduct all negotiations in English without experiencing any particular difficulties, Russian programmers have to work for the domestic market, unable to negotiate with foreigners. Even programmers who sell their services abroad experience difficulties in communication, as they often misunderstand what is required of them.

    However, today more and more people of various professions, especially programmers, are learning English as a means of business communication. It should be noted that the level of teaching a foreign language in schools and higher educational institutions is increasing, so young professionals have fewer communication difficulties than their older colleagues.

    Until recently, one of the main problems of domestic offshore programming was lack of government support. While India and China supported the ICT market at the state level, provided firms with certain tax incentives, promoted the interests of their firms abroad in order to establish contracts with foreigners, in Russia the state remained aloof from the ICT market. However, recently the situation has begun to change, which is associated with the implementation of the Federal Target Program "Electronic Russia", which will be discussed later.

    Still unresolved, perhaps the main problem Russian offshore programming — a small number of programmers in companies. For example, in India, even a newborn company rarely employs less than 100 people, while by Russian standards this is the level of a large firm. For firms in this industry, the number of programmers involved is very important, since it directly depends on how many orders and how much it can fulfill. In addition, many customers prefer to use the services of large companies rather than small ones. For these reasons, the problem of low concentration of workers in this area greatly hinders the development of the offshore programming industry.

    Remarkably, the state is trying to cope with this problem by creating technoparks in the country, which will be the bases for the development of domestic firms and which will employ a large number of programmers.

    Advantages of Russian offshore programming

    As for the advantages in the offshore programming market compared to other countries, according to a survey conducted by the Russoft Association, many foreign companies that use or once used the services of domestic programming teams identified the following features characteristic of Russia:

    • The ability of Russian companies to cope with non-standard tasks necessary to improve products and manage complex projects.
    • A large number of highly qualified professionals with mathematical and technical skills, able to solve complex problems using technical knowledge.
    • Close to ideal price/quality ratio of services provided by Russian companies.

    The survey, which was conducted from January to February 2007, involved 20 large corporations in the US and Europe. It is important to note that they differ greatly from each other in size and income (from several tens of millions of dollars to 100 billion dollars), most of them have experience in using the services of companies from other countries. Thus, the listed advantages of Russia are recognized not only in our country, but throughout the world.

    Most respondents cited price as the leading factor in choosing a stock fulfillment company. However, one cannot ignore the requirements for the quality of products or services. One of the interviewed company representatives said the following about this: “The price is important in any case, but the skills of specialists also play an important role.” The salaries of Russian programmers are several times lower than those of European and American programmers, and therefore the "exploitation of minds" is relatively inexpensive. Add to this the high quality of the services provided - we get almost perfect price/quality ratio, which is, perhaps, the leading factor when choosing Russian order executors.

    I would like to analyze the reasons in more detail. High Quality services provided by Russian programmers. High level of teaching technical disciplines has been preserved since the times of the USSR, when considerable attention was paid at the state level to scientific and technical progress and advanced technologies related to complex mathematical calculations. It is noteworthy that in Russian universities they provide a classical education, which is based not on the mechanical memorization of data and facts, but on the ability to think and creatively approach the task.

    As a result, the achievements of Russian students in various programming competitions are high. For example, at TopCoder-2007, Russian programmers won first places in two sections, at the World Programming Championship, ACM International Collegiate, teams from Saratov State University took first place in 2006 and received one gold, two silver and one bronze medals in 2007.

    It should also be noted the success of Russian schoolchildren at international olympiads in mathematics and informatics. Every year the guys bring several gold, silver and bronze medals from world-class competitions.

    No other country achieves similar results. Thus, we can safely say that in terms of non-standard thinking and solving complex problems our programmers (of any age) are the best in the world.

    In addition, some respondents note the following: "Russian programmers are able to make adjustments as they work, which is very important in the telecommunications industry, as requirements change very quickly."

    Six out of twenty respondents noted that the choice in favor of a Russian company was influenced by the factor of similarity of cultures and time zones of Russia and Western countries (in this regard, there are great differences between India, China and Europe, the USA). According to the respondents, it is easier for Russian programmers than for their Indian counterparts to understand business needs and take them into account in the product being developed.

    Thus, we can conclude that in Russia there are a number of significant prerequisites for the development of offshore programming and the IT sector as a whole, and this thesis is recognized throughout the world. On the other hand, many experts point out that for a long time The most important factor hindering this development was the lack of government support for the industry. The situation should be changed by the Federal Target Program "Electronic Russia" for 2002-2010, which will be discussed in the next chapter.

    New initiatives for the development of information technologies in Russia

    In January 2002, the Russian government, realizing the need for state support for the development of ICT, approved the Federal Target Program "Electronic Russia". The economic goals of the program include the task of building an economy focused on the consumption and export of information products and services. As conceived by the developers, this will make it possible to radically reduce Russia's lag in the use of new technologies and seamlessly integrate our country into the world economy. An important political task of the program is to create optimal conditions for the development of civil society.

    As part of the implementation of the FTP "Electronic Russia", a number of events are being carried out. For the development of Russian offshore programming special meaning have the following ones:

    1. Improving legislation and the system of state regulation in the field of ICT.
    2. Improving the interaction of organs state power and local governments with business entities and the introduction of ICT in the real sector of the economy.
    3. Development of a system for training ICT specialists and qualified users.

    Improvement of legislation and system state regulation in the field of ICT

    Here it is important to note the development of draft laws and regulations governing relations in the field of development and use of ICT (including the improvement of criminal, administrative and procedural legislation), optimization of the system of state control and supervision in the field of ICT. The development and implementation of standards in the field of ICT, the development of a set of standard contractual documents used in electronic commerce are also being implemented.

    Much attention is paid to the definition of copyright for ICT products. As you know, piracy and the use of illegal copies of software are widespread in Russia, which negatively affects the development of the industry and the international image of our country. Therefore, one of the tasks of the Federal Target Program "Electronic Russia" is the specification of intellectual property and the improvement of legislation governing the copying, distribution and use of software.

    Improving the interaction of public authorities and local governments with business entities and the introduction of ICT in the real sector of the economy

    Main activities: creation in Russia special economic zones of technology-innovative type and technological parks (technopolises).

    There are currently the following SEZ of techno-innovative type :

    • Special economic zone in the Zelenograd administrative district of Moscow.
    • Special economic zone in Dubna (Moscow region).

    The purpose of the SEZ of a technology-innovative type is the development of high-tech sectors of the economy and the production of new types of products, in connection with which their residents are provided with a number of tax benefits. The main ones are: reduction of the unified social tax, income tax rates, exemption from transport tax and real estate tax for a period of 5 years.

    These measures contribute to the development of resident companies specializing in the export of software. Note that tax incentives are of particular importance for small enterprises that need to invest as much of their income as possible in development. And since there are a majority of such enterprises in Russia, the creation and expansion of special economic zones of a technology-innovative type will help to significantly increase the domestic market for offshore programming and export software abroad.

    technology park- a form of territorial integration of science, education and production in the form of an association of scientific organizations, design bureaus, educational institutions, manufacturing enterprises or their subdivisions.

    Now in Russia a large number of technology parks are being developed, which are being formed at the universities of large cities. The largest technopark in Russia is located in the city of Dubna, Moscow Region. Its development is carried out in accordance with the project of the Russian Programming Center. The latter includes:

    • Construction of offices and information technology (IT) business infrastructure;
    • Construction of housing and its transfer to specialists through the mechanism of mortgage lending;
    • Development of urban infrastructure;
    • Attracting IT specialists from Russian regions and CIS countries;
    • Promotion of export programming and IT outsourcing services;
    • The development of new scientific directions at the University of Dubna, the development of education in the subjects of the federation.

    The successful implementation of this project will attract both domestic and foreign private investment in the information technology sector. A striking example of the organization of IT clusters is the transformation of the city of Bangalore (India) into the center of the high-tech industry. Thanks to the implementation of government programs for the development of IT in this region, the volume of exports of software products of the industry of export (offshore) programming of the state of Karnataka (the capital is Bangalore) in 2002 amounted to $ 2.06 billion.

    Russian technoparks are likely to become the foundation for the creation and development of companies exporting software, as they provide an opportunity to attract a large number of young professionals to development. It is known that it is the factor of having highly qualified programmers that determines the development of a company engaged in offshore (and product) programming.

    Development of a system for training ICT specialists and qualified users

    As already noted, the level of teaching technical disciplines in our country is traditionally high. We have quite a lot of high-class programmers with classical mathematical knowledge, higher education, who are able to solve complex problems. At the same time, there is a shortage of people who could work on a computer at the user level and write program code. according to the prepared algorithm. For example, in India, more than 80% of those employed in the field of offshore programming are the so-called "coders", whose task is to type the finished program on a computer. For such actions, it is not necessary to have a higher education, a specialized secondary education is enough.

    The problem is that in our country there are almost no technical schools and colleges that provide such a special education. Also, many experts note the lack of managers, management specialists information resources. Solving these problems is one of the tasks of the Federal Target Program "Electronic Russia".

    In this regard, the following activities under the Program should be noted:

    • Improvement and development within the framework of higher professional education of training programs for specialists in information resource management and information technology in business, education, the media and public administration.
    • Improvement and development of training programs for ICT specialists with secondary vocational education.
    • Development of training programs for ICT specialists within the framework of initial vocational education.
    • Creation of a system of retraining of teachers.

    Summing up the analysis of new initiatives for the development of information technologies in Russia, we can say that state support has a beneficial effect on the industry in question. There is a growing number of software development firms, including offshore programming firms. In general, the Russian IT market is growing (below is the data illustrating the growth of the market).

    Internet