Eh, I’ve had a number of coworkers who ended up working for Microsoft. They were all either terrible programmers or utterly unmotivated to do much actual work. One of them was a guy who did not show up even once at my company for more than a year but wasn’t fired, for some unknown reason. Microsoft’s inability to produce much of anything in the way of good software is no surprise to me.
Personally, I think it has a lot to do with Microsoft’s being one of the pioneers of TDD (Test-Driven Development). The idea is that you have a small number of good, experienced developers writing suites of automated tests, coupled with a large number of inexperienced or inept developers who try to write code that passes these tests. Whatever code happens to be good enough is kept and the rest is tossed away. In this model, there is some advantage to sheer numbers even when most of the people you’re hiring are pretty terrible at what they do (although these are exactly the kind of employees that can be - and are being - easily replaced by AI).
It’s funny to imagine real-world engineering using an approach such as this. Like, imagine a world where they let anybody off the street attempt to build bridges, while the experienced civil engineers spend their time trying to knock them down. You might get a few bridges that actually worked, but your rivers would be clogged with the remains of all the failures.
Is it well known that this is how Microsoft practices TDD? Because that’s not the normal practice for TDD. TDD just means you write tests first, but normally the same person writes the tests and then makes them pass.
I’ve never heard TDD described like this. I cannot even understand how this works from a project standpoint.
“We need a new feature. Todd’s written the test already, so everyone just have at it with your fastest implementation; whoever passes first, gets to go to prod!”
My biggest issue with this kind of “TDD” is, you pay two people to write the same code twice. Test-driven can work if done correctly, but this just stupid.
I had a coworker who was obsessed with writing unit tests. He was the lead developer on a project which was supposed to take three months and at one point had gone past the two year mark without producing working code. At one point during a meeting with the increasingly (and legitimately) unhappy client, he blurted out “but we’ve written six times as much test code as actual code!” He was not exaggerating either. Believe it or not, this made the client even less happy.
Eh, I’ve had a number of coworkers who ended up working for Microsoft. They were all either terrible programmers or utterly unmotivated to do much actual work. One of them was a guy who did not show up even once at my company for more than a year but wasn’t fired, for some unknown reason. Microsoft’s inability to produce much of anything in the way of good software is no surprise to me.
Personally, I think it has a lot to do with Microsoft’s being one of the pioneers of TDD (Test-Driven Development). The idea is that you have a small number of good, experienced developers writing suites of automated tests, coupled with a large number of inexperienced or inept developers who try to write code that passes these tests. Whatever code happens to be good enough is kept and the rest is tossed away. In this model, there is some advantage to sheer numbers even when most of the people you’re hiring are pretty terrible at what they do (although these are exactly the kind of employees that can be - and are being - easily replaced by AI).
It’s funny to imagine real-world engineering using an approach such as this. Like, imagine a world where they let anybody off the street attempt to build bridges, while the experienced civil engineers spend their time trying to knock them down. You might get a few bridges that actually worked, but your rivers would be clogged with the remains of all the failures.
Is it well known that this is how Microsoft practices TDD? Because that’s not the normal practice for TDD. TDD just means you write tests first, but normally the same person writes the tests and then makes them pass.
I was gonna say, that’s not like any form of TDD I’ve ever come across.
I’ve never heard TDD described like this. I cannot even understand how this works from a project standpoint.
“We need a new feature. Todd’s written the test already, so everyone just have at it with your fastest implementation; whoever passes first, gets to go to prod!”
Reminds me of MCMC sampling, or straight up rejection sampling.
My biggest issue with this kind of “TDD” is, you pay two people to write the same code twice. Test-driven can work if done correctly, but this just stupid.
I had a coworker who was obsessed with writing unit tests. He was the lead developer on a project which was supposed to take three months and at one point had gone past the two year mark without producing working code. At one point during a meeting with the increasingly (and legitimately) unhappy client, he blurted out “but we’ve written six times as much test code as actual code!” He was not exaggerating either. Believe it or not, this made the client even less happy.