Cost of Developing Custom Applications

Business aspects of code written to order. April 11, 2005

Question
How much do businesses charge to create custom applications for AutoCAD, Mechanical Desktop or Inventor? I have been doing it for a few years now. I create the parametric models and link them with VBA. Each macro produces finished prints with full BOM and all necessary information for fabrication. A unit costing anywhere from 3-5 thousand dollars would take about 5-10 minutes to complete the process for finished prints. I have never done this for an outside company, only for the companies I have worked for. If they were to hire an outside source, what could they expect to pay?

Forum Responses
(CAD Forum)
From contributor D:
I generally pay between $35.00 and $100.00 an hour for ACAD coding. I have been ripped off numerous times by coders that have charged for work they did not do or that did not follow directions. I have also paid by the module.

Neither approach seems to work well. As a developer, I do not want to pay for your time to do something you cannot do. Programmers have misled me. They claim they have experience in certain areas, but I find that they really do not. An example would be a vb programmer telling me that he/she knows SQL and databases. They may be able to make the applications connect, but when a more competent programmer in this area reviews the code, it turns out that they are moving the data in an inefficient fashion and bringing the software to a crawl.

I also have some difficulties with the approach that I want to take. Very often the programmers want to code what they can do. In the case of cabinetry and woodworking, this approach is used everywhere and is easily done and controlled. I find myself having to state what I want again and again and having to shoot down what they are suggesting. This is not a good feeling and is usually a big waste of time. Once in a while I will get a programmer that does what I want. Generally, they do not even understand what it is I am trying to do. When they are done and see it all work together they finally understand. In order to have situations like this work, I must clearly spell out exactly what I want to happen and what is not to happen. It can be really tough to do and when you are dealing with people that do not program, such as myself, you are going to have miscommunication and misunderstandings. Typical business owners are not going to be able to clearly spell out what they want. Nor are they going to understand that coding is never done.

Who does the testing and debugging? If the coder does it, then it is not an easily proved expense. If the business does it, then they may not be as thorough or may not communicate and document the problems correctly. It is generally not a good idea for the coding programmer to also be the development manger for a project because of conflicts of interest and the lack of an independent viewpoint. It is also a problem having someone do it that is not experienced at it, such as a business owner or drafter. They do not document it correctly and often request or say things that mean nothing in programming terms.

It is difficult, as the least, to hire hard working and honest programmers that can follow directions. It is even harder to find the above that are not going to push a certain approach because it suits their coding and experience. This is typical for all coding. What is best for the business should be coded. Not a working application that is far inferior to a different working application that is specific to the shops needs. Every shop is different and there are a great many variables to consider.

In creating a custom application you get into ideas that you think will work, but the practical use of the application may have different results. This goes for efficiency, unforeseen need for additional coding and often better ideas come along by seeing a working application and the need to scrap everything and start over.

Off the shelf applications, even if not perfect, are often in the best interest of a business, as the costs for custom programming can easily go over $100,000 and the savings they yield, if any, do not justify the investment. This is very difficult for business owners to see ahead of time and require careful cost analysis and research beforehand. Many are sucked in deeper and deeper and the costs become staggering. They think it is the programmer's responsibility to clearly spell out what they are going to get, but the actual working application falls short of their expectations. This leaves a bitter taste in the mouths of the business owners.

The business owners also have to allocate sufficient time of their own to get a project finished. They often fail to take these costs into consideration. They can be quite large.

On the flip side, the programmers have to worry about being paid and not being taken advantage of. All too often the situation can turn sour because of an inexperienced or unethical person managing the project. They put the programmer into an uncomfortable situation where they must do more coding for free to please the project manager.

To do this right, there are NDA’s, legal fees, research and considerable investments of time and money that need to be made before the coding is even started. The business owner, except for your own attorney fees, should incur these costs. Any business owner not willing to provide a detailed plan in legal writing is probably a disaster waiting to happen.

Most importantly…who owns the code? Does the programmer have a right to use the same coding for other projects? Many will claim ownership to all code they write if the business owner did not know ahead of them to spell it out clearly in the contract. It would be a conflict of interest for the programmer to state anything, other than, “Seek a qualified attorney in this area to draw up a contract and advise you how to proceed, before we get started.” The attorney may not be familiar with the development process himself, and so there is no replacement for experience in the development management area. The first few times through, you can expect unhappy customers until they learn what their responsibilities really are.