4 ms·
I know it seems obvious, but determining when to create your own tech instead of using or extending existing solutions is tough. Even tougher given the tendenc
by grumpycanuck 17y ago
I know it seems obvious, but determining when to create your own tech instead of using or extending existing solutions is tough. Even tougher given the tendency of people to think their situations are unique instead of being "just like situation X with Y added."
I mean, how many times (to beat a dead horse) have you seen someone say "I wrote my own framework because <insert contrived scenario that other frameworks have solved or are easily extended to solve>".
Yes, sometimes your situation is so unique you need to role your own solution. Chances are it's your ego talking instead of common sense.
- andrewvc 17y agoTrue, but then there are situations like Rails, where 37 Signals could have built their apps using existing tech, but said 'there should be a better way'. I mean, if you told someone "I'm building this project management app, and I'm going to take an esoteric language no one knows, and write an app framework from scratch" they'd rightly tell you you're crazy. Most endeavours that start like that end up as failures, however without these attempts tech would stagnate.
- fnid 17y agoIf one were to set out on such a path and accomplish the goal out of hobby or desire to learn a new language, or for whatever reason, how long would something like that take? How long did it take 37s to build ROR? How long did PHP take? I'm just curious...
- sogrady 17y agoDisclosure: I wrote the piece. But anyway, I'm still with andrewvc here. I concur that NIH - the pathology you're describing above - is equally unproductive, and that deciding when to build or buy is a difficult question to answer. That all being said, it seems fairly clear that due to a wide variety of factors, heterogeneity is accelerating, which makes life more difficult for general purpose, volume solutions. Think of it this way: Windows XP was, for a lot of people, a more than acceptable compute interface. But it wasn't designed for phones, devices, tablets, and the like. And attempts to bend it to that purpose largely failed. We need different tools for different jobs, and with the number of job increasing, sometimes there just isn't a good tool available. At which point rolling your own is not only appropriate, but desirable. Point being that specialization is the new norm, and as such roll your own - or at least leveraging the results of someone else's roll your own - will become more common. IMHO, and so on.