All products have a lifecycle. Since they are born, they go through different stages in the market:
Technology works likewise. Languages, frameworks and methodologies go through their lifecycle. Some remain, others die away. Gartner’s Hype Cycle (also known as Gartner’s Expectation Cycle) shows on a graphic way how we can think the curve in our area:
As developers, the lifecycle of our own products also depends on the lifecycle of the “raw material” we work with, the practices we use, the language we choose to code in, etc. How can we make our minds before starting the development? How can we know what framework will be successful, which will win over it, or which will provide us with greater chances of growth and evolution for our products? Maxi Céspedes and Ema Suriano (developers at intive-FDV) once told us in an Open Space – held in our intive-FDV offices – that all comes down to balance; knowing what lifespan we think for our product will help us take decisions. We will surely make modifications in the long run, but making the right decisions will help us reduce the cost of upgrade of our product.
How to know what technologies to use when we develop?
Some time ago, when technology started out it was only affordable for very few companies, and later the “democratization” progress started. It was then when the community generated around grew, when the interchange became bigger, and the product became increasingly richer. Nowadays, that scheme only applies to hardware, software has changed its model in the market, and that is why we can find frameworks, libraries and products which are born open-source, and others which are born closed-source and then go democratic becoming open-source. This creates an infinite range of options to choose from, for all budgets and needs.
One of the techniques that helps choose a methodology, tool, platform, language or framework, is research. There are sites of reference to consult in order to know the positioning of each product or trend in the market. An example is the Gartner’s Hype Cycle we mentioned before, but Emanuel recommends mainly Thoughtworks, a more up-to-date and interesting radar.
It is common that the dilemma of choosing a technology which is already settled in the market comes up, as opposed to a new technology boasting a great potential of growth. Here the choice depends many times on the characteristics of the decision-making element of the purchase as a consumer. According to Everett Rogers, we can classify our users in the following way:
Innovators “they are like shooting stars”, says Juan Manuel Álvarez Gimenez, our intive-FDV’s CTO, are those who usually undertake the risk of adopting new technologies, but they are also those who get tired of them faster and look for some other even newer options. On the contrary, Early Adopters will adopt a product or service in the early stage, but wanting those solutions to be more stable and long-term. In intive-FDV we position ourselves as Innovators when we research within the brigades, but later we maybe become part of the Early Adopters (this happened with the language “Go”) or of the Early Majority (as it happened with the case of React) when we chose new technology for our clients. All depends on our client’s target, on whether the test is performed on a business unit that is core for the client, and on other many variables. The risk is assessed in relation to the possible success or convenience offered by the new technology.
As a final conclusion, Maxi told us about Code Simplicity, a book that gives some hints to think about and decide during the process of selecting tools.
- The ultimate goal of the software is to help people, not machines.
- The level of quality of your design has to be proportional with the duration in time that your system will keep on helping people.
- The ease of maintenance of a software artifact is proportional to the simplicity of its individual pieces.
There are paradigmatic and innovative changes whose learning curve is low, or changes which are not easy to incorporate but which some time later, witness their learning curve go flatter because lots of documentation and tutorials appear. It is only a question of deciding in which moment you take the plunge and jump towards new things.