On Oct. 16, 2015, 5:38 a.m. by Hussain Almohri
I would say that coding is one of the most amazing arts performed by human beings. Like any piece of artwork, take drawing, many people wonder coding is done (even some try to grasp the skill) but very few succeed in it. Also similar to artists, coders often have a say in the coding style, use of language mechanisms, programming paradigms and platforms, and get quite defensive about the way they prefer coding. However, there are key difference between coding and any artwork that takes the profession of developing software into the engineering realm as it is known today.
Among the difference is the application of coding to solve real world problems. Coding is not meant to create artworks that amaze people, become historical, or introduce details of luxury. On the other hand, a piece of drawing or painting is mostly aimed to fascinate the viewers. Coding is somehow similar to architecting in that both resemble elements of art but also produce practical and valuable products that solve real business problems.
A piece of code, similar to a design document, is not a tangible item that has material value and thus cannot be valued according to the cost of the basic material used to produce the artifact. When it comes to evaluating the cost, the effort to produce one is not clear to non-technical people leading to under appreciation of the cost of production. Without having prior extensive coding experience, it is impossible for one to value or even appreciate the value of software. Also, it is known to be hard problem to estimate the cost of producing software when a business or a startup is at the feasibility study or planning stages.
So, what should a non-technical (or even technical) entrepreneur do to develop a clear understanding and cost estimation? What should investors do to asses the quality of code and propose a price for it? How can we prevent under or over estimation of the cost to produce a piece of software? Even today, these questions are open problems that need careful research considerations.
There has been tons of research work on developing metrics that can approximate the effort and consequently the cost for coding artifacts, but they remain highly unpractical and limited to consultation activities. The estimation process itself is so lengthy and complex that is often unfeasible for startup owners. This often results in a default under appreciation of valuable code that needs special skills. Most of the value of a startup is given to the business model that itself isn't possible without the code.