Our developers bleed all over MongoDB, WebSockets, CoffeeScript and Node.
But at least they’re having fun. And in today’s tight job market,
great programmers have a lot of sway on what they’re going to be working on.
So is the job market so bad you have to bribe engineers by letting them use tools they're apparently not proficient or efficient with, just so they'll come and work for you? I find it so insane it's not even funny anymore.
I think you'd have to view it from a different angle/point of view.
If the programmers chose some esoteric technology and not take ownership of the project then yeah, it's bad. But if the programmers decided to stick with it, live and breathe Node.js and do whatever it takes to fix all bugs (including fix the internal of Node.js when needed) and work overtime then by all means, why not?
I personally would not prefer to be in that situation as I have different priority but I become to accept other people preferred methods given that others agreed and willing to stick with it 110%.
PS: Beside, the choice wasn't too bad, it's not like they decided to use Lua or Smalltalk. They're using CoffeeScript/JavaScript (maybe), Node, WebSockets, Socket.io, etc. There are JavaScript programmers out there.
I guess I'm looking from a startup founder perspective...
If you choose an unknown technology because you have solid reasons to believe it will bring a substantial advantage to the product, which will offset the loss in productivity, then sure. If you choose it just so that your team will be motivated and you willingly take the productivity hit for that, I find it difficult to understand.
It's not the technology choice, it's the reasons that seem weird to me. It's probably because of the runway length they have that they can venture into unknown territory for no reason other than trying things.
I'm reminded of Asana and Lunascript - a fun experiment you can afford when you have lots of money in the bank, but not something I'd see as practical.
I'm not sure there is necessarily a productivity hit. The tradeoff is between a smaller number of better programmers on a new technology stack and a larger number of worse programmers on some boring old technology stack.
Also, don't forget that these people have to invent the product as well, not just code it. Their productivity as inventors may be a lot higher on their preferred platform.
Obviously, it's not the same for every kind of product, but Fog Creek doesn't make medical devices.
It is not clear if there are better programmers on a very new cutting edge technology stack.
I heard there are more works to clean up Rails codebases nowadays.
As of recently, I'm primarily using Java and I can say with confident that while it is old and boring, there are plenty knowledge sharing out there that elevates the brain of many developers (even by a small amount). Not to mention that the libraries have evolved in a much greater pace to support recent best practices (MVC, DB migration, unit-test, DI, mock, BDD, TDD, you name it, the Java community have them).
Maybe so, but it's not like Joel Spolsky chose some arbitrary new technology and is now desperately looking for good people to use it. It seems to be literally the other way around.
The first devs (already employees) chose the stack they wanted. While using something new definitely helps keep the work interesting, I can't imagine trying to do the same thing on an older stack. It would be slower and more painful at every turn; the few issues with bleeding-edge tools don't even begin to compare with the extra pain of, say, being stuck with VBScript and SQL.