If you had to invest in a company, how would you make a decision?
There are 3 different ways to estimate the quality of a company or an organization.
The financial evaluation is the simplest because it is based on easily available data: revenue, profits, expenses, etc. On the other hand, this estimation is not the most relevant or the most precise: you know that company A and company B generate a 10 millions revenue and a profit of 1 million. It is thus possible that these two companies are very similar or, in any case, we have no elements to think differently.
The quantitative measures allow us to improve the quality of our evaluation. If you know that company A makes its revenue with 10 deals of 1 million while company B gets the same result with 100 000 sales of 100 (€ or $, does not matter), then you can already imagine that these two companies are not similar, sell different products and probably by different channels. If we add that company A is profitable on half of its sales and slightly loses on the other half, while company B is profitable on 90 % of its sales (but with a lower margin), the picture depicted by these data clears up. On the other hand, this evaluation is more difficult to conduct because this information is rarer and more difficult to obtain.
The qualitative estimation is the most effective. Company A realizes its sales with the top 100 biggest world companies through a sales force of 50 people distributed on 10 countries and an average deal duration of 18 months. Company B has no sales force, an unique office and sells exclusively on Internet. Our evaluation of these two companies is now much more precise.
Now, if we try to estimate the quality of an application with the help of a code analysis tool, the most abundant and easily avalaible data are of qualitative nature: these are the rules of compliance of good practices, based on the standards of the market. Rules and standards available by tens or even by hundreds with most of these tools, according to the technology analyzed.
Quantitative metrics are not so numerous: number of files or objects (Cobol programs, Java classes and methods, SQL functions or procedures, etc.), number of lines of code, percentage of comments, Cyclomatic Complexity, coupling, etc. These measures are very useful because they allow us to to draw up a more precise portrait of the application. When I conduct an assessment, I always begin with these data.
On the other hand, code analysis tools do not supply us the information of financial nature which are the most useful for the decision-making. Yes, I know, there is currently a lot of talk about the famous Technical Debt, but how many tools calculate it automatically when analyzing your code? Well, this information is indispensable when it comes to manage a project or an application portfolio.
A few years ago, a VP Application Development said to me: « some of my project teams deliver their applications on time and budget, the others not. And I do not know why ».
It reminded me of a quote (1) I used for the subtitle of this blog: « half of my advertising budget is wasted, but I do not know which one) ».
If you had to invest in an application, how would you make a decision?
(1) I always believed that the author of this sentence was David Ogilvy, considered as the ‘pope of advertising’, but it looks that its origin is uncertain.