To create an application or a program that works in the “cloud” (internet) and can be accessed from a tablet, cell phone or laptop is like building a house:
You start with project planning from budgeting to architectural design. Then the land is cleaned, the excavation is done to proceed with the foundation. Once the foundations are finished, we proceed with the walls, plumbing, electrical installation, etc. Afterwards, the roofs are built, the electrical installation is finished and finally the floors, windows and doors are finished.
In construction, errors in the architectural design or defects in the foundation greatly increase the costs of the initial project (2). For example, a water drain that occurs only during certain months of the year can cause the clay to wash out, which in turn can cause the foundation to tilt and later generate serious cracking in the walls of the house. Similarly, the requirements analysis and design stage of the computer program is analogous to the foundation stage of the project.
It´s where the first challenge arises in the construction of custom software for a company where the consultant often fails to discover those irregularities in the terrain or temporary phenomena that can greatly impact project costs.
To minimize this risk of the software design stage, it is necessary to follow proven methodologies such as “Design Thinking” (3) or “SolTrees” (4), to perform the analysis of the current situation, effects-causes and possible solutions.
The work of planning, land clearing, foundation and the whole structure of the house takes a lot of time and effort. So for a long time it is not possible to see how the house will look like.
In the same way, during the first stages of a software project, you do not see all the screens or windows with the functions you want the system to perform. In software construction, the foundation is not obvious. At least in the construction of a house you can physically observe the excavation and plumbing works, but in software we have to remember that we are dealing with computing and the databases, code and graphics are totally intangible and are located in what today we call “the cloud”.
For this reason, it is recommended to apply a software development process based on the “Agile” philosophy, from which strategic deliveries of functionality are established so that the entrepreneur has tangible results as soon as possible and thus can give feedback to the software development team on achievements or possible improvements that can be made to the system.
As the entrepreneur and his team begin to provide feedback to the software development team on progress, the level of collaboration grows, and it´s when new ideas for software or operation of the business can be discovered.
Just as in the construction of a house, if you want a change in the architectural design and the house is already under construction, it is very costly because it may require destroying walls, re-digging to reinstall plumbing, etc., etc., etc. It is true that in the construction of the software there is more flexibility to make changes to the windows or functionalities that were contemplated at the beginning and it is precisely for this reason that it is said that “a software project is never finished”, since there are always ways to continue improving or evolving the software program or application.
However, the challenge is always to respect the time and budget for the project.
To overcome the challenge of project timelines and budget, the software development strategy must be specially designed so that the entrepreneur can include these new ideas for improvement or innovation as the project progresses, minimizing unforeseen costs, so that the budget is not overrun.
For example, a project can be divided into phases or stages according to the implementation strategy that takes into account several aspects, including the complexity of the different functionalities, the implementation time, the strength of the requirements, the innovation potential and the priorities of the business owner.
Finally, it is time for the implementation of the new software application and unlike a house that is taken care of rather quickly, the new technology requires training and an adoption period. However, this adoption period should not be painful and the benefits of the technology should be felt from day one.
If the adoption period for the new software proves to be complicated, unintuitive and some operations take much longer than originally planned, then an analysis of the complications being experienced should be considered and solutions proposed that may include changes to the functionality of the software application.
To minimize the risk of a long period of technology adoption, from the beginning you should work on user-friendly, intuitive and easy-to-use solutions.
Technology solutions must adapt to people and not the other way around.
For example, a good indication that the software is intuitive and user-friendly is that it does not require a manual, but that the elements on the screens explain by themselves the functionality and purpose of the operations to be performed.
If all these aspects are explained from the beginning and the project is worked on based on proven methodologies that focus on collaborative learning, the development of the software application specially designed for the company or business will be a success and will yield the expected results such as:
An attractive ROI from operational savings by streamlining, automating and improving business processes.
Early adoption of the technology.
Greater capacity to cover more markets or attack new market segments.
Potential to innovate in the business model and far outperform the competition.
(1) https://www.termiser.com/fases-proceso-de-construccion-de-un-edificio/
(2) https://www.asefa.es/comunicacion/patologias/49-patologias-en-cimentaciones-posibles-causas
(3) http://www.designthinking.es/inicio/
(4) Lino, Ulises (2016). Metodología SolTrees. Derechos de Autor 03-2016-060311530600-01.