Computing-Environment Alignment Aligning computing systems with their en

emphasized by the YAGNI mantra You Aren’t Going to Need It. This discourages a consideration of longer- term business strategy or a detailed analysis of the business context, which is typically more complex than it appears initially. The recent version of XP has begun to acknowledge the importance of wider issues by including the quarterly cycle practice, concerned with checking on “alignment with larger goals” and taking account of the “big picture” as progress is made. The essential problem is that there are few guidelines on the implementation of the customer role to suggest how interaction with developers should occur. In particular, it is unclear what models or system descriptions should be used to build a shared understanding of both the problem situation and the computing solution being proposed. Various authors have offered advice. Jepsen [10], for example, recommends spending a great deal of time and energy in investigating contrasting stakeholder viewpoints in complex situations to help in “understanding the business” [11]. Stephens and Rosenberg also highlight the value of spending time ‘up front’ with as many customer representatives as possible and exhorting developers to “get down into the trenches and find out the real problems that need to be solved” [12]. Van Deursen [13] similarly identifies benefit for the customer representative in having “systematic ways for diagnosing problem situations,” which again means analysing the environment adequately. Without this activity, an XP project can become too inwardly focused. The purpose of this paper is to propose a systematic way of analysing an environment in support of agile development. It starts by examining the concept of alignment between a computing system and its environment. This is followed by a brief summary of Soft Systems Methodology SSM [14], a general technique for analysing any situation considered problematic. The final sections suggest how the process and models of SSM might be linked to XP to better define the customer role, which also helps to improve the match between the computing system produced and the context in which it will be used. This is supported with the use of an example.

2. Computing-Environment Alignment

Jackson argues that when tackling new projects it is important to understand the problem domain adequately before focusing on the solution, because the requirements are effectively determined by this environment [15]. The objective of analysing a problem situation is to i understand the context in which there appears to be a need for the creation or modification a computing system; and ii define a basic course of action. For ongoing development, both the context and required action may be well established but it is still desirable to ensure that there have been no significant changes since the previous analysis was undertaken. Also, the analyst may be new to the project and require some time to appreciate the arguments in that analysis. Figure 1 shows a representation of an evolving computing system and its corresponding environment. The arrow between each system version and its environment implies that they are ‘aligned’ [16, 17]. That is, ideally, the computing system provides optimal support for the environment in which it is used and this alignment is maintained as the situation evolves. Analysis can either be i goal-oriented, developing a vision or target of what the computing system and its aligned environment could or should become, or ii problem-oriented, focusing on current shortcomings or opportunities and determining how they might be addressed. Also, analysis can be top-down, starting with an environment analysis, or bottom-up, with a focus on the computing system to be produced [18]. … Environment Computing System Environment Computing System Environment Computing System B A C D Current Target Figure 1. System Co-Evolution Model Four different starting points for system analysis are identified in the diagram [18]: x A-type analysis is the classic product-focused approach to software development. Here, the environment is mainly understood in terms of its relevance to the computing system and the functions it provides. x B-type analysis is the traditional ‘information systems’ approach, involving the analysis and modelling of the environment to provide a context for identifying system requirements. x C-type analysis helps develop a long-term vision of what the software could or should become. Implementation steps are then defined to advance the system in that direction. x D-type analysis first develops a long-term vision of the computing system environment, which is then used to determine environment changes as well as identify desirable supporting technology and its implementation steps. One well-known example to C-type analysis is Gilb’s Evolutionary Delivery method [8]. This has been adopted as a key practice of XP and is a core aspect of agile development, in general [19]. Each delivery step Proceedings of the 13th Annual IEEE International Symposium and Workshop on Engineering of Computer Based Systems ECBS’06 0-7695-2546-606 20.00 © 2006 IEEE offers extra value to the user that can be assessed to influence the next implementation phase. As work progresses, the initial goal may change, affecting the direction of development accordingly. The principles of the approach are summarised as [8]: x Deliver something to a real end user. x Measure the added-value to the user in all critical dimensions. x Adjust both design and objectives based on observed realities. Unfortunately Gilb gives little indication of how this is to be achieved in practice, simply stating that [8]: “Evolutionary delivery is based on iteration towards clear and measurable objectives. The set of objectives must contain all functional, quality and resource objectives which are vital to the long-term and short- term survival of the system under development”. This paper argues for a ‘top-down’ approach to analysis, so that an adequate understanding of the environment is built up before focusing attention on the computing system or systems. For agile development, that, in effect, means the use of a D-type analysis in support of a longer-term view of how a computing system might evolve. SSM is a suitable technique for performing this type of analysis [20, 21]. The next section summarises its main characteristics, identifying the models it helps to create.

3. Environment Analysis