Software Development Theory: A Survey

3187 words (13 pages) Essay

26th Mar 2018 Computer Science Reference this


Disclaimer: This work has been submitted by a university student. This is not an example of the work produced by our Essay Writing Service. You can view samples of our professional work here.

Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of

Pushpakumar R



Nowadays, during the Software development process, software developers are involved and their efforts to generate correct approach are the major challenge. In this survey, the planned model is Coat Hanger, for theorizing about development practices. This model focuses on the projected justification for the actual recognition and resulting effects of using particular practices in changing contexts. In the recent practice concerned with articles in the journal Science of Computer Programming explains the use of this model. The software development in professional organizations with actual software consultants as moles. The Coat Hanger model was then used to order the notional assets and weakness of these four practice descriptions. The study is used as the basis to declare the likely of our model as an intangible aid for more structured imagining about software development practices. The goat hanger model expected to deliver and then serve for software development process theory. In this novel approach the model is also provide a catalog for theory and then development process.

Index Terms— Goat hanger, Catalog, Software theory


In this paper we explained Modern software development theory and development. The general software process based on the general theory of software engineering. Particularly, they call for models which should provide analytical and narrow support for software engineering, instead of running costly design procedures that are plainly based on trial and error. They remark the issue of choosing software development methods in development projects and organizations as an example of weighty questions, which should be undertaken by such theory. Principally, Johnson at all. state that “many planned methods, programming languages and requirements specification languages exist, but very few bare theories explain why or foresee that one method or language would be preferable to another under certain situations”. While it may be true that we lack a “general theory” of software engineering, we must be more correct in our argumentation, however. What is this lack that we are talking about? Are we wanting theories about software artifacts or are we missing theoretical knowledge on the work of software professionals, i.e. software development. Additional approach has been the building of ontologies that give researchers and method-oriented consultants a vocabulary for theoretical constructs.

An example of this approach is the semat kernel, which provides a set of concepts, or ontology, for the core of software engineering. In its place of creating theories based on scientific remark, SEMAT has chosen the correction path, where the result is based on agreement, earlier experiences, or a best guess among a body of professionals. Another example is the complete SWEBOK, which is an attempt to protection all relevant areas of software engineering with commonly agreed knowledge. SWEBOK is not, however, focused on a single theory of the whole process; it labels areas defined by agreement or convention instead and therefore cannot be considered as a scientific theory. While mathematics and computer science offer a solid academic basis for kind computational changes and the article the process and performs of structure the artifact. Software development is less enclosed by scientific research. In our work we focus on the problem of theorizing about software growth practices, which can create data to support research, education and actual development of practices in software development officialdoms. To build and expressly validate theories about software expansion practices, we want to observe the work of software professionals in the real world context. This means that we must identify software development as a structural action, where the context, the business and then environment and the human organization with its fights and other failures are at least as applicable for the success of software development as the computational changes of the software piece. In this view the observed software development work becomes the source of the theory, and the target of the theory is to know, explain and guess the reason and practices of software developers and the effect these have on the success of software development. The unbiased of this paper is to understand this theorizing process abstractly and to build a model that explains the essential concepts for theories of software development practices.

Practices and software development

The practice of software development, which is “concerned with creating images of the purposes of the software and its problem domain, of its assembly and performance, of the additions to be achieved, of the boundaries between the software and its environment and its users. Software development contains numerous practices including that of analysis, design, execution and quality management. This kind of organic view to practices implies that in the software development context, practices may include both carefully organized use of predefined development methods and loosely prepared and even emergent activities that may use discrete tools or techniques at hand. They are not a mechanical reply to rules, norms or models, but a tactical, yet regulated improvisation responding to the dialectical connection between a exact situation in a field and habitus.

Technical rationality

The field of software engineering has over eras twisted numerous methods that are normative models of how software development should take place. However, already in the 1980s, noted that a methodology does not really describe what actually occurs in practice. The real actions in software progress, the working practice in use, what is really done in a situation may be quite different from what is described by a narrow methodology. In the field of information systems development, Larsen et al. describe how a research stream has discussed the related nature of method/practice engineering and acceptance by individual system and software designers, projects, and growth organizations since the 1990s. Recently, this portent has gained increasing attention in the international software engineering community as well.

Practice research in organizations

We adopt that a software development practice may become an administrative practice, it can be defined as the organization’s routine use of knowledge. Organizational applies can exist at the multiple levels, in that as in a software progress project or in an organization taking part in several projects or development processes. Structural practices often have tacit workings embedded partly in separate skills and partly in collaborative social arrangements. Many vital features of software development practices, such as their starting and evolution, require more courtesy from research and theory to be fully unspoken. The general management literature, however, conjectures with many viewpoints on how structural practices take shape.

All existing images of a practice imply that at least one stakeholder in the society has intended that it should be enacted. However the ethnographical studies have shown that such official, prescribed practices often deviate from the actual actions taken Moreover, software development organizations may also follow undocumented, habitual practices. Pent land and Feldman highlight a distinction between the performativity and ostensive aspects of organizational practices. The performativity facet shows “the specific actions taken by specific people at specific times when they are engaged in what they think of as an organizational routine. service engagements are becoming increasingly more numerous and more complex. We consider service engagements in the broad sense.

Fig.1.CoatHanger model for building theories from development practices.

Coat Hanger model for resulting theorizing about practices

We have shaped a model for a special resolve, for imagining about software expansion practices. We also recognize that there are general principles and models for experimental research and testing in software engineering. These sources define how observed research in software engineering should be conducted and reported, whereas we need to concentrate on theorizing only.

Our purpose is not to switch these but to provide a planned way to investigate and create theories about software development practices or sets of practices with a echo in action mode to research and practice. Our model figures on six main concepts that need to be illustrious in order to learn from software development practice and to shape theories of development practices: knowledge, a repetition, development setting, basis, effect, and theory. We use dual naming for each concept, for example rationale excusing and impact gauging. A central concept in our model is the concept of a practice. One dictionary definition of a practice is rather people do often. In the context of a development project or an body, a systems development practice may become an structural exercise or routine, which can be defined as the organization’s routine use of knowledge, especially “know-how”. The concept of “best practices” illustrates an assumption that abstractions of such know how can be usefully analyzed, and lessons learned from practice can be transferred between organizational contexts and over time. However, organizational practices often have tacit components embedded partly in individual skills and partly in collaborative social arrangements. If we compare a development method and a practice, a method adopted in an organization always embodies a predefined practice or a set of practices, whereas a practice is not always defined at the detailed level, at least with regard to all potential elements of method knowledge. However, while being cautious on the concept of “best practices”, we share the belief that practice descriptions and definitions may appear as useful for analyzing recurrent development actions in context, as a basis of learning from them.

A software growth effort takes place in a development context, which includes a large number of issues and factors. For example, Clarke and O’Connor identified 140 situated factors from previous literature that may affect the software development process. Similarly, in the field of information systems development, Orlikowski claims that the role of the system, systems development structure and operations, development policies and practices, development staff, corporate strategies, organizational structure and culture, customers, competitors, and available technologies represent contextual categories of issues which may influence the success or suitability of development practices.

Discuss the concept of method rationale as an important part of evolutionary method engineering to support software and systems development. While they regard good understanding of the method rationale as necessary for continuing the “variation and augmentation” of an organization’s methods, we will widen the concept of rationale to be equally useful for understanding the reasons for an organization’s development practices in general. A rationale for a development practice thus provides justifications for the creation, use and alteration of the practice (or a set of practices).

Lyytinen and Robey emphasize the significance of learning from the organization’s own growth experience. This clearly requires analysis and identification of the impacts of the expansion practices to software engineering success. Such impacts may be wanted already according to the explicit method foundation or they may be unanticipated, sometimes even unwanted.

Finally, the above concepts are needed for making and assessing theories of development practices. That is, we pursue theories which can examine, describe, and explain background software development practices, finally aiming at a level of prediction. We believe that it is useful to evaluate the practice and aim at predictive theories of certain types of development practices, with regard to their impacts on the development products, projects and processes, and contexts.

In the following, we relate these concepts to each other to form a model to guide the research on development practices. Fig.1relates these concepts together, whereas their relationships, which we need to understand in order to build theory from practices, are discussed further below.

Education is a border spanning machine which needs to exist, on one hand, in a development context so that earlier theories, including previous, more or less well-grounded, organizational commendations of development can notify local rationale for new practices and that the observed impacts of the target organization’s previous practices can inform further local rationality to adjust the practices. On the other hand, learning is needed between development organizations and the theory builders, who observe development actions in practice and try to abstract lessons to be learned from the particular practices in question (Fig.1). The process of theorizing is circular by nature. The local and global theories of observes will affect the rationalizing of practices and practice change in the development context. This in turn will lead to new knowledge that will make new or extended local or global theories.

The development context involves all the issues which have impact on how practices in the target organization or project are socially constructed and how the development organization can learn from its practices. The context may have an impact on the basis to tool new practices and how the applied practices are twisted during real development activities, on the impacts reached from the practices in use, and even whether a learning process takes place in a context at all and whether lessons learned from previous experience are made explicit. That is, practices, their impacts, and learning may not be purely based on the identified rationale alone, but can be affected by contextual issues. If contextual issues are explicitly identified before implementing a new set of practices, they may, in turn, become an explicitly recognized part of the rationale. However, some contextual issues may have a more implicit effect on practices in use and their impacts, recognized only after new practices have been tried out.

Learning is the intermediary that enables accumulation of local and global theories and their utilization in the development context.


In this topic we have discussed the need in software engineering research to observe the work of software professionals in real environments and presented a model that includes essential concepts for the theorizing of software development practices. The Coat Hanger model and then concepts education, a training growth context, motivation, impact, and theory can be used as a tool by research planners and assessors. To illustrate the value of the model we also made a survey of articles in Science of Computer Programming and went through four full years of articles. Out of 371 articles, we found only four articles that studied and observed directly professional software development using physicians as informants. Our study in light of the model could disclose areas of perfection with regard to the theoretical and empirical parts of the four studies. Finally we sharp out that software engineering research tends to value technical rationality instead of reflection in action and emphasized that theorizing of software development practices requires new approaches that recognize also other reference sciences than computer science and mathematics and pays more care to scientific practice. In the future we aim to continue our theory structure on software expansion practices. When combined with our previous model on practice changes, the Coat Hanger model is expected to serve as a conceptually clear and useful instrument for such theorizing. One other for current the study could be to build a catalogue of well-known or otherwise interesting software change practices, their motivations, and impacts on known contexts.


[1]S. Adolph, P. Kruchten, W. Hall, “Reconciling perspectives: a grounded theory of how people manage the process of software development”, J. Syst. Softw. 85(6) (2012) 1269–1286.

[2]Chris Argyris, D.A. Schön, Organizational Learning II, Addison-Wesley, Reading, MA, 1996.

[3]T.B.C. Arias, P. Avgeriou, P. America, K. Blom, S. Bachynskyy, A top–down strategy to reverse architecting execution views for a large and complex software-intensive system: an experience report, Sci. Comput. Program. 76(12) (2011) 1098–1112.

[4]M. Bajec, D. Vavpotiˇc, M. Krisper, Practice-driven approach for creating project-specific software development methods, Inf. Softw. Technol. 49(4) (2007) 345–365.

[5]V. Basili, R. Tesoriero, P. Costa, M. Lindvall, I. Rus, F. Shull, et al., Building an experience base for software engineering: a report on the first Ce-BASE eWorkshop, in: F. Bomarius, S. Komi-Sirviö (Eds.), Product Focused Software Process Improvement, in: Lect. Notes Comput. Sci., Springer, Berlin, Heidelberg, 2001, pp.110–125.

[6]I. Benbasat, R.W. Zmud, Empirical research in information systems: the practice of relevance, MIS Q. 23(1) (1999) 3–16.

[7]H. Berger, P. Beynon-Davies, The utility of rapid application development in large-scale, complex projects, Inf. Syst. J. 19(6) (2009) 549–570.

[8]P. Bourdieu, Outline of a Theory of Practice, Cambridge University Press, 1977.

[9]P. Bourdieu, The three forms of theoretical knowledge, Inf. Sur Sci. Soc. (Paris) 12(1) (1973) 53–80.

[10]J.S. Brown, P. Duguid, Organizational learning and communities-of-practice: toward a unified view of working, learning, and innovating, Organ. Sci. 2(1) (1991) 40–57.

[11]P.R. Carlile, A pragmatic view of knowledge and boundaries: boundary objects in new product development, Organ. Sci. 13(4) (2002) 442–455.

[12]P. Clarke, R.V. O’Connor, The situational factors that affect the software development process: towards a comprehensive reference framework, Inf. Softw. Technol. 54(5) (2012) 433–447.

[13]Collins CoBUILD, English Dictionary, 1989.

[14]B. Curtis, H. Krasner, N. Iscoe, A field study of the software design process for large systems, Commun. ACM 31(11) (1988) 1268–1287 .



Cite This Work

To export a reference to this article please select a referencing stye below:

Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.
Reference Copied to Clipboard.

Related Services

View all

DMCA / Removal Request

If you are the original writer of this essay and no longer wish to have your work published on the website then please:

Related Lectures

Study for free with our range of university lectures!