JavaRush /Java Blog /Random EN /Outsourcing, outstaffing, product companies: where is the...

Outsourcing, outstaffing, product companies: where is the best place for a programmer to work?

Published in the Random EN group
Often, beginning 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 what companies and industries, they will be able to apply their skills after completing their training. To make it easier for JavaRush students to understand the areas of application of Java, for example, we have a series of materials about Java in trending niches ( IoT , clouds , blockchain , big data ). Outsourcing, outstaffing, product companies: where is the best place 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 JavaRush graduates in particular. Analyze the features, pros, cons and pitfalls of employment in these companies. We didn’t have to go far to classify companies by type: we simply turned to our research based on a survey of JavaRush graduates about where they work and how much they earn. Outsourcing, outstaffing, product companies: where is the best place for a programmer to work?  - 2So, the following types of companies appear in the JavaRush survey:
  • IT outsourcing company
  • IT outstaff company
  • Product IT companies
  • Companies not directly related to IT
Today we will talk about them, the advantages and disadvantages of each type of company. Outsourcing, outstaffing, product companies: where is the best place for a programmer to work?  - 3

Outsourcing companies

First, let's briefly look at what outsourcing companies and outsourcing in general are. According to Wikipedia's definition, outsourcing is the transfer by an organization, on the basis of a contract, of certain types or functions of production business activities to another company operating in the desired area. Outsourcing in IT, as a rule, is the complete implementation by a company that provides the relevant services and, accordingly, is called outsourcing, of any projects or work under a contract, with a guaranteed required result from the customer and control over the progress of 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 high staff turnover. Often programmers who already have more or less significant experience and are in some kind of demand in the market tend to avoid outsourcing and work in such companies, running away at the first opportunity that comes along. 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 food companies, for example.

    For this reason and more, employment with an outsourcing company can be a good start to a career for an inexperienced newbie programmer, allowing him to get a job relatively easily and learn many important skills.

  • Diverse Experience

    It is typical for outsourcing companies to work on a number of completely different projects, which can be built on top of different technology stacks. Thus, working in a company allows (although not always) to gain knowledge and experience in several areas at once 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 for an outsourcing company in the early stages - you can learn not only technology, but also master other skills that are no less, and often more important in your career, such as time management, organizing your work, multitasking and etc.

Minuses

  • High load

    It is typical for outsourcing companies to place a higher workload on programmers 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 quickly as possible. A number of other factors also create a high workload, such as, for example, unrealistic promises made to the client regarding the deadline for completing the project, poor quality of technical specifications from the client and, often, poor communication at different levels of management, from the client to the hiring company. All this leads to the fact that programmers in such companies are required to work long and intensively, often beyond the standard office eight or nine hours.

  • Low salary

    It's no secret that outsourcing companies usually pay programmers less. The reason, again, is in their business model, because in outsourcing the company acts as an intermediary between the customer and the team of project implementers, trying to earn the maximum by reducing expenses in the form of the total salary of specialists on the project.

  • Instability

    In communities of programmers working for outsourcing companies, there are frequent stories of delays in salaries and periodic layoffs in cases where the project for which the developer was hired is completed and his services are no longer required. Due to the fact that outsourcing companies depend on clients and, often, one-time orders, the programmers working in them can only dream of stability.

  • Quality of professional experience gained

    Despite the fact that working for an outsourcing company allows you to gain quite a lot of diverse professional experience, as mentioned above, its quality is rarely high. The reasons are the same: short deadlines, the desire to close the project as soon as possible and get maximum output 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 is rarely high. This is another reason why experienced programmers often tend to leave an outsourcing company at the first opportunity.

Outsourcing, outstaffing, product companies: where is the best place for a programmer to work?  - 4

Outstaff company

Outstaffing differs from outsourcing in that in this case the client company searches for and hires specific performers to work on its projects, who also work on the staff of the outstaffing company. The difference is that outsourcing implies the full implementation of any work or the provision of services with a guaranteed result under a contract, while outstaffing is simply the hiring of a specific performer who has the qualifications required by the customer, 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 often companies, especially in Russian-speaking countries, provide customers with both services - both outsourcing and outstaffing. Therefore, here we will primarily talk about the pros and cons of the model itself, while companies hiring programmers using the outstaffing business model are approximately the same as in the case of outsourcing.

Pros of outstaffing

  • Personal approach

    In the case of outstaffing, the client selects each performer personally, and does not just order a team of a dozen coders. Therefore, hiring for outstaffing, as a rule, indicates a fairly serious qualification of the programmer, which also determines the corresponding attitude towards him.

  • Working for an American (most often) IT company

    Despite the fact that de jure the programmer works for a local outstaffing company, de facto he is part of the employing company’s team. 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 in future employment - you can add this experience to your resume, and “friend” foreign colleagues on LinkedIn (increases the chances of subsequent successful employment).

  • Business trips to the USA

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

Disadvantages of outstaffing

  • Dull and uninteresting work

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

  • The need to quickly understand the project

    Team members already working on a project on the client side 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, as a rule, you have to delve into the nuances of the project yourself. At the same time, there is often very little or no time to get up to speed.

  • 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 the 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 parties, as is the case with outsourcing and outstaffing. Therefore, many programmers contrast product and outsourcing companies, choosing between them, because both 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, their work schedule is usually more measured and relaxed, 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 quickly as possible. The next advantage follows from this.

  • Quality professional experience

    As product companies work on their projects slowly and with an emphasis on quality, a young programmer has more opportunities to gain high-quality knowledge of the technologies involved, 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 to them, and it is desirable to minimize staff turnover, especially among developers.

Minuses

  • Less varied professional experience

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

  • More routine

    For the same reason, work in food companies is more routine and therefore boring. Having learned all the technologies and processes, the developer remains to perform everyday tasks of debugging and improving the existing product. Many programmers complain that working without challenges tires them out.

  • 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 it is usually more difficult for relatively “green” coders to get into them.

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 core and most important elements of their operations. Let's try to look at the pros and cons that are common to this type of company when it comes to employment for programmers. Although in general it should be noted that in this category, companies and working conditions for programmers in them can vary markedly, because it includes a wide variety of businesses and organizations.

pros

  • Stability

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

  • High salaries

    Remuneration in them is also often at a high level, although everything is not so simple here. Programmers working in serious banks and various large e-commerce companies often boast high salaries, while small organizations often cannot afford to pay programmers much.

Minuses

  • Bureaucracy

    Large companies and organizations that are not directly related to IT are characterized by bureaucracy, which 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 often occurs much less rapidly than in young and innovative IT firms. Linking career growth to “length of service,” that is, the number of years an employee has worked for a company, is also not uncommon.

  • Abundance of formalities

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

Epilogue

What conclusion can be drawn from the above? Each has its own advantages and disadvantages; none of the categories is clearly preferable, but you can gain benefits by working in any of them. We should also not forget that this division of companies into types is quite arbitrary, and in each category there are both excellent places to work and frankly not the best companies, and you can find yourself and be a respectable professional in any type of employment. Don’t 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