Some of us are working in IT.
And there you can finde some working models. You can work directly as employee of the company whose work you are doing. You can work as contractor (freelancer), with one of several slightly different setups, depending on the country. Or you can work as an employee of a larger company that lets you work for its customers. I am just briefly mentioning that some hybrid models exist.
I have worked all three models and I prefer the second one, working as contractor via my own Ltd-company. I think that people are different and have different preferences. And for staffing IT-projects it is good to have team members with different strengths and experiences that form a great team and not just resources that add up to the estimated number of person days during the project duration. It is good to combine permanent employees of the company doing the project and contractors. They are usually interested in the success of the project, while external team members employed in larger organizations often, but not always, bring in some own dynamic about interests of that organization that are not necessarily so congruent with the interests of the project. I do know positive and negative examples of this. For example have I seen that they bring in highly qualified people in an early phase, negotiate high rates and later replace them with juniors. I even heard of a case where such a company had to provide a couple of hundred people and brought a team consisting partly of office workers who had never done software development and who just edited program files in a way they were told by their more experienced team members by email. They did learn how to use the editor. Often they also bring people with good marketing skills to do the further acquisition during time paid by the customer. Generally working for this model requires an unusually high level of loyalty to the employer, so that working in another team, seeing the company getting relatively high rates, getting relatively low salaries (depending on the company, off course) will be continued for a longer period of time. It can be a reluctance to take risks or it can be loyalty or conservativeness or some combination. This is not a bad thing by itself, but building a team of people who are all too similar in this aspect could be suboptimal. Some organizations do send technically highly skilled people who are there employees. I think it is good to see who is actually joining the team and to make sure that the company sending them and the actual team members are good and trustworthy. Usually smaller companies tend to be better than international corporations for this, but good and bad examples exist in all combinations. To have a good mix in the team it is useful to have at least some contractors working for themselves among the external team members. Going through checklists of qualifications and capacity planning against some estimations is not enough.
A good mixture of internal and external team members, which can very well be with a majority of internal employees, is a great chance. It helps being flexible about the team size without having to do layoffs, which are neither common nor popular in Europe. For the loyalty of the permanent employees it is good if layoffs are a rare exception. Long term employees usually know the structures, the requirements, the customers, the IT systems and the tools very well because they have been around for several years. External team members have seen relatively many teams and companies and projects and have seen things that might not ring a bell for long term team members who have gotten used to certain things. So they can bring in new ideas for improvement and new knowledge.
I do observe how things in Switzerland are evolving and I am hearing some things about Germany. The problem is always that in other areas a contractor status is supposedly used to give employees suboptimal conditions and the government tries to stop this. In IT the contractor status is a good thing and works well and there are enough opportunities to become a permanent employee for those who prefer that. But if rules are formulated in a wrong way they make it very hard to be working as contractor.
In Switzerland it is getting more complicated. Some changes can be seen as „collateral damage“ or even „minor annoyance“ or as „effort by larger companies with good political connections to eliminate competition by smaller companies“. I leave that open for interpretation.
The VAT (sales tax) and the social insurance (retirement, unemployment etc.) needs to be addressed. This can be a chicken-or-egg-problem. To be able to pay VAT and to have a VAT number it is necessary to have some customers that justify the effort to provide a VAT number. Sending invoices with VAT usually does not hurt customers who are companies themselves, because they can pass it to their customers. Doing invoices without VAT is ok too, but becoming obliged to pay VAT later creates a problem because no customer wants to pay VAT on invoices that have already been settled. And nobody likes invoices with a text that says that the VAT-issue is still open and the amount to be paid might change later… Such customers simply do not exist. This is quite easy to overcome by just estimating the total amount of the invoices and writing a letter to the VAT organization prior to sending the first invoice. If the money in the start phase is not too scarce, the first invoice might even be delayed by a few weeks for this. In the end of the day the VAT-organization loves money and opportunities to get more of it.
The social security is a harder one. In Germany almost all contractors leave the social security system which is not very attractive and not very fair. In Switzerland at least the retirement system is slightly better and harder to leave, so the issue is more about finding a way to be part of this system and to work legally. Being an employee, the company and the employee pay half of the social security, respectively. Having ones own company implies paying both parts. If this company is not accepted by the social security organization, the customer is considered to be the employer and has to pay that half. This is a bad basis for sending invoices and if the status is not clear it is again almost impossible to have customers. Nobody likes working with a contractor if there is a possibility that the social security organization with come and collect some employer-half for some payments in an unpredictable future. This kind of customer simply has not been invented yet. Being a baker or a painter is no problem. Enough customers exist anyway, unless the business is a total failure. Nobody will find out who has bought bread and collect employer-parts for social security from the customer basis of the baker. If the painter does some smaller projects and not the really big million dollar contract for painting a skyscraper in the first year, things should be fine too.
Being an IT contractor the typical projects are more like painting a skyscraper. Many people are typically working on IT projects for many years and the contract might be extended for a year or two or in some rare cases even longer than that. So showing multiple customers in the first year can be hard, even though some smaller side projects, like trainings for other customers for a week or so, can help. Some people have managed to get this company status from the social security organization without incorporating their company. But in Switzerland that is an exception. In practice two ways are really working. Either you have to incorporate your company and get the social security issue resolved automatically by that or you have to become temporary employee of some intermediate company, usually the one who helped to acquire the contract. Conditions can be complementary to the contract and transparent.
There are basically two common ways to build a corporation in Switzerland: GmbH and AG. The GmbH requires a capital of 20’000 CHF (just think of around 18’000 EUR or 25’000 USD, but rates may change drastically). It was only necessary to bring have of that. The other half was only guaranteed by the founder, who had to provide another 10’000 from his money to pay debts of the company in case of bankruptcy. Later this was changed and the other 10’000 had to be added, which was reasonable by itself. But the bureaucratic effort was around one or two days and the fees ate up more than a third of the money. Was that necessary? Another change, that was in principal reasonable, was to change the size rule for more complex book keeping. Large AGs need another organization to check their book keeping while small GmbHs need only a professional book keeping. Small AGs where treated like big AGs and big GmbHs like small GmbHs. This was changed and the criteria became some metric about the size instead of the AG vs. GmbH-status, which makes sense. But it required some effort to opt out of the „big company pattern“, which was again expensive and time consuming.
The next step, a few years later, was the necessity to get a „Personalverleihbewilligung“. The paper work was around 46 pages and 50’000 CHF needed to be deposited as guarantee. Big companies have to deposite the exact same amount of money. It is for paying the salaries of the employees in case of failure. But this could be solved with time and money. Now it is hard to get the „Personalverleihbewilligung“ at all in some cantons, but in Switzerland companies play the game of moving to the most favorable canton.
There is always some risk that another problem is invented for small companies that cannot reasonably be dealt with. The factual prohibition for IT consultants working as contractors to do their job. I want to see many projects. I want to have the flexibility. I am willing to take the risk. But I do not want to become employee of a large organization and deal with the conflict of interest when loyalties with my employer and my projects conflict. I want to help the projects succeed.
In that case I will look for another country in Europe that allows me to work in the way I prefer. I am flexible with this and I will learn the language, if I do not already know it.