Are software systems complex or rather just complicated? And does it matter? https://alexdimiceli.medium.com/complex-or-complicated-41b2937ed01b https://www.mflbisonranch.com/copy-of-brittle-vs-non-brittle-envihttps://en.wikipedia.org/wiki/Cray-1 https://www.alphagomovie.com/gallery https://www.zdnet.com/article/cloud-computing-will-virtually-replace-traditional-data-centers-within-three- years/ https://hackernoon.com/complex-adaptive-systems-and-the-future-of-app-development-2bb0288f05e0 Jan Žižka, M.Sc. Technical lead at Nokia DMTS, Nokia Bell Labs Agenda ● Introduce Jan to Lasaris ● Software systems ● Definitions of complex and complicated ● What is the difference and does it matter? ● Why to research complex software systems https://dailytravelpill.com/transfagarasan-highway-romania/ Jan Žižka ● Born 1976, programming since 1989 ● M.Sc. From Aalto university in Finland, Automation technology and robotics ● Researcher 2000-2005 in Workpartner project ● Working at Nokia since 1999 on mobile networks ● Distinguished Member of Technical Staff at Nokia Bell Labs ● HW, assembly, C, C++, Python, Go, (Rust), Linux, Cloud ● Married with 3 kids ● Urban skating, pole vaulting https://www.researchgate.net/publication/249914833_Combined_Motion_Control_of_the_Platform_and_the_Manipulator_of_WorkPartner_Robot ● OS and cloud technology development, tools and SW development practices ● FOSS in Cloud products ● Organizer of hackathons and internal SWDev conferences ● Supervised 12 diploma thesis ● Debugging tricky system problems ● Member of architecture and application steering groups ● Directly leading team of 6 very experienced developers ● Still coding on occasions :-) ● Mentoring (coding, unit testing, TDD, CI/CD, SCM) ● PoCs and cooperation with Webscalers (Google, Amazon, Microsoft, IBM, RedHat) ● Some small upstream contributions (binutils and gcc port for DSP56800) ● DevConf.cz 2019 talk on OS maintenance automation Jan Žižka https://www.redhat.com/en/topics/linux https://img-cloud.megaknihy.cz/5153481-original/a672b5a1384d6818d122311627864185/c-programming- language.jpg https://commons.wikimedia.org/wiki/File:Kubernetes_logo_without_workmark.svg https://commons.wikimedia.org/wiki/File:Jenkins_logo.svg Mobile Networks Software systems https://www.slideshare.net/AhmedNabieh/introduction-to-nokia-rnc https://akavinet.com/product_single/product/93/homepage https://www.nokia.com/networks/data-center/airframe-data-center/ https://www.ict-nn.com/nokia-and-google-cloud-partner-to-develop-new-cloud-based-5g-radio-solutions/ https://www.nokia.com/blog/tap-into-the-next-big-thing-with-cloud-ran/ https://www.cnews.cz/nokia-na-5g-siti-dosahla-rekordni-rychlosti-47-gb-s/ https://onestore.nokia.com/asset/213050?_ga=2.226323226.1064461734.1677924509-2112836381.1631172290 Complex or complicated? ● What is a complex system? ● What is complicated system? https://drawingchange.com/project/simple-complicated-and-complex-decision-making-new-visual/ Definition of complex system ● Not universally agreed [1] ● Field specific ● “layman”'s definition – complicated = difficult to understand but with time and effort, ultimately knowable, reproducible with high degree of certainty – complex = many components which may interact with each other, self-organize and evolve ● Thurner2018 [2] – Complex systems are co-evolving multilayer networks https://bdataanalytics.biomedcentral.com/articles/10.1186/s41044-020-00046-0 https://www.semanticscholar.org/paper/Using-Relative-Complexity-Measurement-Which-from-to-Meng-Lu/ba93dbf24173c05b50c8d78ceeea238d8497b78b “A Whole is Greater Than the Sum of Its Parts” (maybe) Aristotle Complicated software systems in practice ● Non-uniform ● Low on abstractions ● Hard to change Aspects we can and want to improve https://www.econlib.org/its-complicated-grasping-the-syllogism/ Complex software systems in practice? ● Self-organized ● Evolving ● Interacting ● Redundant ● Out of equilibrium Software ● Code Complexity metrics – SLOC – Cyclomatic complexity, Halstead metrics – Code shape (nesting) – Coupling and cohesion ● Development complexity ● Network complexity ● Environment complexity ● Data complexity https://www.divante.com/blog/10-companies-that-implemented-the-microservice-architecture-and-paved-the-way-for-others https://www.youtube.com/watch?v=5iFnzr73XXk https://unix.stackexchange.com/questions/223746/why-is-the-linux-kernel-15-million-lines-of-code https://www.alphagomovie.com/ SCOPUS Term Computer Science All complex complicated complex complicated 535,819 70,590 4,660,459 509,299 “ system” 26,399 1,065 82,942 4,164 “ software” 2,852 106 3,853 210 “ software system” 1,299 16 1,597 30 6. 3. 2023 SCOPUS covered 87M+ documents SCOPUS Term Computer Science All complex complicated complex complicated 7,352 (526) 33,880 (2,542) “ system” 867 (15) 2,392 (43) “ software” 86 - 111 “ software system” 52 - 60 - 6. 3. 2023 SCOPUS covered 87M+ documents AND evolving OR self-organization Move #37 https://www.youtube.com/watch?v=WXuK6gekU1Y Starts at 49:22 Why to research complex software systems? ● To find underlying principles ● To learn from complex system emergent behaviors ● To find different forms of complex software systems https://www.nature.com/articles/s41586-021-03819-2 Complex or Complicated? Does it matter? ● Yes it does ● Complicated can be simplified ● From complex systems we can learn ● Adjectives are necessary ● Underlying principle is possible ● Forms of complex software systems to be explored ● Unique position of software https://www.azquotes.com/quote/108954 Current complex software systems are still mostly static creations, but ... https://www.reddit.com/r/ThingsCutInHalfPorn/comments/6gdoe2/ant_colony_4150x3111/ https://www.nobleword.co.uk/what-can-ants-teach-us-about-business/ https://akavinet.com/product_single/product/93/homepage … software is unique as it can be changed and evolved with virtually zero energy.