Do you need to build it yourself?
or Building a Rounder Wheel.
I've worked in many organisations and one thing that never ceases to amaze me is how often teams build unnecessary tools and frameworks.
Yet again, I have to use a bespoke defect tracking system. This is the third one I've come across and none of them are as good as a Commercial off the Shelf (COTS) solution and definitely cost more to develop than to buy.
In the past, I've also seen in-house developed: IDEs, email clients, database admin tools, UML tools etc. Perhaps it's more fun to write tools than the boring, business functionality your client/users needs but does it offer any value?
As a software/systems architect it's your job to deliver value to the business you work for. Whenever someone suggests creating a bespoke tool ask yourself the following:
- Can I buy something to do this?
- Can I use or tailor an open source product?
- Can I use or create a template for a standard tool like Eclipse, Word or Excel?
Be pragmatic in your decision and avoid wasting your limited time and resources on things you don't need to do!
Re: Do you need to build it yourself?
In defence of rolling your own, the cost of commercial software is often all up-front and can be rather speculative. It also often takes longer to get the benefits of COTS.
Of course, that's a very short-term attitude and perhaps more in keeping with a tactical solution than a strategic one. I've only got to look at an in-house load testing tool (which doesn't even match the free alternatives) for a counterexample.
It's in this area that consultancies often get very bad names. The bespoke methodology, tools or frameworks that sometimes get wheeled out or, more likely, reinvented then wheeled out, are poor value, locking you into a supplier rather than a vendor.
Re: Do you need to build it yourself?
While I am all for sensible choices, it is also important to point out that it is only in hindsight that the costs of any "make" or "buy" decision can really be measured. At the point that such a decision is made, the real cost of all the possible options is unknown, and to assume that choosing "buy" will always be more cost-effective is naive.
I have worked with plenty of projects where the promised features and ease of reuse/configuration of a commercial product have been misunderstood or oversold. In several such cases a locally-produced task- and domain-specific development eventually proved cheaper, quicker to develop and more suitable for purpose than a failed attempt to customise, maintain and obtain support for a more generic third-party solution.
Re: Do you need to build it yourself?
What do you think?
Robert works for an investment bank and has spent many years creating and maintaining trading systems. He knows far too much about low latency data systems and garbage collection than is good for anyone. If you find yourself in a pub with him then do NOT mention phrases like "mark and sweep" or "memory profiling" as you'll be stuck there for hours and, might, be forced to break an ashtray over your own head to get away from him.


