I received that question last night that makes me think a lot about it. It is not a simple question, its a big question that I rarely think about.
I think if some of you are being asked that question, you will have different answers. But let me guess, the most answers will be: “I want to become a manager”. Dont get me wrong, I have heard that saying from many people, most are my colleagues who are working on software outsourcing industry playing different roles: developer, business analyst, quality control.
Why do people prefer becoming a manager to a professional on the area they are working on? IMHO, it depends on the current situation of Vietnam. Vietnam is still a developing country and almost companies operating in software development earn money from building software for foreign countries – which is called outsourcing – because it has a benefit of low cost. Being part of outsourcing projects, as a developer, you have to constantly learn various technologies to meet technical specification. That’s good if you – a developer – are learning cutting edge technologies to build software but it’s also not so good that you are assigned to project which uses old technologies and all you have to do is to maintain and to enhance that legacy system. As an example, imagine your skill is .NET but the system have been built using VB6. Or you are very good at ASP.NET 3.5 but the system you are going to build uses ASP.NET 1.1 or even worse, standard ASP. As a business analyst, you have to learn various business domains to understand software requirement, some are good since you are having a chance to learn new business domain which might take a very long time to be available in Vietnam such as Healthcare, e-commerce,… but it is not so good that that knowledge cant be applied in Vietnam at the time we finished building that software. As a quality control engineer, you have to learn from testing Windows application to Web application and even embedded system or mobile platform as well to master tools to perform automation/performance testing. What if one day you find that your learning ability reaches its limitation that you cannot learn any more or not as fast as you ever were able to?
This leaves you behind people/technologies and you will become not suitable for the job. The ‘solution’ to escape that situation is to become a manager! The other reason for the answer – I mean ‘to become a manager’ – is because vnes people still have an ‘old’ thinking from themselves or their parents that becoming a manager – or ‘boss’ – showing that they have a successful career, or life.
But my answer is: ‘I will be coding, if I cannot code anymore, its a disaster’. Why? the reason is simple, I love coding. Funny huh? Being a developer means you are writing code to get the computer does what you want it to do. However, let the computer does what you want it to do is not the last shot, you have to do it beautifully that someone calls it ‘the art of programming’ and you have to be continuously improving youself to become an ‘artist’. Have you ever felt excited when the software you build not only runs smoothly but also the code you write is easy to read, to understand and is extendable? Have you ever felt happy when someone reviewed your code and said: “Its a beautiful code I’ve ever seen. It applies many good practices out there”? If your answer is ‘Yes’ then you know why I love to be a programmer – and I will when I am 40.
I once worked on a project which my client was a group of technical guys (5 ones, as I recalled) who were very passionate on coding. Some of them were almost over 40, one of them was over 50. What really inspired me was they loved coding crazily. Working with them made me love programming and becoming a professional programmer much more. Well, you might say since they live in a modern country and that their job is more respected, and well paid, compared to in Vietnam that makes them not worry about changing their career path to become a manager. I totally agree and respect your opinion. But please, follow your heart, do what you love to do, live your life, not others.
But if you still want to become a manager, please think about this a bit: skills to manage a software project still need to constantly be improved. It’s obvious that the software world is changing too fast, not only technical people have to learn new technologies day by day but managers also need to learn new development process and methodologies as well how to apply it effectively, learn how to work with the team of members who are passionate, highly self-respected, learn how to inspire and encourage them, show how you recognize and appreciate their effort. This not only makes an effectively team, but also brings great successes.