The curse of custom code
Somebody might ask me : Marcio, aren’t you a developer as well ?? and I would answer : Yes, of course.
Then this same person can ask me again : Don’t you like to create new code by yourself ? and I would answer : Yes, and tell him a good story….
This real story that happens in many companies is really sad, and probably will keep happening.
I’ve seen many people and companies that simply love develop something new by themselves, well, that’s not a bad idea at first look, but we should always look at other options. Sometimes we try to re-code something that already exists as a tool, application server, monitoring device and so on.
The point is that sometimes it’s way less expensive if we buy something ready to be used, such as a component or integration tool, rather than try to develop it internally in the company. The main problem is related to the TCO, because after ( or while ) developing something new we need to extensively test it to achieve maturity, and there are things that are not so simply to test, like distribution and concurrency.
This is a rule I use, whenever I am architecting/designing something new I always look for reuse something, and this can be something already done by the team or an external componente offered by a vendor.
The calculation is simple, try to measure or to estimate how many hours each developer should spend to develop the new solution, then add more time to test, more time to bug fixes, and then search for a similar product and compare the prices.