6 ms·
Why is there always a "genius" behind stuff like this?
by ahoka 10y ago
Why is there always a "genius" behind stuff like this?
- oneeyedpigeon 10y agoWhen you don't understand something it's impossible to tell whether the creator was a genius or an imbecile. This is probably why hiring a sole programmer in a start-up is such a nightmare. And I speak as one who is that sole programmer.
- WorldMaker 10y agoIt's also something that can accidentally happen as a cargo cult when you don't quite realize you hired a single very senior programmer and lots of very junior programmers without much of a middle ground or experience spectrum. That's a relatively easy trap for a company to fall into, especially early on, because it can be cheaper and easier to hire more junior programmers faster (ie, grads right out of college) rather than try to structure around a less steep gradient.
- cstuder 10y agoReplace "genius" with "senior engineer" and you might understand how this sort of things happen a little bit better.
- s_kilk 10y agoIt's usually a combination of a competent but misguided senior engineer and a fleet of buisiness dudes who aren't qualified to assess whether the engineers work is actually any good. He'll seem to weave magic initially, and the company/project will launch and make money for the people involved. It's only later, when other engineers show up, that the extent of the horror becomes evident, by which point the senior engineer has already been enshrined as the "genius" behind the companies success. Only the new, junior engineers can see the Emperors clothes for what they are.
- jerf 10y ago"It's usually a combination of a competent but misguided senior engineer" Quibble: Anyone who comes up with and deploys that sort of system is not competent. They may be "senior", chronologically anyhow, but they are not "competent". Compenent senior engineers know about the inner-platform effect. Similarly, to me making avoid a second reply, it's not just lack of communication that makes this system bad. The inner-platform antipattern is objectively bad, no matter how it is communicated.
- s_kilk 10y agoWe could change "competent" to "capable", which may better capture the spirit of the argument :) The point is, this engineer, for all they're many, glaring faults, can get stuff done. Impressive stuff, even. And that's all the business dudes see in this scenario; Dave plugging away at a computer and cheques from customers showing up in the mail every month.
- jerf 10y agoFair enough. Such systems do require an impressive amount of capable labor to make work at all. Labor to staggeringly negative effect, but yes, capable labor. One could do wonders with such an engineer if you can mentor them... and if they'll take a mentoring.
- s_kilk 10y ago> ...if you can mentor them... and if they'll take a mentoring. I suspect these "genius" programmers are damaged beyond all hope :)
- Freak_NL 10y agoThe kind of people that come up with this stuff usually are in fact really good at visualising an abstract problem and implementing it in code. What they often lack is the capacity to translate what it is their frameworks do to language others can understand. From what I have witnessed myself, these guys are actually quite intelligent in an abstract almost mathematical way — that is, they are not dumb and can come across as geniuses — but their mediocre communication skills prevent colleagues from actually understanding their work, and more importantly, prevent themselves from ever realizing that what they are doing is way too experimental and (not rarely) wildly inappropriate for the task at hand. You will hear these visionaries extol the virtues of their revolutionary framework time and time again, and that it will be the foundation of anything the company builds for years to come, but any criticism or even critical questions are dismissed with an air of 'you-just-don't-get-it-yet'. In the end either you leave for greener pastures, or the idiot savant cracks under the pressure of changing business needs that cannot be met by the big framework that only he/she (usually he) really 'gets' and quits.
- mgkimsal 10y agoWorked at a place where there was a 'genius' (knew him before I worked there - not a dumb guy, really) who had written some really .. bizarre AOP-style stuff in PHP4. Not AOP extensions, just... a whole lot of stuff trying to approximate AOP, but no one knew the term AOP or what it was good for. (aside: it was interesting intellectually to walk through, but was not anything that should have been used for production code. also, he didn't label himself a genius, but did have a somewhat overinflated view of how good his code was). Anyway, he was rarely in meetings, but a couple of folks who glommed on to him early on would extol the virtues of his 'framework'. "You know how some people are just so smart that they can't even explain their work, cause it's so beyond everyone's ability to understand it? That's who he is, and that's what we have!" This was said to me at least once, and repeated variations of it in a couple other meetings. And it was said with pride/admiration/awe, about how awesome it was. I countered with "if you can't understand it, and he can't explain it, he's the only one who can do anything with it, and you can't really verify if it's doing what you want/need, so how is this remotely 'good' by any metric you use for any other software in this department?" "You just don't understand how amazing this is, and what we're able to do with it" was the response. I distanced myself from it, but was then tasked with having to build on top of the 'web framework'. And discovered it had no support for web sessions. Or security. Or database connectivity. It was literally just mapping an incoming web request to a file, while taking a logging token from a cookie and sending it to a third server for logging activity. Given the AOP-esque nature... I had a bit of a hard time trying to figure out just where I'd actually add any sort of session management, and when I asked for someone (original author maybe?) to add this in because I couldn't figure out how to do it, but needed it, I was 'aggressive' and 'not a team player'. Ugh... EDIT: when I read dailywtf stuff, I sometimes doubt the dramatizations, then I remember back to my days on this project, and ... have to recognize there's probably very little embellishment.
- ckastner 10y agoSuch an aura can be cultered. This was a fairly entertaining read: https://news.ycombinator.com/item?id=11631118 https://news.ycombinator.com/item?id=11631118
- Confusion 10y agoAny idiot can create a mess that doesn't work. It takes a genius to create a mess that works.
- ufmace 10y agoIt fulfills complementary anti-patterns both with the developer and the management. The developer that built it actually is smart, since you have to be to make something so bizarre and complex actually function at all. They are also full of ego, which gives them the need to prove to everyone how smart they are by building something very complex, whether the problem calls for it or not. What they lack is the wisdom to refrain from inappropriately trying to prove how smart they are and building something that is easy to troubleshoot and maintain. They are able to stay where they are because management has their own egoic need to believe that they are employing and in charge of geniuses to demonstrate to their own peers how awesome they are. Instead of actually being awesome by coming up with a good business plan, executing well on it, and recognizing that your software problem is probably perfectly ordinary, and even if it isn't, you only hurt things by hiring ego-driven builders who want to build overly complex things instead of solving the problem at hand as simply as possible.