Every single day, software becomes more complex. That being said, bugs are still prevalent in systems that people expect to work “all the time.” When you look at the Apollo 11 moon shot, you will soon see that this was done with over 145,000 lines of code and it also contained less tech than your average printer. In this day and age, MS Windows contains more than 50 million lines, full of coding.
A Boeing 787 is able to run on 7 million lines of code and the infrastructure for Google is said to run on 2 billion lines of code. It truly does take a full army of programmers to maintain systems like this, but it is becoming more difficult to test every single permutation of what users and machines may do.
Millions of lines of code cannot be written overnight, and it is not possible for them to be re-written for every single new release of a product or a system. User intervention is also sometimes required to keep systems running as they should, such as clearing the cache. Find out more about that by clicking on this link.
Will Software Issues Become too Complex to Fix?
Computer researchers believe that part of the complexity that comes with software in this day and age, stems from the fact that programmers are often somewhat disconnected from the issue that they are trying to fix. A lot of the code used in this day and age is a mixture of letters and symbols. Even though it is easier to write and understand when compared to assembly language or even FORTRAN, it forces the programmer to think in terms of the output and module interface, and not in terms of the system that it is being made for. That model, is largely how code is developed in the first place.
Machine learning or even AI may end up being the downfall here. Machine learning is replacing the model of coding for every input and output. It is truly a gamechanger and a lot of this comes down to the fact that programmers are trying to develop learning algorithms as well as knowledge that they have gained from experience. When you look at linear coding, you will see that humans are trying to program for the situations that may need to be handled. When it comes to machine learning, the algorithm is training the machine to deal with situations by forcing them to encounter as many as possible.
This is changing the rapid advancements in certain industries, such as healthcare or even self-driving cars. It is also present in Facebook, when the algorithm decides which posts to show you and at what time. So what is the issue here? The issue is that machine learning is introducing much more complex issues and neural networks are many layers deep. The algorithm developers didn’t know how they end up at a certain outcome. It can be a black box.
Programmers are also trying to insert some degree of visualization into the neural algorithms so that they can understand how the machine learns. It’s not a far stretch from trying to learn how humans come to the conclusion about certain decisions. Sometimes the results can be very surprising. In a world that tends to lean more on things such as machine learning, programmers will often have less control over the machine. They will need to be more like a trainer, teaching the algorithm like a child about the environment that they are working in and the behaviors that are in it.
The Inability to Fix Problems
Software is slowly starting to take over the world and now things are becoming dependent on code. The world used to automate things through electronic and mechanical solutions. These would be physical things that we could see and operate. If you go back 30 years, it would not be uncommon to see simple things that could go wrong as the result of technology.
If you had a car and it stopped working then you may need to replace the alternator, or it may be a loose spark plug wire. Some cars in this day and age shut down the power train based on a system failing, but you would have no idea what went wrong here. This just goes to show that tech cannot always fix problems, and that although it is becoming more advanced by the day, human intervention is always required and that this may increase over time.