Репост из: Nodir.log
There still might be a positive scenario where software engineering is outsourced to Uzbekistan. I'll describe it here.
Let's accept the hypotheses that the bulk of software engineering can be done by an autonomous AI agents, that can read documentation, participate in Slack, interact with the issue tracker, write code, run tests, etc. Still, they need someone else to give them a task because a machine will not, and should not be allowed to, come with its own goals. Even if you organize such systems in a tree, the root of the tree still needs to be a human. If we also accept that only people manage people, we get a tree of red and blue nodes, where red are humans, blue are machines, the root is red, all leaves are blue and a red node cannot have a blue parent. The path from the root to any leaf starts with a red node and at some point switches to blue nodes.
Right now the state of technology is that all nodes are red. At some point the blue nodes will start entering the picture. In the scenario I described in the previous post, a company decides that all outsourced work can be handled by AI and replaces all outsource teams with blue nodes, so then you have all red nodes located in US/Europe. That's a grim scenario. A more positive one, is that the company decides to give individual remote employees a team of AI workers and expect the productivity to go through the roof. In this scenario some red nodes are Uzbekistan.
Not every remote employee would get a team of AI workers though, because not every person would be good at this job. This is a pretty different job: you still have to understand code, but you wouldn't writing a lot of it. What you'd do is clearly articulate problems in English, give good actionable feedback, check on results of their work to ensure it interpreted your words correctly, etc. This reminds me my work as a Staff/Principal engineer. So, if are already in such a role, then I think you are still safe, but if you are a rock star programmer that just cranks out code and doesn't talk to others, then I'd say it is time to grow up.
So, my advice is to start looking at what more senior people in your org are doing. They probably see the big picture better than you, better at communication, are able to articulate complex thoughts more clearly, are more creative, knowledgeable and hopefully still hands on and can help you with a low level task, etc. This doesn't need to turn into mass hysteria of getting promoted, but it does mean that perhaps it is time to start developing those soft skills, learn a bit more about product management, project management, and diversify your skills a bit.
Let's accept the hypotheses that the bulk of software engineering can be done by an autonomous AI agents, that can read documentation, participate in Slack, interact with the issue tracker, write code, run tests, etc. Still, they need someone else to give them a task because a machine will not, and should not be allowed to, come with its own goals. Even if you organize such systems in a tree, the root of the tree still needs to be a human. If we also accept that only people manage people, we get a tree of red and blue nodes, where red are humans, blue are machines, the root is red, all leaves are blue and a red node cannot have a blue parent. The path from the root to any leaf starts with a red node and at some point switches to blue nodes.
Right now the state of technology is that all nodes are red. At some point the blue nodes will start entering the picture. In the scenario I described in the previous post, a company decides that all outsourced work can be handled by AI and replaces all outsource teams with blue nodes, so then you have all red nodes located in US/Europe. That's a grim scenario. A more positive one, is that the company decides to give individual remote employees a team of AI workers and expect the productivity to go through the roof. In this scenario some red nodes are Uzbekistan.
Not every remote employee would get a team of AI workers though, because not every person would be good at this job. This is a pretty different job: you still have to understand code, but you wouldn't writing a lot of it. What you'd do is clearly articulate problems in English, give good actionable feedback, check on results of their work to ensure it interpreted your words correctly, etc. This reminds me my work as a Staff/Principal engineer. So, if are already in such a role, then I think you are still safe, but if you are a rock star programmer that just cranks out code and doesn't talk to others, then I'd say it is time to grow up.
So, my advice is to start looking at what more senior people in your org are doing. They probably see the big picture better than you, better at communication, are able to articulate complex thoughts more clearly, are more creative, knowledgeable and hopefully still hands on and can help you with a low level task, etc. This doesn't need to turn into mass hysteria of getting promoted, but it does mean that perhaps it is time to start developing those soft skills, learn a bit more about product management, project management, and diversify your skills a bit.