• Tidak ada hasil yang ditemukan

The Need for an Agile Intervention

2.4 Agile Software Development

2.4.1 The Need for an Agile Intervention

The preceding discussion on software development process models and methodologies that culminated in the UP (sections 2.3.1 to 2.3.6), seem to suggest that there is a lingering element of doubt and discontent by software practitioners regarding the effectiveness of ad hoc techniques and prescriptive process models in solving the problem of successful software development. This assertion is corroborated by Strode (2012) who suggests that in the late 1990’s, the IS development research community seems to converge to an opinion that software development methodology is not universally beneficial and in some instances, it can be quite detrimental to the efforts of developing software successfully. Despite the best efforts of the software engineering and IS research communities, the software development process models have not achieved a level of success that would arguably ensure confidence in the successful development of a software

artefact. This is contrary to other engineering disciplines where a planned, controlled, engineering-like approach to development would normally guarantee a successful product. The preceding assertion is commensurate with the overriding opinion that emerged from the 1996 seminar titled “The History of Software Engineering” (see Aspray et al., 1997) and is also partially aligned to the call by Fenton et al. (1997) for the adoption of a more scientific approach to the software development process.

Tackling the SE Crisis

There was a need for the software engineering community to re-establish a measure of confidence in the software development process. An impending crisis situation such as the one that confronted the software engineering community is normally tackled by examining the epistemological underpinnings of a discipline.

Incursions into the epistemological underpinnings of the computing discipline can be quite diverse and could easily degenerate into a problem in itself that may well

‘creep’ beyond the scope of the current discourse. However the ontological synopsis of the discipline of computing by Jackson (1995) in an article titled “The World and the Machine”, provides a frame of reference from which there may be a generation of some discussion on the topic. Jackson undertakes an exploration of the relationship between the ‘world’ (a reference to society) and a machine (a reference to a computing device). According to Jackson, this relationship has at least four facets. These are:

 the modelling facet where the computing device simulates society;

 the interface facet that provides society with a mechanism to interact with the computing device;

 the engineering facet, where the computing device exerts a degree of control over the societal behavioural patterns;

 the problem facet where societal convention influences the shape/form of the computing device and the solution that it provides.

The preceding lucid illustration of what could potentially be a complex relationship paves the way for a high level analysis of the relationship between

society and a computing device. Jackson identifies the conceptual gaps of understanding between the technological realm and the societal realm as possibly an area where the software engineering community has failed society. This conceptual gap of understanding manifests in all four facets of the relationship between the world and the machine.

The Social Dimension of SE

While substantial progress has been made in providing structure and guidance for the technical aspects of software development, not much has been done to address the communication gap between the software engineering community and the society of human end-users. Jackson concludes this ontological analysis on the state of computing by suggesting that discourse on software development methodology should focus on the human realm and the development of methodologies and process models that elevate the importance of the social element in the software development process. The social dimension has a strong presence in the requirements elicitation phase, the modelling and coding phases that typically involve a team of developers and finally within the context of use that has an impact on end user behaviour at the organisational level. These socially oriented issues were not as prominent in the early 1990’s where software development typically involved a small group of end users and developers who interacted with standalone, “stovepipe” systems (Boehm, 2006, p. 23) that had a limited potential to enable interoperability with other systems and exerted a degree of influence that was seldom felt at the organisational level. The late 1990’s and early 2000’s heralded a change in this situation. Software began to play a more pivotal role in society thereby becoming a catalyst for the software engineering community to explore software process models that endeavoured to incorporate processes that embodied an acknowledgement of the human influence on the software development process. This assertion is corroborated in Highsmith and Cockburn (2001) and Cohen et al. (2004) who claimed that there was a need for new software development practices that were people-oriented and flexible and are based on generative rules that do not break down in a dynamic environment.

Abbas et al. (2008) added to the impetus for a more dynamic, agile software process

model by suggesting that the traditional methodologies did not adequately cope with the “…turbulence of business demands and fluctuating advances in technology” (p. 3). These unpredictable traits of a changing, modern society rendered it almost impossible to anticipate a complete set of the requirements early in the project lifecycle.