We've quite a few choices to make in infrastructure, regarding architecture design and etc.
I'm here to deal with cost factor involved in choice of tools we adapt or build. End of the day, dollars matter more than anything else.
When we talk of cost, most important is to realise is humans are assets. They bring in more value with time. Poor management of these assets would depreciate.
Total cost of Ownership = CapEx + OPEx;
CapEx is relatively easier part to calculate and OpEx is interestingly challenging.
CapEx --> Capital investment, usually one time and the cost recovers with time.
Opex --> Ongoing operational cost to maintain uptime, and keep up with enhancements
Total costs of adapting a tool = Cost (Engineering + Infrastructure + Operations + Service + Culture change) Benefits = cost ( Engineering time saved + Increase in revenue )
cost ( Infrastructure ) = cost of servers+etc. can be mapped with cloud computing bills or other invoices. This is part of CapEx.
cost ( Service ) = maintenance + management. Like every P/S/Iaas, internal tools also require attention and service. This is an OpEx.
To get an approximate value, one can estimate it with number of hours gone into management of the service, learning curve for new people, excitement of challenges for the maintenance people, etc.
cost ( Engineering ) = Average num of days it takes developers
*their average salary
*number of engineers for this project + coolness cost - tool familiarity + Estimation error + Research cost + Training cost.
This could be CapEx and OpEx as there's a thin line between two when it comes to engineering. Engineers are assets. If the asset is wisely used, their value appreciates and results the whole value enhanced. If the asset isn't addressed, their value depreciates, bringing down the whole value.
Coolness cost --> Cost of adopting a tool or succubming to the cult followed by companies and people around. This could be identified by reiterating to the problem statement at every point of discussion
- cost ( Culture change) = This is hard to calculate in terms of numbers. You can measure how long did it take to bring everyone on same page. The length of meetings, time taken to decide an approach, the way a decision is made (was it with disagreements, setbacks, etc.) are some pointers.
This is an OpEx, need to be calculated collaboratively with team members, leads and everyone else in the company.
Coffee room conversations tell more about culture than desks.
cost ( Engineering time saved ) = Over the foreseeable future, what's the savings you're making on an engineering.
cost ( Increase in revenue ) = The ultimate mapping of revenue to engineering decision.
Important aspects to consider:
- This is a non-exhaustive list. There are several other factors applicable to your company.
- Take approximations when it comes to cost (culture change or human emotions)
- The solution offered by the tool, does the problem exist or you started to think you've this problem only after reading a blog post or such?
- Calculate it for long term.. may be, for 5 years ahead.. make a decision based on the cumulative.
To do a estimate of all the aforementioned costs, you've to put your highest valued assets in motion. You may calculate with a smaller sample set and exponentiate costs for larger set.