Development Engineering October 30,  2020

Why we use new technologies to build your software

Sofía Acher   •  Communication Specialist   •  Linkedin
Paula Gandini   •  .NET Developer

In Onetree we always seek to use the latest technologies in order to implement those that are stable, new, as well efficient. From an internal point of view, this is enhancing for Developers because while it is exciting to work with new technologies they acquire new skills that make them grow as professionals and become more competitive. But how does our use of new technologies impact you? What does it mean for your business and your clients? In this article we aim to share our reasoning behind our decision to consistently use the latest technologies and how this entails highly positive results for your business.

Using new technologies is advantageous on many levels. Not only does it apply for technological aspects, that is to say, using the latest frameworks, languages, and libraries but also for structural aspects such as applying the latest architectures, because they enrich our projects. For instance, we focus on coding with DDD architecture (Domain Driven Design) whenever possible since it allows us to center the design and app building in the domain, which is a loyal representation of your business rules and reality. As time goes by, businesses are forced to transform because of external factors. This creates the need for them to adapt to solve their customers’ ever changing expectations and to remain competitive. Naturally, new technologies are designed to solve these emerging challenges in an easy way, since using pre-existing technologies can make reaching solutions a more cumbersome development.

A practical example is the management of background tasks or planned tasks. For example, consider the scenario in which a company has to update purchase orders on a specific date. In the past, there were multiple ways to solve this need such as logging tasks in a database for the server to process in cue. This solution worked, but did not cover every possibility or required a lot of custom development for a rather mundane task, so numerous other answers to this need existed. Nowadays, the use of .NET Core and Hangfire library background tasks are directly facilitated into the framework simplifying the development process: a solution for planned tasks incorporated directly into the framework. Firstly, this is beneficial because, as it is a much more efficient option than those previously managed, it reduces the project’s uncertainty and hence, time and budget overruns. Secondly, as it is generated directly inside the framework it is part of the out-of-the-box software and not external to the clients’ platform, which simplifies the implementation and by turn reduces maintenance costs. Thirdly, from both advantages just mentioned it follows that this solution offers efficiency in terms of speed and security because it is done directly by the .NET core product.

That being so, this is a case that shows how technologies are developing better and thus responding in an improved, efficient and simpler way to the problems that businesses face. New technologies allow that the quality of the result will be better; faster, in terms of execution times and simpler, in the sense of both easier to use for you (the client or user) and to implement for the Developer. Given the latter, the same tasks require less development hours, which benefits you and your budget. When software technology becomes outdated, the software may become unable to provide businesses the functionalities they need, and so they are no longer useful. Therefore, it is important to maintain software up to date so that they continue being a functional tool for your business.

Another advantage of using modern technologies is loading times. Moreover, before launching a solution, developers of new technologies test their efficiency a lot since they improve and correct errors from past ones. That is to say, the final result is more complete, with less margin of error and more stability at the moment of developing the software since those errors have already been solved by the people who developed that technology.

When choosing the right tools for a project, there are no silver bullets, and using the latest technologies to solve business needs is no exception. Every project should be carefully analyzed to identify what technologies will contribute more to its cause and help drive business value. As inclined to staying updated as we may be, we realize that there are reasons that justify a more traditional code base. One of them is the time required for a Developer to learn these technologies; the learning curve explains that at first this demands a high amount of hours and once incorporated and understood, the curve will start to flatten. What is more and as previously mentioned, developers are expected to perform their work in less time as new technologies are more efficient. In addition to this, updating legacy software can have a significant cost. Codes have to be rewritten and this requires time from the Developer and an investment from you. However, not updating them on time may cause loss of support, in which case they will have to be updated anyway to avoid bigger repercussions that may impact the systems security or other sensitive aspects.

In the light of the above, from all the advantages and challenges of new technologies explained it follows that the fact we use them is aimed towards achieving the highest quality of your software we can and with reasonable budgets. The tool we will provide you with will not only help you in your business but should also last in time; be from a reputable source that has proved to provide quality software for long periods of time and with frequent available updates. It is important to keep the software up to date for its satisfactory health so that it has a positive aging and it can preserve overtime instead of having to be permanently rebuilt. If new technologies are used and updates are made when needed, as time goes by, your software will continue to be useful as well as effective for your business and you should not have to make big investments to improve it.

We help clients grow their businesses by making creativity, flexibility, and talent converge into software development and UI/UX design. We are passionate and committed to take on challenges that can drive your business forward.
We combine our experience in Ecommerce, mobile, and web across various industries such as retail, wholesale, healthcare, government, and entertainment. This way, we work closely with you as a team in order to collaborate towards successful implementations.

Sofía Acher Communication Specialist   •  Linkedin
Paula Gandini .NET Developer