Darwinian evolution suggests that survival of the fittest keep adapting to its environment, which can change through time. Evolution can also occur through our social interaction, ancestor behaviour and other element we interact in our life time. If we go back to software rather than individuals, it could be true the fittest software or ideas are likely to last. This article explores to the evolution of software and why good software becomes more than intended.

Evolving software, do they?
Any body who has studied software engineering would read and discussed the benefits of software development life cycle. Originally, this idea described the birth to the death of software. A bit like the egg of mosquito who develops to a magnificent “blood-sucking” insect. In our software development life cycle a need is required to address. Otherwise, the software is not useful and its existence becomes questionable.
Tutorialpoints summarises models to ensure software become useful to its users. It is noticeable many activities are suggested to assist a situation, business activity, research tools, or assisting users to interact with an interactive device. It is not surprising a system development life cycle has become part of developing too business rules, procedures and transforming how business activities are conducted. ITIL considers software as a services and it needs managing. User interaction design suggests a development life cycle to improve how users perceive an interactive device or even our websites. This life cycle can never end…
Software is a bit like Swiss Army Knives…
In 1884, some good quality knives were designed and adopted by the Swiss Army. A firm called Victorinox became in existence. Nowadays, Swiss Army knives not only provide a knife, but also a lot of tools in our pockets. If you are wondering what a Swiss Army knife does do, just look here.
These familiar knives brings a platform in which ingeniously tools are added. The engineering and innovative achievement can only be described as amazing. It is a non trivial task to fit 49 tools in a pocket knife. You could hold in your pocket or hand-bag a pharmaceutical spatula, metal saw, or even fish scaler. I am not surprised, that astronauts used one Swiss Army knife to open MIR station. It is a miracle in itself.
All these positive comments will not stop users of metal saw, pharmaceutical spatula and fish scalers to purchase such items individually. Perhaps the size of the individual tools may fit better some daily use rather than one-off need.
Software is a bit like Swiss Army knives. Some users may wish to complete occasionally some mathematical modelling or basic budget calculations. Then, a spreadsheet should fit for their needs. Perhaps a more specialised software could compute the tax return automatically. It would make sense for a individuals requiring to complete such important task to adopt the software for Sage or other software providers.
A bit like the Swiss Army knives, spreadsheets have become a platform to hold a lot more tools than originally intended. For example, Microsoft Excel has its own programming language that manipulates cells and other elements of spreadsheets. We can add some additional packages to compute advanced statistical methodologies. However, users need to fiddle a lot to extend its use with some more complex computational tasks. Microsoft Excel may not be as scalable as some users thought, as a results some COVID may have been lost . Once we have reached, their limits statistical programming languages becomes more attractive. You can see a comparison here.
Let’s explore the concepts of office suite. These collections of software brings in one package many tools we can function in an office. A word processor, a spreadsheet, a presentation tools, time management tools. Then, emails software was added with some drawing tools and some relational database management systems (rdbms). Such systems became popular with managers and other small database development. In the mid 2000, the limit of these dbms led to many slugglish early management information systems. Many databases needed upgrading to his more performant brother, such as SQL server or Oracle for example.
These small DBMS became popular to analyse some data too. Many users may have learnt how to upload some data, create some forms and reports. They needed to be taught databases and the theory behind the software. Again, a programming language or advanced tools was added to develop graphical users interface. The limit was quickly reached, and a “proper” programming language was adopted to connect to the database. Nowadays, statistical programming languages connect to these databases and analyse the data.
Not all Swiss Army knife effect can lead to some good. There is also a double-edge. Software are adopted by users and try to use it for tasks the software creator never thought of. The next steps could lead the creators to add the tools required by their users. Their popularity grows and more people adopts the new software for additional functionalities. But the Swiss Army knife effect can also limit transform the additional to fit within the case of the knife. For example, no all the screw drivers need to fit in a pocket. To fix airplanes, we need much better tools. Even, if accidentally MIR was entered with the help of knife made in Delemont (CH).
Let’s thing more like Lego
The world-wide-web is also a good example of such software. Tim Berners-Lee developed a distributed software based on client-server architecture. 30-years later this software has become a major software platform that revolutionised how we live, shop and work. The added tools from payments, to blog and video call are part of whole structure. The latter is made of standard or smaller pieces that can be interchanged as the technologies improve. This distribute system would have not have survived, if it had not adapted and grown through the years.
Our office software now connect to the cloud. Some large data centres can hold our documents to allow us to share and access our files through a multitude of devices. It is a useful improvement as our labour is not entirely lost, if some hardware malfunctions. The cloud now holds our most intimate secrets; our appointment, to do list, health data. For that reason, Tim Berners-Lee has now found the need to explore how his invention could stop being used for lowering the concept of privacy. Inrupt aims to address to bring data governance to us.
Have we seen that before …
The Cloud has led to a centralisation of our data storage in remote environment. Until recently, the data centres keeping our data and providing computing power were kept secrets. Before personal computers became popular, we all relied on data frames and mini computers to store, access and manipulate our data. Once we networked in local area network our PCs, the rise of the Internet and World Wide Web led to moving again to centralising our data. Cloud technologies became our life line. Why buying an office suite, when you can use one online? Why not moving our business facilities to the cloud, our employees can work remotely. The Cloud can provide tools to connect to our clients too. Why not connecting our mobile signals to indicate the traffic?
Cloud providers tend to box storage, routing, domain name services, email provision, software on demand and other services. Working with one provider may tight the users one type of Swiss Army knife framework. Jargon, tools and business need to adapt to the provision. Moving or transferring can be quite challenging and costly too. It is a bit like a case where lego structure cannot move from one model to another.
Cloud technologies have also moved from their model of bringing hardware and software remotely to some advanced statistical tools. Some machine learning has started to be added. It is working to identify patterns in images or identifying customers pattern of consumption. Do the users fully understanding the complexity of the tools they are using and their potential?
Google has become aware of data privacy. It appears to be actively working to distribute advanced statistical methodologies and machine learning algorithms. Some horizontal and vertical models are being experimented by the research community. It is feasible this model may work for a few sites learning in a federated system. What about if we have many systems federated? The number of connections can only grow exponentially and can affect the computationability negatively.
Medical Cloud technologies has started to be adopted too. These systems appears to have all the security to prevent cyber attacks and availability. What about legislation related to data governance? What about if data centres become overwhelmed due to high demand. It happened in Edinburgh when the Microsoft Data centre could not cope with all the Scottish school using Microsoft system for their teaching. The evolution of software may have become large platform through integration, but it has added some hard constraint too.
To conclude
All these software have evolved in architectures and platforms. Some more graciously than others. Communities have been created, with their belief that perhaps everything should use their own software, programming languages, or hardware. Some guerrillas movement may have arise, and the whole picture may have been lost. Instead of building some large and cumbersome platforms, we may need smaller one that can connect with a variety of technologies.
Computer science and scientists needs to be listened more, otherwise, technologies may be reaching their limits quicker. All of us have to remember a little knowledge is a dangerous thing. We have to find a way to create some software that can grow for specific purposes and communicate them. Our mosquitos have evolved. They have adapted their abilities to such blood from their victims. They have not adapted to pollinate flowers. It is something to remember when we design and evolve our software.
If you are wondering Victorinox may have grown outside its box. You could buy fashion, perfume and other goodies in their name. I will let you ponder whether such dilution is a good thing or not. Lego instead used multi media platforms to reach new generations. Lego remains mainly some standard bricks to build big structure.