This book is pre-release and is an evolving work-in-progress. It is published here for the purposes of gaining feedback and providing early value to those who have an interesting resource oriented computing.
Please send any comments or feedback to: email@example.com
© 2018 Tony Butterfield.
All rights reserved.
The application of engineering principles to software seems to be a rare thing. Software engineering as a term has been around for decades but is exclusively reserved for the engineering of the process around build the software rather than engineering of the artefact itself. This proclivity is unique to software. If civil engineers tasked with building a bridge didn't concern themselves with working out the stresses when designing the structure they wouldn't know just how many vehicles the bridge could support, or at what wind speed the bridge should be closed for safety.
This section discusses engineer in the software artefact. This includes understanding the key computational resources we have such as memory, disk space, network bandwidth, network latency, characteristics of external dependent systems, CPU speed and number of processor cores. These are then balanced against required system performance and likely and worst case workload distributions. In addition we will look at data science, including looking at sample rates, good-enough answers, and eventual consistency.