There are many examples in which the phrase “buy cheap, buy twice” can be applied. In my experience of more than 25 years as a professional software developer and analyst, director of small development teams and majority shareholder of my own small software company, I have lived hundreds of cases in which this phrase can be applied in our field and, although it cannot be said that these following statements are always correct, it is true that most of the time they are:
- Single motivated and well-paid developer is more productive than three mediocre developers.
- It is cheaper to pay for a commercial software component than to develop it.
- There is not that much free software whose cost of ownership is lower than the cost of ownership of its equivalent versions of payment.
Throughout my career, I have seen how, more often than not, the executives in charge of making decisions about which professionals will intervene in the resolution of a problem or a computer project go to their subordinates so that they are the ones that make those decisions.
For many of them, this statement will trigger a very common response:
In my case I use Sencha ExtJs from before its birth, when it was still YUI-Ext, before the year 2007 (11 years ago), that even while being at the beginning a free product with much to improve, was the best in that era. They later changed the license type and became licensed ExtJs, with a license price of, I think, about $ 300 per developer.
And it did not end there: it later happened to cost between $ 4,000 and $ 9,000 for a minimum package of five licenses depending on the version, without the possibility of acquiring a license for a single developer. This forced, to anyone who wanted to use it for commercial purposes, to pay a minimum of $ 4,000, something that scared many micro SMEs and many self-employed,finally forcing a recent change of its licensing policy to sell licenses for a single developer for between $ 960 and $ 1,400 depending on the version.
However, does this make sense? I mean:
Well, it is clear that it depends: if what we want is to enrich our websites a bit, put a few menus, show a few data tables and little more, jQuery and many others are free and meet those needs.
But… what if the goal of our business, or our project, is to create management applications in Internet focused on productivity as a top priority, looking for them to be as functional as desktop applications? I mean, that they are as functional as the desktop version of an ERP, a CRM or a massive data exploitation application, for example.
In our slang they are the so-called Rich Internet Applications (RIA), name that has somewhat been altered by the partial view of many web developers who have only worked on web applications and have not had the experience of developing true professional desktop management products.
In this article I am including images of some of my works developed with Sencha ExtJS, but there are many RIA applications through the Internet, such as, for example, the functionalities of the spreadsheet, the text editor and other Google Docs products.
Between wanting to enrich a web application that shows a handful of data using jQuery, or that simply these data are displayed dynamically, and these RIA applications there is a huge leap in demand, am I right?
However, sometimes, in front of the functionality sample of an application like this, many engineers unaware of the problem and claim:
“This can also be done with jQuery, React, Angular and others that are free”
Without a doubt, yes, but at what price?
Here is the center of the problem and these are the real questions that must be asked in order to decide if $960 per developer, or $4,000 for five licenses, is an expensive price or an investment with which we will earn more money, with less risk and in less time:
- How many hours does a developer have to dedicate to implement such an application with some and other frameworks? Taking into account that the cost of a software developer's company is between 3,000€ and 6,000€ monthly, to which we must add their structural costs, how much would it cost?
- Can I save some other cost if my choice is one or the other?
In order to give an answer to these questions it is necessary to study what components or “widgets” has each one of the frameworks, and its functionalities already implemented for the user, what certainly supposes an effort that is not negligible and not to do it is one of the reasons for which incorrect decisions are often made.
For the profane, a component (or “widget”) is a data table, a button, a calendar, the tabs, an element that allows me to represent graphics, an information tree, etc.
- Does the framework to value have all the components that I am going to need?
- Does each component of each framework have the same functionality? Like, for example, a grid or data table can be in a framework a data table that is shown to the user in a completely dynamic way, in which you could change the size of the columns, realign them, sort the data by one or more levels, hide or show columns, filter by one or several ranges of values, etc., or be a simple static data table without any of these functionalities for the user. To explain it in a somewhat grotesque way: it can be as simple as a table of data that is displayed in a static way, or to have a functionality so complex and complete as that of a data table in Excel with its filters, realigning possibilities, creation of dynamic tables, etc.
If the answer to the first question is that you are going to need a component that the framework does not have, or if after looking for an answer to the second question, you come to the conclusion that some component of the framework does not have all the functionalities that you need or want to contribute to your product or project, let’s be clear, you will have it whatever you choose, but you will have to pay for it: your developers do not work for free.
And now, the second question: can I save myself other costs?
Well, here comes a good surprise: in order to develop a web application that has a sufficiently professional aspect, be it management or any other type, we usually need to invest in hours of web designers that give us, the developers, the basis on which to carry out the applications. This investment of working hours is not usually, in addition, a one-phase investment that once finished does not invest in it again. The developers, many times, need to go back to the designers to solve problems or be able to present new functionalities.
Oh, surprise, could we do without the graphic design and layout phase? Could we go without those costs? The answer is yes. Sometimes not 100%, but almost always 99% yes.
It is our turn to take accounts again and ask ourselves if $900 per developer, or $4,000 for five licenses, are a cost or a good investment that will make us earn money, with less risk and in less time. If you calculate the hours that you and your development team would save I would not have any doubt about it.