AI is a multiplier for engineering culture. With it, the work compounds; without it, the rot does, and the dashboard reports green right up to the breach.
It is well known that as soon as something becomes a metric people game it and fail to pay attention to the underlying reality that the metric was supposed to be a proxy for. Meta (and other companies) putting AI usage as an employment metric will automatically result in inappropriate use of AI because the incentive is not bug free code, it is AI usage. Just as previously we have companies setting LOCs or commits/PRs as metric which failed to help developers produce better code faster.
The problem is the code quality is hard to measure but critical to corporate success. AI can generate great code fast when used properly but it can also create complete garbage when abused
Right on the metric part. The thing I can't get past is that they didn't need to do any of this. AI gave them a genuine productivity gain across the engineers they already had. They could have just used it. Instead they dismantled the team to make a usage number move. Baffling call.
Yep. Ed Zitron calls a lot of these people Business Idiots, which I've always felt was harsh. But it also appears to be accurate in more cases than I would expect
Have you rewritten anything on engineering culture, the best parts and the parts to watch out for? I know you have done how to hire someone which gives some of the answers to the question but didn't know if you had one dedicated to just that topic.
Good question. I haven't done one just on that. It's spread across hiring and retention and this Meta piece, never pulled together. Worth doing though. Let me chew on it a bit.
This was part of my Cassandra effect in February. Since then I sopked several times with developers I respect and only one saw it so clear as me. I'm totally agree with you that with discipline you can extract value from code agents. But speak about discipline in the opulent west is like speaking of diversifying your retirement portfolio in Africa. Each time that one of my respected friends told me about the possibilities I told them the same: you are able to write a better application with pencil and paper than me with an IDE. And I worked in big corporations with huge codebases touched by different generations of developers, internal and external. And it was awful. The average corporate developer does not give a flying sh#t. Only one or two guys of the hundreds of guys that reviewed my code reviewed ever my tests. And when I was reviewing, as I always started by the tests to check what this PR was about, what I was watching was terrible in all the infinite assumptions that the guy was doing while testing. There is a moment that you have also to start giving a sh#t to maintain your mental health. Nobody cares, and if you start caring you become a problem for the team or suffer from stress. I knew that code agents were going to accelerate that process FAST. In the opulent West we are not used to resist temptations to make easy or enjoy our life. Even when at the end those temptations make our life harder and not enjoyable. Yeah, you can obtain quality code with those clankers, but the energetic effort is the same as before for creating something you could be proud of. And when the code does not matter anymore for the ones making the code before, what are going to be proud of? My prediction is that performance issues related to concurrency bugs are going to be the Canary. Why? Concurrency was hard for devs before, many wrong examples in internet with concurrency problems and reading concurrency code is hard and complex. I don't want to think how hard and complex after months of not giving a sh#t coding. They will start first throwing caches to it (so now you have 2 problems instead of one), scaling vertically, having 192g RAM monsters in the cloud, and scaling horizontally, adding servers to the cluster so the problem is getting worse. Then, after the agents fail to detect as in your case, someone must have to read the codebase. But who? We, the ones not giving a sh#t about code were the ones that they were assigning to those tasks that nobody understands wtf is happening. My job for at least 14 years in Switzerland is being the immigrant that they do not get how always is able to extinguish fires. Sometimes only one or two devs realize of the quality of my post mortem. So yeah, not giving a sh#t won this battle but not the war. Not sure if they are going to have any valid soldier available in the future except maybe the forward deployed engineers. Because this is all about that: monopolizing software development in the world. Monopolizing labor. And the developers don't get it yet. Resist.
It is well known that as soon as something becomes a metric people game it and fail to pay attention to the underlying reality that the metric was supposed to be a proxy for. Meta (and other companies) putting AI usage as an employment metric will automatically result in inappropriate use of AI because the incentive is not bug free code, it is AI usage. Just as previously we have companies setting LOCs or commits/PRs as metric which failed to help developers produce better code faster.
The problem is the code quality is hard to measure but critical to corporate success. AI can generate great code fast when used properly but it can also create complete garbage when abused
Right on the metric part. The thing I can't get past is that they didn't need to do any of this. AI gave them a genuine productivity gain across the engineers they already had. They could have just used it. Instead they dismantled the team to make a usage number move. Baffling call.
Yep. Ed Zitron calls a lot of these people Business Idiots, which I've always felt was harsh. But it also appears to be accurate in more cases than I would expect
I would recommend you to read Enshittification: Why Everything Suddenly Got Worse and What To Do About It. Nothing new happens right now :)
Makes me so happy the entire industry will probably down in flames when they can't get regular companies to stump up more than $20/user/month
Also, and relatedly, thinking how to get cheap power in a data center to run a cluster of B300s when the price drops.
Have you rewritten anything on engineering culture, the best parts and the parts to watch out for? I know you have done how to hire someone which gives some of the answers to the question but didn't know if you had one dedicated to just that topic.
Good question. I haven't done one just on that. It's spread across hiring and retention and this Meta piece, never pulled together. Worth doing though. Let me chew on it a bit.
This was part of my Cassandra effect in February. Since then I sopked several times with developers I respect and only one saw it so clear as me. I'm totally agree with you that with discipline you can extract value from code agents. But speak about discipline in the opulent west is like speaking of diversifying your retirement portfolio in Africa. Each time that one of my respected friends told me about the possibilities I told them the same: you are able to write a better application with pencil and paper than me with an IDE. And I worked in big corporations with huge codebases touched by different generations of developers, internal and external. And it was awful. The average corporate developer does not give a flying sh#t. Only one or two guys of the hundreds of guys that reviewed my code reviewed ever my tests. And when I was reviewing, as I always started by the tests to check what this PR was about, what I was watching was terrible in all the infinite assumptions that the guy was doing while testing. There is a moment that you have also to start giving a sh#t to maintain your mental health. Nobody cares, and if you start caring you become a problem for the team or suffer from stress. I knew that code agents were going to accelerate that process FAST. In the opulent West we are not used to resist temptations to make easy or enjoy our life. Even when at the end those temptations make our life harder and not enjoyable. Yeah, you can obtain quality code with those clankers, but the energetic effort is the same as before for creating something you could be proud of. And when the code does not matter anymore for the ones making the code before, what are going to be proud of? My prediction is that performance issues related to concurrency bugs are going to be the Canary. Why? Concurrency was hard for devs before, many wrong examples in internet with concurrency problems and reading concurrency code is hard and complex. I don't want to think how hard and complex after months of not giving a sh#t coding. They will start first throwing caches to it (so now you have 2 problems instead of one), scaling vertically, having 192g RAM monsters in the cloud, and scaling horizontally, adding servers to the cluster so the problem is getting worse. Then, after the agents fail to detect as in your case, someone must have to read the codebase. But who? We, the ones not giving a sh#t about code were the ones that they were assigning to those tasks that nobody understands wtf is happening. My job for at least 14 years in Switzerland is being the immigrant that they do not get how always is able to extinguish fires. Sometimes only one or two devs realize of the quality of my post mortem. So yeah, not giving a sh#t won this battle but not the war. Not sure if they are going to have any valid soldier available in the future except maybe the forward deployed engineers. Because this is all about that: monopolizing software development in the world. Monopolizing labor. And the developers don't get it yet. Resist.