DEV Community

Discussion on: Building Your Own Tools Is Dumb

Collapse
 
phallstrom profile image
Philip Hallstrom

Everything is a trade off and there's no one guiding principle. The advantage to building it yourself is it's entirely yours and you know how it works and can make any changes you want. It also, ideally, does only what you want it to do and nothing more. The disadvantage is that, well, you have to build and maintain it yourself. If you "buy" (opensource or bought, same story) you are now dependent on that person to maintain their code, do things right, and not do something that breaks your integration in the future.

The classic example of buy-not-build is crypto software. Do you know enough to build that piece securely? Highly unlikely, so a buy option makes a lot of sense here. Using something like Devise that has been vetted and looked at by thousands is more reliable than your home-grown authentication solution.

The classic example of build-not-buy is Node's left_pad fiasco. That is a trivial function you could write yourself and if you had your site wouldn't have crashed when the owner pulled it from the repository.

The harder decisions are things like pagination, tagging, full text search, etc. IMHO in each case you need to examine your business needs and then research the available buy options to look at their reliability, history of maintenance, etc. and then make your decision.

Mike Perham (of Sidekiq fame) wrote an interesting article about this awhile back that is interesting.

mikeperham.com/2016/02/09/kill-you...