ULTRA-LARGE SCALE SYSTEMS
DOMAIN DRIVEN DESIGN, AMSTERDAM, NETHERLANDS
Governments, City Planners, Social System Designers, and even the military recognize the need to understand ultra-large scale complex systems, because that is the future of software/systems development. This talk will briefly discuss the definition of ULS and why they differ from systems with which we are familiar; then it will identify five critical challenges posed by complex systems — e.g. the need to integrate human beings as computational components — and suggest practical approaches for dealing with all five.
TECHNIQUES FOR COMPLEX DOMAINS, 2-DAY WORKSHOP, DOMAIN DRIVEN DESIGN, AMSTERDAM, NETHERLANDS
Fifty years of software engineering have taught us how to understand, model, and design 'ordinary' systems — even those that are large scale and highly complicated. The next fifty years will demand something quite different from the software/systems community: the design of ultra-large scale, complex adaptive systems. Examples of such systems would include the Web, a traffic management system for a city, computer-based system for employment (re)training, a unified medical information system, etc. Not to mention systems that might support solutions to critical global problems like climate change. This workshop will provide a practical approach for understanding, modeling, and designing complex systems for deployment in complex domains.
A brief overview of ultra-large scale
and complex adaptive systems
"Wicked Problems" and specific, critical, challenges posed by ultra-large scale complex systems.
Techniques for analyzing, modeling and understanding complex systems: Lessons from General Systems,
Simple tool for modeling complex systems, How to isolate targets for change without losing context and connection to the rest of the system.
Techniques for designing ‘solutions’ posed by complex systems and modifications to complex systems:
Identifying the behavior of individual elements and relationships participating in the complex system; i.e. what behavior do they contribute to the system and/or other elements within that system, Identifying ‘dependencies” and therefore ‘side-effects’ that can/will arise from introducing change, Isolating and initiating change.
Techniques for implementing your designs, including code: Programs and code that is as adaptable as your system (changeable as rapidly as your system changes), Revisiting the Object model for code.
Techniques for establishing development processes compatible with complex systems design
and managing those processes:
Team development and discrete developmental tasks, What to do when things blow up in your face, Managing the work — lessons from Extreme Programming,
Individual challenges and how you can be a better designer/developer.
PATTERNS OF HUMANITY
PURPLSOC, KREMS, AUSTRIA
Alexander, both with patterns and the principles in Nature of Order, was concerned with the built environment. The patterns community has extended his ideas to all kinds of domains (programming, pedagogy, change, leadership, etc.) and most forms of social activity. Iba has written patterns for use by human individuals (e.g. beauty patterns for teenage girls).
The PURPLSOC community is committed to exploring the use of patterns/principles to guide the development of enhancement of human society and human organizations. Facebook has announced its commitments to “strengthen existing communities by helping us come together online as well as offline, as well as enabling us to form completely new communities, transcending physical location”. Ultra-Large scale, complex adaptive, systems present the greatest challenges for software developers — largely because they inextricably involve human beings and human societies.
Curiously, little has been published about “patterns of people,” “patterns of culture,” or “patterns of societies”. This paper hopes to make a contribution in that area. It is grounded in anthropological research and seeks to enumerate several patterns that transcend individual cultures and societies, but simultaneously are adapted by each culture/society to fit its unique circumstances.
The paper consists of general discussion plus the presentation of five patterns: Reciprocity, God, Story, Divided Labor, and Stereotypes.
ESSENTIAL MICRO-SERVICE ARCHITECTURE
CEE-SECR, MOSCOW, RUSSIA
The excitement about the potential of micro-service architecture is growing with an increasing number of companies following the lead of Google, Spotify, and most notably Netflix if the effort to realize that potential.
The goal of this workshop is to provide attendees with and essential foundation knowledge of concepts and practices. Participants will have the opportunity to test their growing understanding via guided exercises. An optional fifth hour of the workshop will be dedicated to answering questions and exploring attendee supplied example problems / domains.
The workshop begins with a brief discussion of why MSA is of such potentially great value, an examination of benefits and challenges before presenting basic definitions and concepts.
The nature of a micro-service is examined and the first exercise focuses on identifying micro services and what they might look like implemented in code. We then turn to architecture I — aggregating micro-services into components that are loosely coupled and highly cohesive. The relationship between domain decomposition and modeling and micro-service components is addressed as is the structural nature of a component (services provided, knowledge required, and interface)
Components can be combined and inter-related only if they have additional capabilities such as being able to reflect on their nature, remain ‘run-time modifiable’, and handle event-driven interactions. This discussion will precede the second exercise.
Examination of applications and systems follows along with a discussion of how MSA enables radically different forms of architecture — great potential along with significant challenge.
The final section of the workshop will focus on process, teams, and developer skills along with supporting technologies.
DESIGN THINKING FOR SOFTWARE DEVELOPERS
CEE-SECR, MOSCOW, RUSSIA
The genius of Steve Jobs and the incredible success of Apple are attributed to «design.» Software developers talk about design all the time, seldom realizing that their understanding of design is quite different from that of Jobs and Apple.
This presentation will illustrate why a different kind of «design» and «design thinking» (ala Apple) is required if we are to meet contemporary challenges of software development.
We begin the presentation with an examination of systems — the familiar technical and deterministic artificial systems of computer and program — then the complex and ultra-large scale systems of the enterprise and global Web. We will look at how and why the latter generate «wicked problems» that are not amenable to «engineering» or «computational» thinking.
The majority of the presentation will focus on presenting 29 patterns of design thinking — exploring a small number of them in detail — derived from studying the work of traditional designers (architects, graphical designers, product designers, etc.) and companies like Apple where design thinking has proven to be of incalculable value.
Concrete application of the ideas being presented will be found throughout the presentation.
© Copyright. All Rights Reserved.