ContextAn optimal software development process is regarded as being dependent on the situational characteristics of individual software development settings. Such characteristics include the nature of the application(s) under development, team size, requirements volatility and personnel experience. However, no comprehensive reference framework of the situational factors affecting the software development process is presently available. ObjectiveThe absence of such a comprehensive reference framework of the situational factors affecting the software development process is problematic not just because it inhibits our ability to optimise the software development process, but perhaps more importantly, because it potentially undermines our capacity to ascertain the key constraints and characteristics of a software development setting. MethodTo address this deficiency, we have consolidated a substantial body of related research into an initial reference framework of the situational factors affecting the software development process. To support the data consolidation, we have applied rigorous data coding techniques from Grounded Theory and we believe that the resulting framework represents an important contribution to the software engineering field of knowledge. ResultsThe resulting reference framework of situational factors consists of 8 classifications and 44 factors that inform the software process. We believe that the situational factor reference framework presented herein represents a sound initial reference framework for the key situational elements affecting the software process definition. ConclusionIn addition to providing a useful reference listing for the research community and for committees engaged in the development of standards, the reference framework also provides support for practitioners who are challenged with defining and maintaining software development processes. Furthermore, this framework can be used to develop a profile of the situational characteristics of a software development setting, which in turn provides a sound foundation for software development process definition and optimisation.
Context: Research has shown that a significant number of software projects fail due to social issues such as team or personality conflicts. However, only a limited number of empirical studies have been undertaken to understand the impact of individuals' personalities on software team configurations. These studies suffer from an important limitation as they lack a systematic and rigorous method to relate personality traits of software practitioners and software team structures. Objective: Based on an interactive personality profiling approach, the goal of this study is to reveal the personality traits of software practitioners with an aim to explore effective software team structures. Method: To explore the importance of individuals' personalities on software teams, we employed a two-step empirical approach. Firstly, to assess the personality traits of software practitioners, we developed a context-specific survey instrument, which was conducted on 216 participants from a middle-sized software company. Secondly, we propose a novel team personality illustration method to visualize team structures. Results: Study results indicated that effective team structures support teams with higher emotional stability, agreeableness, extroversion, and conscientiousness personality traits. Conclusion: Furthermore, empirical results of the current study show that extroversion trait was more predominant than previously suggested in the literature, which was especially more observable among agile software development teams.
SUMMARYAlthough earlier studies revealed much about software process improvement (SPI) in Small-to Medium-sized Enterprises (software SMEs), no earlier research set out to determine the full extent of SPI being implemented in software SMEs. Therefore, this study was designed from the outset to elicit all instances of SPI, which we term SPI events -no matter how small or informal. We make the important new discovery that SMEs initiate a considerable amount of SPI, albeit in varying quantities in different organisations. No earlier study reported that the practice of SPI was so widespread in software SMEs, and this is perhaps related to the extensive scope of the enquiry adopted in this study. Our study also finds that the significant majority of SPI in software SMEs is minor or moderate in nature, sometimes leveraging the human capital via improvements in tacit knowledge. Software development is an intrinsically human intensive activity and it therefore follows that the maximisation of the human capital in an organisation is a source of competitive advantage. However, contemporary process maturity frameworks and quality management standards do not fully exploit the capacity of human capital and may therefore diminish rather than improve the competitive advantage of software SMEs.
Abstract-Software development is a complex socio-technical activity, with the result that software development organisations need to establish and maintain robust software development processes. While much debate exists regarding the effectiveness of various software development approaches, no single approach is perfectly suited to all settings and no setting is unchanging. The capability to adapt the software process is therefore essential to sustaining an optimal software process. We designed an exploratory study to concurrently examine software process adaptive capability and organisational performance in 15 software development organisations, finding that companies with greater software process adaptive capability are shown to also experience greater business success. While our exploratory study of the complex relationship between these phenomena is limited in some respects, the findings indicate that software process adaptive capability may be worthy of further integration into software process engineering techniques. Software process adaptive capability may be an important organisational strength when deriving competitive advantage, and those responsible for the creation and evolution of software process models and methodologies may want to focus some of their future efforts in this area.
The research literature informs us that a software development process should be appropriate to its software development context but there is an absence of explicit guidance on how to achieve the harmonization of a development process with the corresponding situational context. Whilst this notion of harmonization may be intuitively appealing, in this paper we argue that interaction between a software development process and its situational context is an instance of a complex system. In Complexity Theory, complex systems consist of multiple agents that interact in a multitude of diverse ways, with system outcomes being non-deterministic. Complex systems are therefore noted to be difficult to control, such as is the case with many software development endeavors. If the interaction of software processes with situational contexts is representative of a complex system, then we should not be surprised that the task of software development has proven so resistant to attempts to produce generalized software processes. We should also seek to ameliorate the software development challenge through the adoption of techniques recommended for use in managing complex systems, not as a replacement for the many software process approaches presently in use, but as complement that can aid the task of process definition and evolution. CCS Concepts• Software and its engineering ➝ Software creation and management ➝ Software development process management ➝ Software development methods.
Together with many success stories, promises such as the increase in production speed and the improvement in stakeholders' collaboration have contributed to making agile a transformation in the software industry in which many companies want to take part. However, driven either by a natural and expected evolution or by contextual factors that challenge the adoption of agile methods as prescribed by their creator(s), software processes in practice mutate into hybrids over time. Are these still agile? In this article, we investigate the question: what makes a software development method agile? We present an empirical study grounded in a large-scale international survey that aims to identify software development methods and practices that improve or tame agility. Based on 556 data points, we analyze the perceived degree of agility in the implementation of standard project disciplines and its relation to used development methods and practices. Our findings suggest that only a small number of participants operate their projects in a purely traditional or agile manner (under 15%). That said, most project disciplines and most practices show a clear trend towards increasing degrees of agility. Compared to the methods used to develop software, the selection of practices has a stronger effect on the degree of agility of a given discipline. Finally, there are no methods or practices that explicitly guarantee or prevent agility. We conclude that agility cannot be defined solely at the process level. Additional factors need to be taken into account when trying to implement or improve agility in a software company. Finally, we discuss the field of software process-related research in the light of our findings and present a roadmap for future research.
From its earliest days, software development has been beset with challenges in relation to timely delivery, appropriateness of features, and quality of deliverables. Many advances in software development processes have helped to address these concerns. For example, agile software development has helped to deliver working software more frequently, and capability maturity frameworks have brought about improved consistency in quality levels. However, the age‐old challenge of better, cheaper, faster software has continued to beguile developers. In this paper, we discuss an emerging approach to software development, continuous software engineering (CSE), wherein software of operational quality may be delivered on a very frequent basis, up to many times in a given day. This approach uses a complex set of independent tools that together reduce the lead time in delivering commercial‐grade software. Having examined the situational context of one industrial organization applying CSE, we conclude that the approach may not presently be appropriate to all manners of software development. Nonetheless, the authors are of the view that CSE represents a significant progression in software engineering and that software development settings of all types stand to gain from aspects of the CSE approach.
Serious games involve applying game design techniques to tasks of a serious nature. In particular, serious games can be used as informative tools and can be embedded in formal education. Although there are some studies related to the application of serious games for the software development process, there is no serious game that teaches the fundamentals of the ISO/IEC 12207:1995 Systems and software engineering-Software life cycle processes, which is an international standard for software lifecycle processes that aims to be 'the' standard that defines all the tasks required for developing and maintaining software. "Floors" is a serious game that proposes an interactive learning experience to introduce ISO/IEC 12207:1995 by creating different floors of a virtual environment where various processes of the standard are discussed and implemented. Inherently, it follows an iterative process based on interactive technical dialogues in a 3D computer simulated office. The tool is designed to assess the novice engineering practitioners knowledge and provide preliminary training for ISO/IEC 12207:1995 processes. By playing such a game, participants are able to learn about the details of this standard. The present study provides a framework for the exploration of research data obtained from computer engineering students. Results suggest that there is a significant difference between the knowledge gained among the students who have played Floors and those who have only participated in paper-based learning sessions. Our findings indicate that participants who played Floors tend to have greater knowledge of the ISO/IEC 12207:1995 standard, and as a result, we recommend the use of serious games that seem to be superior to traditional paper based approach.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.