|
|
|
|
|
by nonrandomstring
822 days ago
|
|
The fundamental mistake of software engineering here is not when the
"scooter" updates, but that it updates at all. Not everything that uses electricity requires an embedded computer
connected to the internet. We could ask the question as: Give me a list of good reasons
why a scooter should be connected to the internet? We might get answers like: The built in map or GPS needs updating
The pricing list for hire needs changing
The battery monitoring software has changed
Every one of these reasons, and many more, have nothing to do with the
operation of the device qua scooter. Everything it did yesterday it
could do equally well today.The problem is modularity, specifically the poor coupling and cohesion
of subsystems within the design. Everything in our list relates to something
other than the function as a scooter; like navigation, payments, telemetry. In a properly designed system these have to be seen as essentially separate
systems with diverged functional requirements. Each could operate and update
in its own way if necessary. The default behaviour of the 'scooter' system
should be to keep operating as a scooter, regardless. |
|