About the Author
César Zea
Senior Software Engineer
SQL Server expert: 25 y.e.
Sencha ExtJS: 11 y.e.
Java J2EE: 10 y.e.
AWS API. AWS-DMS
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.
We can use a button as an example, and as a button it is worth explaining why betting on a paid JavaScript framework is much cheaper than not using any or using a free one when what we do is develop pure management applications aimed at professionals, such as ERP, CRM, the front end of industrial applications, etc.
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.
Let’s think about it for a moment: there are many JavaScript frameworks that are free and others that are cheaper, which makes it necessary to justify a lot, many times, the need to pay $ 960 or $ 1,400 per developer to use this framework with commercial character.
However, does this make sense? I mean:
Does it make sense that a cost of $ 960 per developer is an argument to take into account when choosing a JavaScript framework?
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.
Some will think, what is he talking about?: well, I am talking about 100% web applications whose presentation level is developed in JavaScript and that work without the need of installing any component, directly in our web browser, being the power of its functionality almost identical to that of desktop data exploitation applications.
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.
For example:
- 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.
Take into account the time that a JavaScript expert developer could take to develop such component or functionality and integrate it into the framework, calculate your company’s cost plus its cost of structure and indirect costs, plus the cost of the risk involved in adding complexity to the development of your project, and subtract these costs from the price of the license whose cost you are evaluating.
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.
But what if our JavaScript framework offers the developer all the widgets or components necessary to be able to define the interface without having to design anything?
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.
We all know that no one likes paying for paying. I do not even know how many times in these 11 years I have evaluated the possibility of changing the framework with my development team, but I assure you that it has been more than 6 times. In every study that I have undertaken, without even taking into account the cost of the transition staff and framework adaptation, as in many occasions the development teams appear and disappear, I have reached to the same conclusion: “Buy cheap, buy twice” and Sencha ExtJs ends up defining itself, without a doubt for us, as the best of the JavaScript frameworks for development of Rich Internet Applications (RIA) applications that can be found in the market, both from the functional and economical points of view.