JavaRush /Java Blog /Random EN /Outsourcing, outstaff, product companies: where is it bet...

Outsourcing, outstaff, product companies: where is it better for a programmer to work?

Published in the Random EN group
Often, novice programmers who are just learning a particular language have a vague idea of ​​not only the practical side of using this language, but also where, in which companies and industries, they will be able to apply their skills after completing the training. To make it easier for CodeGym students to understand the areas of Java application, for example, we have a series of materials about Java in trending niches ( IoT , clouds , blockchain , big data ). Outsourcing, outstaff, product companies: where is it better for a programmer to work?  - 1And today we decided to talk about the types of companies that most often employ Java programmers in general and CodeGym graduates in particular. Analyze the features, pros and cons and pitfalls of employment in these companies. We didn't have to go far to categorize companies by type: we simply turned to our research on a survey of CodeGym alumni about where they work and how much they earn. Outsourcing, outstaff, product companies: where is it better for a programmer to work?  - 2So, the following types of companies appear in the CodeGym survey:
  • IT outsourcing company
  • IT outstaff of the company
  • Product IT companies
  • Companies not directly related to IT
About them, the advantages and disadvantages of each type of company, we will talk today. Outsourcing, outstaff, product companies: where is it better for a programmer to work?  - 3

Outsourcing companies

First, let's briefly analyze what outsourcing companies and outsourcing in general are. According to Wikipedia, outsourcing is the transfer by an organization, on the basis of a contract, of certain types or functions of industrial business activities to another company operating in the desired area. Outsourcing in IT, as a rule, is the full implementation by a company that provides the relevant services and, accordingly, is called outsourcing, any projects or work under a contract, with a guaranteed required result from the customer and control over the progress of the work by the company itself. Among the largest outsourcing companies in Russian-speaking countries: SoftServe, Ciklum, Infopulse, EPAM, Luxoft and others. Let's go through the pros and cons of employment in such companies for a programmer.

pros

  • Relatively easy to get a job

    For a number of objective reasons, many of which will be discussed in the “Cons” section, outsourcing companies, as a rule, have a fairly large “turnover” of personnel. Often, programmers who already have more or less significant experience and are in some kind of demand in the market tend to move away from outsourcing and working in such companies, running away at the first opportunity. Because of this, outsourcing companies almost always have a lot of open vacancies almost all year round, and the requirements for candidates for these positions are not as high as in more serious product companies, for example.

    For this reason and more, being hired by an outsourcing company can be a good career start for an inexperienced novice programmer, allowing them to get a job and learn many important skills relatively easily.

  • Diverse experience

    It is typical for outsourcing companies to work on a range of completely different projects that can be built on different technology stacks. Thus, working in a company allows (although not always) to gain knowledge and experience in several areas in a relatively short period of time, and this is useful for professional and career growth.

  • Time management, work organization and multitasking

    As already mentioned, it is typical for outsourcing companies to deal with a number of projects, so their programmers quickly get used to working on several projects at the same time or moving from one to another relatively regularly. This is another advantage of working in an outsourcing company at the first stages - you can learn not only technologies, but also master other skills that are equally, and often more important in your career, such as time management, organization of your work, multitasking and etc.

Minuses

  • High load

    It is typical for outsourcing companies to overburden programmers more than other types of employers. One of the main reasons for this is their business model. Outsourcing companies compete with each other for the same clients and try to get as many projects as possible, closing them as soon as possible. A number of other factors also create a high workload, such as unrealistic promises made to the client regarding the completion of the project, poor quality of the terms of reference from the client, and often poor communication at different levels of management, from the client to the employing company. All this leads to the fact that programmers in such companies are required to work long and intensive, often in excess of the standard office eight or nine hours.

  • Low salary

    It's no secret that outsourcing companies tend to pay less to programmers. The reason is again in their business model, because in outsourcing the company acts as an intermediary between the customer and the team of project executors, trying to make the most of it, reducing the expenditure side in the form of the total salary of specialists on the project.

  • instability

    In the programming outsourcing community, there are often stories of salary delays and occasional layoffs when the project the developer was hired to work on is over and their services are no longer required. Due to the fact that outsourcing companies depend on clients and, often, one-time orders, programmers working in them can only dream of stability.

  • The quality of the professional experience gained

    Despite the fact that working in an outsourcing company allows you to get quite a lot of versatile professional experience, as mentioned above, its quality is rarely high. The reasons are the same: tight deadlines, the desire to close the project as soon as possible and get the maximum return from each employee with a minimum investment (read - pay as little as possible, but demand a lot). As a result, the quality of the experience gained is rarely high. This is another reason why experienced programmers often want to leave the outsourcing company at the first opportunity.

Outsourcing, outstaff, product companies: where is it better for a programmer to work?  - 4

Company outstaff

Outstaffing differs from outsourcing in that in this case, the client company seeks and hires specific contractors to work on its projects, who at the same time work on the staff of the outstaff company. The difference is that outsourcing implies the complete performance of any work or the provision of services with a guaranteed result under the contract, while outstaffing is simply hiring a specific contractor with the qualifications the customer needs, on a temporary or permanent basis. We have more or less figured out the definitions, now let's talk about the pros and cons of such companies. However, first it should be noted that companies, especially in Russian-speaking countries, often provide customers with both services - both outsourcing and outstaffing. Therefore, here we will focus primarily on the pros and cons of the model itself, while companies

Benefits of outstaffing

  • Personal approach

    In the case of outstaff, the client chooses each performer personally, and not just orders a team of a dozen coders. Therefore, hiring for an outstaff, as a rule, indicates a fairly serious qualification of a programmer, which determines the appropriate attitude towards him.

  • Working for an American (most often) IT company

    Despite the fact that de jure the programmer works for a local outstaff company, de facto he is part of the team of the employing company. And these are, as a rule, serious American IT companies with a corresponding serious approach to management and work processes. Working for such a company will almost always be a plus for further employment - this experience can be added to your resume, and foreign colleagues can be “friended” on LinkedIn (increases the chances of a subsequent successful employment).

  • Business trips to the USA

    Opportunities for business trips somewhere in Silicon Valley are also not uncommon for outstaff. Getting a US visa at the invitation of a well-known IT company, most often, is not difficult.

Outstaff cons

  • Boring and uninteresting work

    As many programmers who have worked “on the outstaff” for a long time note in their reviews, most often the most tedious, uninteresting or simply incomprehensible work that local employees do not want to do is dumped on remote team members.

  • The need to quickly understand the project

    Team members who are already working on a client-side project are rarely willing to take the time to help a newbie get up to speed and understand the project, especially if he is working remotely and has not yet proven himself. Therefore, to delve into the nuances of the project, as a rule, you have to do it yourself. At the same time, the time to get up to speed is often very little or not at all.

  • Working for two "bosses"

    Another disadvantage of this model is that the programmer works for two companies at once and therefore has two “bosses” – a foreign one, for whom he works de facto, and a local one, in a company that pays him a salary. Needless to say, having two bosses does not add comfort.

Product companies

Product companies are those that develop software products and services directly for themselves, and not for third-party organizations, as is the case with outsourcing and outstaff. Therefore, many programmers oppose product and outsourcing companies, choosing between them, because both of them have their pros and cons. Let's try to understand the advantages and disadvantages of working in a product IT company.

pros

  • Stability and measured work

    Product companies, unlike outsourcing companies, do not depend on one-time orders, the flow of which tends to be interrupted. Also, the work schedule in them is usually more measured and calm, for the same reasons - after all, they are developing their own product or products, trying to make them as high quality as possible, and not finish them as soon as possible. This leads to the next advantage.

  • Quality professional experience

    Since product companies work on their projects slowly and with an emphasis on quality, the young programmer has more opportunities to gain quality knowledge of the technologies involved in the work, as well as an understanding of the correct approach to developing and implementing solutions. Product companies also spend more time and effort on training new programmers, because for them the quality of each employee plays a more important role, especially if the project has already been launched - errors in a working product have much more serious consequences than in one that is just about to be released .

  • Competent management

    Management in product companies, as a rule, is of higher quality, again, because stability is important for them, and it is desirable to minimize staff turnover, especially among developers.

Minuses

  • Less diverse professional experience

    If in outsourcing, switching from project to project, programmers have to master different technologies, in product companies, work is usually carried out on the basis of one technology stack, proven and reliable for a long time. Because of this, developers, staying in such a company for a long time, often undergo the so-called professional degradation, as they stop following new technologies and trends.

  • More routine

    For the same reason, work in product companies is more routine and therefore boring. Having learned all the technologies and processes, the developer is left to perform daily tasks of debugging and improving an existing product. Many programmers complain that working without calls makes them tired.

  • Higher entry threshold

    Well, as a consequence of all of the above, product companies usually have higher requirements for the experience of new programmers, so getting into them is usually more difficult for relatively “green” coders.

Outsourcing, outstaff, product companies: where is it better for a programmer to work?  - 5

Companies not directly related to IT

Companies that hire programmers to work on software products, but do not work in the IT industry. This category most often includes banks and e-commerce companies, as well as other businesses that have their own software products, but they are not the key and most important elements of their operations. Let's try to analyze the pros and cons common for this type of company in terms of employment for programmers. Although in general it should be noted that in this category companies and working conditions for programmers can differ markedly, because it includes a variety of businesses and organizations.

pros

  • Stability

    Judging by the feedback from programmers, work in non-IT companies is more stable than in outsourcing and even product IT firms. Such companies, as a rule, have a stable business that generates profits, and in case of financial difficulties, managers and other office workers are subject to layoffs, but not programmers.

  • High salaries

    The remuneration in them is also often at a high level, although everything is not so simple here. High salaries often boast of programmers working in major banks and various large e-commerce companies, while small organizations often cannot afford to pay programmers a lot.

Minuses

  • Bureaucracy

    For large companies and organizations that are not directly related to IT, bureaucracy is more pronounced than in IT. This, according to many programmers, is one of the main problems of working in banks, for example.

  • Career

    Career growth in such companies is often much less rapid than in young and innovative IT firms. Linking career growth to “length of service,” that is, the number of years that an employee has worked in a company, is also not uncommon.

  • The abundance of formalities

    From the dress code to the lack of informal atmosphere and relaxation areas on the office territory, IT companies are still far ahead in this compared to other employers.

Epilogue

Which of the above can be concluded? Everywhere has its advantages and disadvantages, none of the categories is unambiguously preferred, and you can benefit from working in any of them. Also, one should not forget that such a division of companies into types is rather arbitrary, and in each of the categories there are both excellent places to work and frankly not the best companies, and you can find yourself and be a respectable professional with any type of employment. Do not forget to write in the comments about your experience in relation to this classification of employers.
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION