THANK YOU FOR SUBSCRIBING
The Needed Change on the Software Bot Industry
Guillermo Amodeo, Head of Software Engineering, Kolokium Blockhain Technologies SL
Today, when you try to post something on a website, let’s say Facebook, a bot analyses it and determines if it’s suitable or not for publication. The bot does this by checking among other things that your post doesn’t contain racial hate, terrorism support or it’s a commercial post that should not be published by an individual, but by a fee-paying company.
Another bot like it or the same keeps track of the content of your posts and makes sure that the advertising that surrounds your posts and the posts of other people match your interest–i.e. the content of the posts. This contextualised advertising is designed so it would be more ‘bearable’ for you to have around, be accepted and even have a chance to get you to buy one of the advertised products.
As you can see–or actually as you can’t see-there are decisions being made behind the scenes about your habits and preferences merely based on what you write or read. And these ones are the harmless ones, as the worse things than those can bring to you is an awkward advertising about your vanity: hair if you are bold, weight loss if you are fat and other stuff like it. And if you happen not to be bold or fat, all they will cause is a laugh or a disappointed grunt.
But there are also dangerous bots, like when you drive your car, where there is a bot reading the sensors on the wheels, checking that the air pressure is ok, that the ABS system works and that all the wheels are going at the speed they should be going when the car is moving at the speed that is being read by the speedometer system. Of course only if the car has one of the traditional electro-magnetic systems, which used to be a magnet and a cable attached to the drive shaft, but these are now starting to disappear in favour of electronic systems based on sensors, which are also controlled by bots.
Bots read the way a pilot manoeuver a plane checking that all the readings are correct and all parts work as they should be working.
The software bot industry needs to move away from agile and embrace knowledge management to make sure their bots do not put lives at risk
The problem is not that all these bots check things, but that, like the ones in Facebook, they make decisions on those readings and they act in consequence. Unfortunately, a failure on a sensor or in the algorithm that make the assumptions used to take a course of action are fatal, as we have learned in the cases of people killed by a car that kept accelerating in UK or in the now infamous Boeing 737 crashes.
Nowadays bots need to be of high standard quality, they cannot contain bugs or miscalculations; but the problem is that the current software development practices do not help to insure the quality of these bots. Especially as the current generation of programmers only know the agile practice, which nowadays have taken over all the other software practices, and unfortunately, agile is not suitable to insure the quality of the software written to implement the bots.
Agile favours working code over comprehensive documentation, you can read the code, people and interactions over processes and tools, you can talk to the people, customer collaboration over contract negotiation, you can show the customer what it really wants and more importantly, agile favours responding to change over following a plan.
This is a great thing for software products that change requirements and need a rapid response, but it’s totally wrong in the case of software bots, where the code needs to be extremely well documented, but not in what the code does as it can be guessed by reading code like agile says. Code needs to be documented on why it does things certain way and what are the assumptions made by it when taking a course of action.
Development of bots that take course of actions which could be fatal need to follow certain processes to insure their quality, and have tools that can be used to make sure these processes are being followed. The development of these bots needs to follow a plan and they require deep negotiation in order to make sure standards are developed and enforced by the authorities.
Basically we need to stop using agile in the development of these bots, not because agile is bad, but because its not suitable for developing bots.
For the development of these bots we need processes that make sure that they are able to detect failing sensors, and there are alternative solutions to malfunctioning equipment –i.e. the pilot/driver could disconnect bots and take full control of the vehicle-.
We need to have compulsory external auditing so bot code and documentation can be inspected, reviewed and approved by competent people able to detect problems and stop relying on the software companies that produce the bots to do code reviews and quality control. More importantly, expertise loss have grown to amazing levels, caused by both the aggressive campaigns of companies looking for talent and the now common layoffs that companies make when things are not going as well as they should.
This paradigm calls for better knowledge management practices to avoid the expertise departing with the people when they leave the company, which deeply affects the development of any product. Companies following agile are the more affected by this expertise loss, as they relay on people’s knowledge rather than on the documentation they could produce. Knowledge about bots have to be nurtured, documented, externally audited and spread among all the people in the company to minimize expertise loss. The software bot industry needs to move away from agile and embrace knowledge management to make sure their bots do not put lives at risk.