Hacker News new | past | comments | ask | show | jobs | submit login

I don't know the lineage of this particular system. But I have worked on janky systems in the past. In one instance, an intern built a language during a summer project. It was an expedient solution to a problem that a team was having, so they began using it. Then they put work into making it faster and integrating it to other systems. Eventually they wrapped a service interface around it and reexported it to other teams. But there were serious semantic problems with the language as a concept and with the technical implementation of the language. Once it had users who came to depend on its bugs, it became very hard to fix, and the whole mess became more convoluted as people tried to build sensible extensions on the rotten core.

It's finally gotten to the point where there is the action potential to fix it in my case, but for a lot of systems with a complex and expedient lineage like this, it never gets there. So garden well, I guess, is the takeaway.




Almost every instance of this I've come across can be described by repeated localized, short-term optimization.

No one ever sat down and said "How can I design a terrible system that's a pain in the ass to work with and unable to be extended?"

Everyone sat down and said "How can I make that one thing that's actually my job faster?"


sometimes people also sit down and ask "how can I build a platform to do this kind of thing so expanding and maintaining that platform can be my new job here?"


Sometimes that's the end result, but I'd question if that's frequently the actual goal.

Never ascribe to malice, that which can be described by laziness, etc.

It seems like it would take more work to specifically design a system to ensure job security than to just haphazardly design without coherent architecture, and consequently be the only one who understands it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: