Program: Buy versus Build
Our organization is going through the process of trying to determine whether a multi-year deliverable should be bought from a vendor or built internally. The result so far is it is looking more and more like a waterfall approach with deadlines and costs/resource ramp-ups being estimated. Has anyone run into a paper or presentation on how this decision might be made that reflects more of an agile approach?
I don't recall reading any authoritative sources on this subject, but I do have some thoughts.
The act of making a build or buy decision is a good thing to do. However, when evaluating the costs of building, you should consider the methods by which you will perform the build action. One of the advantages of the agile methods is in iterative and incremental development. Although with buying, you can get more benefits faster, one of the things that you don't know is if you truly need all of the things that you are buying. You may find that you can build and deploy a "good enough" solution without satisfying all of the requirements and spend far less than you would with buying. Alternatively, you may realize that you really need all of the things and the build process may take longer.
There are so many factors, from the ability of the purchased product to be customized and integrated with other solutions, the stability of the integration points, the competencies of the developers, the stability of the requirements, the tolerance for risk and more. It's definitely not an easy decision. But in the end its a risk management activity - where are the biggest risks and how do you want to mitigate them?
Depends on what you're trying to accomplish. I have advised companies to go with popular vendor software for service ticket management, CRM and publishing. Personally, I think building out a software development team is very expensive and messy. You may end up with the wrong people or build a bad product. Working with vendors helps outsource a lot of that and you're in the driver's seat. Faster time-to-market. Nothing is perfect. But here's an analogy. How many people do you know who have had their homes custom built rather than buy a home from a builder?
Thanks for your time and thoughts. I hear what you are saying.
The ultimate issue I see is, if build is the decision, it then gets measured based on a time, cost and function expectation. That starts to feel less "agile", but I can't find an agile like model of how it could be approached.