Entry No. 3

The Value Chain of Software Companies in Vietnam

If you’re a software engineer in Vietnam, there are 4 types of companies you can work for. These companies exist on a spectrum of value. As you consider what kind of company you would like to work in, it pays to pause and consider each option.

Currently, Vietnam’s tech ecosystem has the following types of companies:

  • Outsourcing companies
  • IT departments of large, non-IT companies
  • Consulting companies
  • Product companies

Outsourcing companies

Outsourcing companies take a spec and turn it into code. Roles in these companies are sometimes called ‘code-monkey work’ – you’re just a programmer that has to implement whatever is given to you. Examples of some outsourcing contracts:

  • A games company in Europe wants integration of some analytics SDKs in their portfolio of apps, but doesn’t have enough manpower in their games development teams to do so. They hire a relatively cheap software company in Vietnam to do this for them. Your job: to integrate libraries across a dozen different apps.
  • A financial services company wants to build a stock tracker app for their customers. They hire a company in Europe. The European company sits down with the financial services company to understand the requirements, and then writes a spec. They then hire an outsourcing company in Vietnam and give them the spec. The European company pays the outsourcing company and keeps the rest as profit.

Outsourcing companies make up the majority of software companies in Vietnam – and naturally, they’re not very high-value places to work in. This is problematic for you, as a software engineer. Because outsourcing companies compete on cost (the cheaper service wins), software engineers at outsourcing companies will be pushed to be fast, not good.

Therefore, there is only so much you can learn in an outsourcing company.

An IT department of a large, non-IT company

IT departments build technology solutions for their company. This parent company is usually not an IT company.

This type of software engineering job is an interesting one to work in. For instance, you could be a software engineer in a bank, building the bank’s website or mobile services. Or you could be a software engineer for Proctor & Gamble, building internal tools for their managers to use.

Jobs in IT departments can be good or bad. How good your job is depends on how important the department is regarded inside the parent company. If the parent company regards the IT department as a valuable and strategic part of achieving its goals, then you will do well as a software engineer. On the other hand, if the parent company regards the IT department as a ‘cost-centre’ (i.e. the IT department is just the cost of doing business) then it would not be a very good software engineering job.

The tricky thing about this is that it’s often impossible to see how important the department is to the parent company until you’re already inside. The best trick to decide if it’s a good place to work in is to get to know someone who is already working inside the company, and then to ask him or her.

Consulting companies

Consulting companies build apps for clients. They look a little like outsourcing companies, but they’re not. For starters, consulting firms are supposed to come up with solutions for business problems. They do more than converting a list of features into code.

Let’s say, for instance, that a bank wants to build an app to increase usage of its credit card products. A consulting company would be hired by the bank to figure out the app strategy, the feature list, the deployment plan and the look and feel of the app. The consulting company then executes on all of this, while giving advice to the bank.

This is a consulting company, not an outsourcing one: the consulting company provides guidance to the bank on the best way to achieve the bank’s goals. The best consulting companies act like partners to their clients: both equally invested in their client’s success.

One large advantage of working in a consulting company is that you get to explore new technologies as you wish, for client projects. Of course, some clients want their projects to be implemented with a certain technology. But occasionally clients don’t care, beyond wanting the app to be done. In those cases engineers are free to pick the programming languages and frameworks they would like to use.

(Floating Cube Studios, by the way, is a bit of a mix – it is both a consulting and a product company).

Product companies 

Product companies are companies that build and own their own products. Because the engineers own the codebase of the product they’re working on, product companies tend to invest more time and energy into training and growing their engineers.

This applies to small companies like Ticketbox.vn, as well as large companies like Google, Facebook, and Atlassian. There’s a lot more nuance to whether a product company is good to work for (things like is your boss good, do you get along with your colleagues, are you being paid enough), but all other things being equal, product companies are good places to work in. The only trade-off is that you would not have an excuse to play with new technologies for each new project as you would in a consulting company.

Conclusion

If you’re a programmer in Vietnam, you need to consider your career prospects carefully. Where you work determines what kind of growth you would have as a software engineer.

If you have the opportunity: pick companies that are higher up in the value chain. The more value your company provides, the more opportunities you will have to learn. Which is to say: if you have a choice, don’t work for an outsourcing company. It’s not good for your career.

This post is part of the FCS Career Playbook for Software Engineers in Vietnam. Check the guide for more software engineering career advice.