#LyX 1.6.4 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 open \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 AtBeginSubsection[]{ \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash frame{ \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash frametitle{Content} \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout \backslash tableofcontents[currentsection,currentsubsection] \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout } \end_layout \begin_layout Plain Layout \end_layout \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_layout Standard \begin_inset ERT status collapsed \begin_layout Plain Layout % \backslash beamerdefaultoverlayspecification{<+->} \end_layout \end_inset \end_layout \begin_layout BeginFrame Content \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 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_deeper \begin_layout Pause \end_layout \end_deeper \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 BeginFrame Example \end_layout \begin_layout Itemize Even trained chicken can play perfect tic-tac-toe. \end_layout \begin_layout Itemize Nobody can play perfect chess. \end_layout \begin_layout Itemize Although chess is a perfect game with all information given and a fixed board size it is too big for every existing computer, human or artifical. \end_layout \begin_layout BeginFrame What makes management difficult \end_layout \begin_layout Itemize Management is similar to controlling a game: Get from A to B. \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Management is much more complex: Not a perfect game. \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Not all information is available. \end_layout \begin_layout Pause \end_layout \begin_layout Itemize Board size is not \begin_inset Quotes eld \end_inset fixed \begin_inset Quotes erd \end_inset . \end_layout \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 by a human brain. \end_layout \begin_layout Itemize Development of more complex 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 Other forms of this dynamic \end_layout \begin_layout Itemize Fault/Location Dynamic \end_layout \begin_layout Itemize People/Interaction Dynamic \end_layout \begin_layout EndFrame \end_layout \begin_layout Section What Helps To Stay In Control \end_layout \begin_layout BeginFrame Fundamental Problem \end_layout \begin_layout Fact 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 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 Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash rightarrow$ \end_layout \end_inset Move decisions to a higher management level. \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash rightarrow$ \end_layout \end_inset Run a pilot project at minimal size. \end_layout \begin_layout Standard \begin_inset ERT status open \begin_layout Plain Layout $ \backslash rightarrow$ \end_layout \end_inset Try to reduce the criticality of the very first project. \end_layout \end_deeper \begin_layout BeginFrame Helpful Interactions \end_layout \begin_layout Enumerate Tackle variability by bringing all the dynamics that are part of the engineering process under control one by one (using Intervention Dynamics). \end_layout \begin_deeper \begin_layout Standard \align center \series bold \size large The Helpful Model \end_layout \end_deeper \begin_layout Enumerate 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 More Helpful Interactions \end_layout \begin_layout Enumerate 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 Enumerate Variation: 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 EndFrame \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 EndFrame \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 EndFrame \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 EndFrame \end_layout \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 EndFrame \end_layout \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 EndFrame \end_layout \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 EndFrame \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 tenendcy to increase releases cycles. So two releases per year are common to many software organizations. \end_layout \begin_layout EndFrame \end_layout \begin_layout Section* Summary \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 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 Separator \end_layout \begin_layout Block \begin_inset ERT status open \begin_layout Plain Layout <2-> \end_layout \end_inset \begin_inset ERT status collapsed \begin_layout Plain Layout { \end_layout \end_inset Thank you... \begin_inset ERT status collapsed \begin_layout Plain Layout } \end_layout \end_inset \end_layout \begin_layout Block ... for your attention! \end_layout \begin_layout EndFrame \end_layout \begin_layout EndFrame \end_layout \end_body \end_document