#LyX 1.6.5 created this file. For more info see http://www.lyx.org/ \lyxformat 345 \begin_document \begin_header \textclass beamer \begin_preamble \usetheme{Warsaw} % oder ... \setbeamercovered{transparent} % oder auch nicht \end_preamble \use_default_options false \language english \inputencoding auto \font_roman times \font_sans default \font_typewriter default \font_default_family default \font_sc false \font_osf false \font_sf_scale 100 \font_tt_scale 100 \graphics default \paperfontsize default \spacing single \use_hyperref false \papersize default \use_geometry true \use_amsmath 2 \use_esint 0 \cite_engine basic \use_bibtopic false \paperorientation portrait \secnumdepth 2 \tocdepth 2 \paragraph_separation indent \defskip medskip \quotes_language english \papercolumns 1 \papersides 1 \paperpagestyle default \tracking_changes false \output_changes false \author "" \author "" \end_header \begin_body \begin_layout Title Demands That Stress Patterns \end_layout \begin_layout Author Tobias \begin_inset space ~ \end_inset Koch and Sven \begin_inset space ~ \end_inset Eisenhauer \end_layout \begin_layout Institute Fachbereich Informatik \begin_inset Newline newline \end_inset Hochschule Darmstadt \end_layout \begin_layout Date Seminar Systems Thinking, WS2009/2010 \end_layout \begin_layout Standard \begin_inset ERT status collapsed \begin_layout Plain Layout % \backslash pgfdeclareimage[height=0.5cm]{institution-logo}{hdalogo.png} \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout % \backslash logo{ \backslash pgfuseimage{institution-logo}} \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout % \backslash beamerdefaultoverlayspecification{<+->} \end_layout \end_inset \end_layout \begin_layout BeginFrame Contents \end_layout \begin_layout Standard \begin_inset CommandInset toc LatexCommand tableofcontents \end_inset \end_layout \begin_layout Section Why It's Always Hard To Steer \end_layout \begin_layout Subsection Terminology \end_layout \begin_layout BeginFrame Terminology \end_layout \begin_layout Itemize Intervention Dynamic: \end_layout \begin_deeper \begin_layout Standard \size small Largely affected by human decisions on how to regulate a process, can serve as a means to control or mitigate the effects of Natural Dynamics. \end_layout \end_deeper \begin_layout Itemize Natural Dynamic: \end_layout \begin_deeper \begin_layout Standard \size small Beyond direct human control, human decisions are largely imposed by the circumstances and cannot alter the \shape italic form \shape default of the dynamic. \end_layout \end_deeper \begin_layout Subsection Square Law of Computation \end_layout \begin_layout BeginFrame Square Law of Computation \end_layout \begin_layout Definition \begin_inset Quotes eld \end_inset Unless some simplification can be made, the amount of computation to solve a set of equations increases at least as fast as the square of the number of equations. \begin_inset Quotes erd \end_inset \end_layout \begin_layout Pause \end_layout \begin_layout Corollary The \begin_inset Quotes eld \end_inset computer \begin_inset Quotes erd \end_inset needed to control a system has to become 4 times more mighty as the system size doubles. \end_layout \begin_layout Pause \end_layout \begin_layout Fact The Square Law of Computation is a Natural Dynamic. \end_layout \begin_layout BeginFrame Square Law of Computation \end_layout \begin_layout Standard \begin_inset Graphics filename dynamic-system.png width 80page% \end_inset \end_layout \begin_layout BeginFrame Example \end_layout \begin_layout Itemize Even trained chicken can play perfect tic-tac-toe. \end_layout \begin_deeper \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash Rightarrow$ \end_layout \end_inset The complete game tree can be computed in fractions of a second. \end_layout \end_deeper \begin_layout Itemize Nobody can play perfect chess. \end_layout \begin_deeper \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash Rightarrow$ \end_layout \end_inset Although chess is a perfect game with all information given and a fixed board size, not even the largest super-computer can compute the complete game tree in finite time. \end_layout \end_deeper \begin_layout BeginFrame Game of Control \end_layout \begin_layout Itemize Management is similar to a \begin_inset Quotes eld \end_inset game of control \begin_inset Quotes erd \end_inset . \end_layout \begin_layout Itemize Like chess, management is a very complex game. \end_layout \begin_layout Itemize Unlike chess, management is not a perfect game: \end_layout \begin_deeper \begin_layout Itemize Not all information is available. \end_layout \begin_layout Itemize Board size is not \begin_inset Quotes eld \end_inset fixed \begin_inset Quotes erd \end_inset . \end_layout \end_deeper \begin_layout Subsection Size/Complexity Dynamic \end_layout \begin_layout BeginFrame Size/Complexity Dynamic \end_layout \begin_layout Fact \end_layout \begin_deeper \begin_layout Itemize Human brain capacity is limited. \end_layout \begin_layout Itemize Complexity of a program grows by the square of its size. \end_layout \begin_layout Itemize Augmented ambitions after success lead to more complex products. \end_layout \end_deeper \begin_layout Corollary \end_layout \begin_deeper \begin_layout Itemize Sooner or later a program will become too big to be handled in its entirety by a human brain. \end_layout \begin_layout Itemize Development of complex (software) products need to be \begin_inset Quotes eld \end_inset simplified \begin_inset Quotes erd \end_inset by methological (software) engineering. \end_layout \end_deeper \begin_layout EndFrame \end_layout \begin_layout BeginFrame Size/Complexity Dynamic \end_layout \begin_layout Standard \begin_inset Graphics filename complexity-engineering.png width 80page% \end_inset \end_layout \begin_layout BeginFrame Variations \end_layout \begin_layout Itemize Fault/Location Dynamic: \end_layout \begin_deeper \begin_layout Standard As the system grows, the number of errors \shape italic and \shape default the number of places to \shape italic look \shape default for errors increase, which makes bug-squashing a non-linear effort. \end_layout \end_deeper \begin_layout Pause \end_layout \begin_layout Itemize Human Interaction Dynamic: \end_layout \begin_deeper \begin_layout Standard As the number of people (staff) increases, also the interactions per person increase and the number of total interactions (in a team) grow immensely. \end_layout \end_deeper \begin_layout Section What Helps To Stay In Control \end_layout \begin_layout Subsection Methods \end_layout \begin_layout BeginFrame Fundamental Problem \end_layout \begin_layout Standard \shape italic Ambitious requirements can easily outstrip even the brightest developer's mental capacity. \end_layout \begin_layout BeginFrame The Right Tool for the Job \end_layout \begin_layout Itemize To battle the Natural Dynamics of large projects, the right methods of human intervention have to be applied. \end_layout \begin_layout Itemize The right choice of technologies, working styles, methodologies, ... may depend on the nature and complexity of the problem at hand. \end_layout \begin_layout BeginFrame Compositing Engineering Methods \end_layout \begin_layout Itemize Because different methods may excel at different problems or problem sizes some organizations try to combine methods. \end_layout \begin_layout Itemize Pattern 3 (Steering) managers will readily use a toolkit of engineering methods. \end_layout \begin_layout Itemize Managers in a \begin_inset Quotes eld \end_inset blaming environment \begin_inset Quotes erd \end_inset will rather stick to one \begin_inset Quotes eld \end_inset standard \begin_inset Quotes erd \end_inset way of doing things, so they cannot be blamed for making the wrong choice. \end_layout \begin_layout Subsection Challenges \end_layout \begin_layout BeginFrame Taking Risk into Consideration \end_layout \begin_layout Itemize Different methods will have different risk levels, meaning the probability of success will differ depending on problem size. \end_layout \begin_layout Itemize Important: The risk rate doesn't say anything about the cost. \end_layout \begin_layout Itemize Human beings learn: the success rate of a method will increase, when applied multiple times. \end_layout \begin_layout BeginFrame The Threat of Change \end_layout \begin_layout Itemize Managers may choose not to implement new methodologies in order to not jeopardiz e their careers. \end_layout \begin_layout Itemize Solutions: \end_layout \begin_deeper \begin_layout Itemize Move decisions to a higher management level (evasive action). \end_layout \begin_layout Itemize Run a pilot project at minimal size. \end_layout \begin_layout Itemize Try to reduce the criticality of the very first project. \end_layout \end_deeper \begin_layout Subsection Helpful Interactions \end_layout \begin_layout BeginFrame Helpful Interactions \end_layout \begin_layout Standard \align center \series bold 1. Being Systematic \end_layout \begin_layout Itemize Tackle variability by bringing all the dynamics that are part of the engineering process under control one by one. \end_layout \begin_layout Pause \end_layout \begin_layout Standard \align center \series bold 2. Being Tolerant \end_layout \begin_layout Itemize Realize that different people develop \emph on \shape italic \emph default different models \shape default to measure and control a situation, leading to potentially very different results. \end_layout \begin_deeper \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash Rightarrow$ \end_layout \end_inset \begin_inset Quotes eld \end_inset No matter how it looks, everybody is trying to be helpful. \begin_inset Quotes erd \end_inset \end_layout \end_deeper \begin_layout BeginFrame Helpful Interactions \end_layout \begin_layout Standard \align center \series bold 3. Being Constructive \end_layout \begin_layout Itemize It's hard to erase existing ineffective behavioral patterns. \end_layout \begin_deeper \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash Rightarrow$ \end_layout \end_inset Try not to erase them, but instead add new patterns that are more effective, ultimately overlaying the original patterns. \end_layout \end_deeper \begin_layout Pause \end_layout \begin_layout Standard \align center \series bold 4. Being Open-Minded \end_layout \begin_layout Itemize It's hard to change someone's perception of reality. \end_layout \begin_deeper \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash Rightarrow$ \end_layout \end_inset Propagate adoption of new models of thinking to open people's eyes. \end_layout \end_deeper \begin_layout Section Responses To Customer Demands \end_layout \begin_layout BeginFrame Outside Influence \end_layout \begin_layout Fact Outside influence contributes to the instability of a software development process \end_layout \begin_layout BeginFrame More Customers Increase Development Load \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout {} \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Greater number of requirements ==> more conflicting requirements \end_layout \begin_layout Itemize Greater system complexity \end_layout \begin_layout Itemize More labor to deal with conlicting requirements \end_layout \begin_layout Itemize Labor to deal with customers \end_layout \end_deeper \begin_layout Corollary Nonlinear Size/Complexity Dynamic that can lead to the collpase of a cultural pattern \end_layout \begin_layout BeginFrame Two-Way-Relationship \end_layout \begin_layout FrameSubtitle Between Software Organization and Customer \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset From Software Organization To Customer \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Software \end_layout \end_deeper \begin_layout Separator \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset From Customer To Software Organization \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Resources \end_layout \begin_layout Itemize Requirements \end_layout \end_deeper \begin_layout Separator \end_layout \begin_layout Corollary A controller is needed to control flow of requirements, resources, outputs and randomness to Software Organization \end_layout \begin_layout BeginFrame User != Customer \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Difference between User and Customer \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize User is everyone affected by the system \end_layout \begin_layout Itemize Customer defines quality \end_layout \end_deeper \begin_layout Separator \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Effective Customers \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Interact with Software Development \end_layout \begin_layout Itemize Marketing function \end_layout \end_deeper \begin_layout BeginFrame Marketing \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Functions of Marketing \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Reduces number of effective customers by standing between Software Development and customers. \end_layout \begin_layout Itemize It filters inputs and outputs. \end_layout \end_deeper \begin_layout AlertBlock \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Can be dangerous \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Near the core of the Software Development system. \end_layout \begin_layout Itemize Uncontroled input \end_layout \end_deeper \begin_layout BeginFrame Interruptions of Work \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset How much cost interruptions? \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize An increased number of customer also increases the number of interruptions of work. \end_layout \begin_layout Itemize E-factor=Uninterrupted Hours / Body-present Hours \end_layout \begin_layout Itemize Total time = Interruption time + reimmersion time (phone call: 5+15 = 20) \end_layout \end_deeper \begin_layout Separator \end_layout \begin_layout Block \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Meetings are even worse \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize More customers mean more meetings with more people. \end_layout \begin_layout Itemize More people increase number of interruptions. \end_layout \begin_layout Itemize Number of interruptions increase wasted time (depends on avg. length of interruption). \end_layout \end_deeper \begin_layout BeginFrame Hardware Configurations \end_layout \begin_layout Itemize More customers lead to more hardware configurations in production. \end_layout \begin_layout Itemize Number grows exponentially, so not every possible configuration can be tested, tests become more complex. \end_layout \begin_layout Itemize This leads to less coverage and more faults. \end_layout \begin_layout Itemize Result in more time needed for fault repairing. \end_layout \begin_layout BeginFrame Releases \end_layout \begin_layout Itemize More customer result in more releases and versions used by customers \end_layout \begin_layout Itemize Leads to more labor in maintaining the hole software product. \end_layout \begin_layout Itemize More reported faults balance the management tendendcy to increase releases cycles. So two releases per year are common to many software organizations. \end_layout \begin_layout BeginFrame Conclusion \end_layout \begin_layout Block \begin_inset ERT status open \begin_layout Plain Layout <1-> \end_layout \end_inset \begin_inset ERT status open \begin_layout Plain Layout { \end_layout \end_inset Essence \begin_inset ERT status open \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_deeper \begin_layout Itemize Customers influence the demand of a certain cultural pattern in a software organization. \end_layout \begin_layout Itemize Customers influence the size of Software projects. \end_layout \begin_layout Itemize Management cannot handle projects beyond a specific size perfectly. \end_layout \begin_layout Itemize Reducing number of effective customers is a common strategy of software organizations to reduce disturbances on the software organization. \end_layout \end_deeper \begin_layout EndFrame \end_layout \end_body \end_document