What this Book is not About

This book is not about manufacturing programming in the sense of industrial software, which typically defines the structure of a plant with all its silos, pipes, valves, actuators, etc., and controls them in real time to produce a product. The precision of manufacturing processes requires that every millisecond be considered, for which all digital components must operate in real time, including the operating system, the database, and all elements responsible for collecting data from sensors and distributing commands to actuators. Compared to manufacturing processes, business processes take forever.

This book is not about hardware programming, the field represented by programmable logic controller (PLC) programming, which involves writing binary values ​​into PLC registers from which connected electronics send signals to hardware actuators. Generally speaking, PLC programming is a subset of industrial software that is specific to one type of equipment, be it manufacturing equipment or consumer equipment, since PLCs are widely used everywhere these days. For example, all consumer electronics have a PLC inside to control the functionality of the equipment.

What this Book is About

This book is about business process programming.

The essence of any business is a way of providing services. A successful business is a business that provides services that are in demand by consumers. A business fails and dies if the services it provides are not in demand by consumers. Every business wants to be successful, which is generally difficult to achieve, and in the modern era, when the service market is very dynamic, it is especially difficult. Business must be very dynamic to constantly respond to changing market demands.

Since a software product is a digital reflection of a physical business, it must be designed to respond quickly to changing market demands. A modern software product cannot be designed and implemented as a monolithic solution that supports only the current way of doing business, even if it is currently successful, without the ability to adapt to changing market realities. Failure to promptly modify a software product to meet new market realities can lead to business bankruptcy.

Instead of being designed as a monolith, a modern software product should be assembled from small puzzles, like Lego, where each puzzle is responsible for a tiny part of the functionality. Then at any time it will be relatively easy to reassemble the entire product from these puzzles in a different way in accordance with changing market conditions.

So this book is about programming software products that are agile by nature to support agile business processes.

Table of Content