· Home · Thoughts · Make or Buy ·

Make or Buy

About Tools

Thomas Carlyle said "Man is a tool-using animal...Without tools he is nothing, with tools he is all"

Our ability to make and use tools define the world we have made for ourselves. This uses a very broad definition of tool. It starts at the bottom and goes up endlessly from there. We first used objects that exist naturally to make something useful. Those soon become better tools. We then get good at making tools for special purposes. Along with making tools we learned how the world around us worked. With that knowledge we were able to make better tools. These cycles of discovery and adaptation were endless. The previous cycle lays groundwork for the next. From the very beginning things started to branch out, touching everything. In many ways the whole of human knowledge are collections of tools and the skills and discoveries that come from using them.

Finding a tool for a complex job can get complicated. This can be even harder if the job part of a well know family of jobs. The case I am thinking of is the accounting system for a medium size company. The job is broadly defined by regulations and standards imposed by forces external to the company. Then there are standards and practices unique to that company. Accounting software is just a tool. In this case it is being pulled in several directions at once. The big choice is to buy an accounting package or to write a custom solution. Both approaches have merits as well as pitfalls.

The biggest reason to buy the accounting package is to take advantage of the parts that are the same for everyone. The argument is don't reinvent the wheel. Everyone has to file the same tax forms, that part of the code can be same for everyone. When the code is the same for everyone it is relatively easy to write. The parts that make big software systems expensive are where everyone does something a little differently. The folks that put these packages together try to anticipate what people will try to do with a lot of options. That makes the code-base bigger and harder to maintain and harder to deploy. Putting a big package to use involves a lot of configuration. This is custom work for every company that uses it. The total cost of the system is the cost of the software and the cost of the custom work to put it to use.

There are a lot of mid-level general-purpose tools that can be used to built an accounting system. These can be programmed with the specific business practices of a company along with the applicable external requirements. There is a cost to use these mid-level tools, but is is usually much less then with an external accounting packages. This is balanced by the cost of the greater amount of custom work to put everything together. The advantage here is that the whole effort is oriented to the specific requirements of the job instead of trying to discover how to use the options from the external package.

The big choice here is where to start working. The big external package offers a head start on the task at the expense of having to backtrack to figure out to make it work with established local practice. Starting with the general-purpose tools takes longer, but you understand every part of the work. The big lesson is that the total cost is the important factor. This cost is not easy to calculate. It is different for everyone and every project. The hard part is getting the smart people with preconceived ideas to do the calculation.

· Home · Programing · Tinkering · Recreation · Thoughts · Site Map ·