Many people argue that JK Rowling, the author of the ‘Harry Potter book series, intended for all seven novels to be released in one year (2011). If this is true, then surely she must have planned beforehand how to execute her plan?
Executing such an elaborate plot would require lots of resources which are not only expensive but could also mean that fewer writers can contribute to the series as it will take over development time.
Thus, we see many over-engineered products as examples of rescue efforts by developers who attempted to implement several ideas at once.
These multi-faceted attempts often produce bloated software that contains more bugs than simple refinements. It takes valuable design time away from bettering the application user experience to improve the code base.
You may think this topic has something to do with front-end engineering, but hear me out. There are hundreds of well-written articles and books about designing and building mobile apps. Plus, we have free and open-source tools like Express or Koa which save engineers time.
But what if your app requirements change during the early stages of development? What if they need to support things like password masks or Android’s safe deposit messaging feature?
In fact, most developed apps suffer from the same issue —over-
The Industrial Revolution
Technological innovations during the late 18th century brought about major changes in society. Precision mechanical engineering, powered by new technologies such as steam power, changed the way people worked. New materials such as iron helped make for stronger engines and less expensive labor since there was no need to rebuild muscles or bones which were very weak compared to metal.
These technological advances allowed for larger factories, to produce large volumes of goods using repetitive tasks. Human nature being what it is, however, this improved efficiency also led to overworking and underpaying workers and excessive supervision.
The more services one provided, the higher their pay was likely to be; that is why you will often see factory owners are better paid than hospital doctors. Factories ran around the clock so they could produce as much money as possible, and doctors who never saw an end to patients’ problems knew that sleep was going to be rare for them.
Furthermore, scientists have concluded that long work hours hinder productivity due to reduced mental acuity. This explains why professionals took longer breaks while laborers did not. It also explains why engineers at the top of their game can build bridges in their dreams but brain surgeons cannot.
Many companies hire engineers to work on new projects or patent inventions. But how often do they ask what would happen if something went wrong?
What happens when someone tries to use your product with no access to healthcare, which can cost them their life in a few hours? What if there was a disaster caused by the misuse of your device?
These are questions you should be asking yourself before implementing any mechanism into products.
Based on our experience, the answer is that things go wrong quite frequently. Look at some recent cases involving vehicle safety systems for example.
The emergency brake/stop system in modern vehicles acts as a fail-safe when applied properly, but it seems many drivers don’t know about applying the brakes in an urgent situation (to avoid crashing).
We have read numerous reports detailing scenarios where panicked motorists were unable to bring their vehicles to a complete halt because of overconfidence in the braking performance of their cars. This simply highlights the need for proper education surrounding the usage of the stop lamp and the importance of maintaining caution while attempting to come to a full stop.
How about the issue of human error is the cause of 99% of crashes, according to National Highway Transportation Safety Network? People make mistakes; we understand this. However, using common sense could prevent up to half of all accidents.
This illustrates why more attention needs to be paid to engineering designs and implementation. It appears that way but does it