Over the last six decades, the number of CPUs in operation on planet Earth has been growing systematically at an astonishing rate of about ten times per decade. The continuous miniaturization process implemented by electronic engineers responsible for their design and manufacturing, has already sold somewhere near to ten billion of this devices to all of mankind.

Standard computers of any type, as well as smartphones, are operated by humans, generally using their hands. Hence, even considering that many people own more than one computer or smartphone, CPU manufacturers have known for long that they would soon outsell the number of hands available on our planet.

That is just one of some crucial reasons why the Internet of Things has been proposed, got funds for research, and, although still in its infancy, continues to push up sales of CPUs: by putting CPUs into machines and devices that did not have them before, like cars, lamps, fridges, among many more, the potential market for CPUs has been expanded by at least two orders of magnitude.

Internet of Things’ implementation also depends on widespread communications: if these CPUs won’t be operated by human hands, they will have to communicate with other CPUS over some kind of network protocol. Thus, the wide availability of Internet access is another crucial reason for Internet of Things adoption.

As experienced software developers know, every new ‘wave’ of CPUs (see the picture) introduced by hardware manufacturers created new opportunities for application software. At the same time, average software production techniques have systematically lagged behind hardware development’s pace: software backlog management tools wouldn’t exist otherwise.

As this “CPU invasion” will further increase demand for software, a special environment has been created where (as already stated before) “software is eating the world” (supposing it can be developed in time and with the necessary quality and features).

New ideas for new pieces of software are behind the creation of a lot of startup companies all over the world.

It is true, however, that the ever more challenging hardware and communications scenario brings new problems into software: denial of service attacks coming from or aiming at Internet of Things devices have already been seen is just one among many other requirements the new software will have to meet.

We will go through this requirements one by one in future articles.