In current world multiple organizations are using the methodology of Global Software Development (GSD) because it is a convenient technique for developing the software projects. Global software advancement serves as a vowed relation among... more
In current world multiple organizations are using the methodology of Global Software Development (GSD) because it is a convenient technique for developing the software projects. Global software advancement serves as a vowed relation among the client and vendor companies. In such relation the client contracts out a part or complete development of the software to the vendor. As a response the vendor provides the services on which the agreement was made in lieu of the payment is made to the vendor as per agreed. GSD method is used because it offers the completion of project in less cost, quick development and the access to experienced resources. Even though GSD is coming out as a successful method but it has multiple difficulties which needs to be overcome such as bad communication, absence of faith and coordination among the team. Due to these challenges there is a significant risk factor in trouble free execution. Our results show that most of the focus in previous research in this area has been limited to highlighting the problems encountered by the client companies. The vendor side up to this time is not very mature because this aspect of GSD is not payed much attention.
Although agile methods in their purest way fit several companies, it has been a challenge to perform them in environments with distributed teams developing large software applications. Contractual items, for projects under development for... more
Although agile methods in their purest way fit several companies, it has been a challenge to perform them in environments with distributed teams developing large software applications. Contractual items, for projects under development for external organizations, introduce additional complexities for pure agilebased approaches. The majority of global teams and companies use hybrid development practices that combine different development methods and frameworks. This research provides results from an empirical field study on how the hybrids practices are adopted in Global Software Development (GSD) projects. A systematic literature review was conducted to capture the status of combining agile with plan-driven in GSD projects. The results were limited to peer-reviewed conference papers or journal articles, published between 2001 and 2020. The present study selected 37 papers from five different bibliographic databases. In the end, 16 practices were summarized and described as hybrid by GSD projects. Based on the findings of this study, the authors can conclude that the contribution of this study is not only limited to identifying how hybrid development practices are applied in GSD but also allowing that practitioners can have a basis for adapting their development methods.
Agile methods allow software teams to respond quickly to change. The agile approach reduces the schedule risk associated with traditional software engineering, in which integration of component parts is treated as a late-phase effort.... more
Agile methods allow software teams to respond quickly to change. The agile approach reduces the schedule risk associated with traditional software engineering, in which integration of component parts is treated as a late-phase effort. Testing throughout the process as opposed to at the end of the project can bring a number of benefits for app developers, especially in the discovery of coding flaws or other bugs. When testing takes place on a regular basis during the development process, app developers and testing counterparts easily spot issues along the way and correct them as they go. This ensures that the project will continue smoothly and that any issues will be more easily corrected. Additionally, introducing test automation early, connecting functional along with even load and performance tests to Continuous Integration acts as a part of regression testing, where the development team takes responsibility for bugs in the code. This frees up dedicated testers and performance experts to focus on more complex use cases and determining test scenarios that cover areas outside the code, like infrastructure, corner cases and third party testing. This papers discovers different methodologies in agile that suits mobile application development along with testing.
The proponents of Agile software development approaches claim that software architecture emerges from continuous small refactoring, hence, there is not much value in spending upfront effort on architecture related issues. Based on a... more
The proponents of Agile software development approaches claim that software architecture emerges from continuous small refactoring, hence, there is not much value in spending upfront effort on architecture related issues. Based on a large-scale empirical study involving 102 practitioners who had worked with agile and architecture approaches, we have found that whether or not architecture emerges through continuous refactoring depends upon several contextual factors. Our study has identified 20 factors that have been categorized into four elements: project, team, practices, and organization. These empirically identified contextual factors are expected to help practitioners to make informed decisions about their architecture practices in agile software development.
Wie eine Vielzahl an aktuellen Problembeispielen zeigt, geht die Betrachtung der Integration ethischer Anforderungen in Softwareentwicklungsprozesse weit über die reine Produkthaftung hinaus – vielmehr geht es um die Frage „welche Regeln... more
Wie eine Vielzahl an aktuellen Problembeispielen zeigt, geht die Betrachtung der Integration ethischer Anforderungen in Softwareentwicklungsprozesse weit über die reine Produkthaftung hinaus – vielmehr geht es um die Frage „welche Regeln gelten sollen, um ethische Maschinen entwickeln zu können und wie diese ausgestaltet sein müssen, damit sie eingehalten werden (können)" [Zuber et al. 2021, S. 3]. Das hier vorgelegte kursorische Kurzreview soll einen ersten Überblick des Themenfeldes liefern sowie die Identifikation derzeit offener Fragestellungen von zentraler Bedeutung sowie wesentlicher laufender Projekte im betrachteten Forschungsfeld unterstützen.
This article presents a study where two groups of university students learned the principles of the agile development of mobile applications. The participating university students built their own version of an application in Java for... more
This article presents a study where two groups of university students learned the principles of the agile development of mobile applications. The participating university students built their own version of an application in Java for Android following the principles of two agile methodologies: SCRUM and Extreme Programming (XP). Each team of students was assigned either a SCRUM or XP methodology for the development of their application in two iterations. In the second iteration the requirements were intentionally modified to provoke changes in the software being developed by each team. After the completion of the development process, a questionnaire was applied, and interviews with participants were conducted. The purpose of the questionnaire and the interviews was to gain insight into the participating students' perceptions about teamwork, the method-ologies used, their personal motivation, and their attitude towards changing requirements. A Mann Whitney test was performed on the acquired data. The results show that the team that implemented the XP methodology accepted the changing requirements more than the SCRUM team. Moreover, higher levels of participation and cooperation were observed among participants who used the XP methodology than among those who used SCRUM.
Agile Programming Methodologies prioritize to minimize the risk by developing software in shorter time boxes called iterations. They emphasize real –time communication, and give preference for working Software which satisfies all stake... more
Agile Programming Methodologies prioritize to minimize the risk by developing software in shorter time boxes called iterations. They emphasize real –time communication, and give preference for working Software which satisfies all stake holders. They give less prominence to documentation, as compared to other methods. Design Patterns have received a lot of attention notably from the Object-Oriented world as a technique for design reuse. Design Patterns make it easier to reuse successful designs and architectures by providing solutions to common design problems at an intangible level. A list of Design Patterns are available that can form the basis for creating designs useful for new designers and to deal with reconfigurable design. By combining the application and implementation lessons to the expansion and modifications of this list, one can make those lessons better applicable to the design community. The first section of this paper outlines the Agile Development Methodologies, the second section relates to the Design Patterns, the third section relates to Ruby on Rails, and in the last section we present a case study about Ruby on Rails to a customized accounts package as an integrated approach of Agile Programming and Design Patterns.
Due to the expanding trend to globalise software development organisations need to understand and address issues which previously did not arise. Cultural distance has been identified as one of these key issues. This paper presents the... more
Due to the expanding trend to globalise software development organisations need to understand and address issues which previously did not arise. Cultural distance has been identified as one of these key issues. This paper presents the results from a three year study which identified the implications of misunderstanding and not addressing cultural differences. This work was undertaken within a multinational organisation which offshored part of their software development process from Ireland to Malaysia. Of particular relevance was where cultural difference was initially perceived as something which could be leveraged. The opposite proved to be the case and resulted in key Malaysian personnel being forced to leave the organisation. This was due to their cultural aversion to decline requests to undertake additional work. This resulted in serious implications for the success of the projects concerned. Ultimately the requirement for cultural training was recognized by the management and staff at both locations.
To support software development globalisation, organisations are increasingly implementing virtual team strategies. However, these teams have to work within the confines of the factors which distance introduces, thus not always allowing... more
To support software development globalisation, organisations are increasingly implementing virtual team strategies. However, these teams have to work within the confines of the factors which distance introduces, thus not always allowing effective coordination, visibility, communication and cooperation to take place. The successful implementation and management of such teams must be done differently to those at single-site locations. To establish what factors significantly affect the implementation of virtual teams, the authors carried out qualitative research in two organisations in Ireland. Results from this research demonstrate that many factors are reality for those involved in global software development. In this paper we present five of these factors and discuss the impact these had on the virtual teams. These five are: use of communication tools, project management, process engineering, technical ability and motivational issues. knowledge transfer and motivational issues. If These are not explicitly addressed by management it can lead to serious problems
The dissipation of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has already taken on pandemic proportions, affecting over 100 countries in a couple of weeks. The evolution of the disease and its economic impact is highly... more
The dissipation of severe acute respiratory syndrome coronavirus 2 (SARS-CoV-2) has already taken on pandemic proportions, affecting over 100 countries in a couple of weeks. The evolution of the disease and its economic impact is highly uncertain, which brings challenges for newly created software companies. Software startups are companies that create innovative software products and services in a dynamic and fast-growing market. Agile Software Methods aims to enable startups in responding to uncertainty caused by Covid-19. This paper investigates the impact of Covid-19 in a real software startup context to understand how they have reacted against uncertainties caused by Covid-19. As a research methodology, action research within Di2Win, a Brazilian software startup, has been applied. The study was carried out throughout six sprints, during the quarantine. Practices employed to mitigate threats while simultaneously allowing teams to remain open to opportunities and challenges are detailed. This paper shares lessons learned that could help agile software startups improve their way of work in an uncertain environment caused by the Covid-19 pandemic.
Continuous Delivery (CD) has emerged as an auspicious software development discipline, with the promise that it can provide the capability to release valuable software continuously to customers. Our organization has been implementing CD... more
Continuous Delivery (CD) has emerged as an auspicious software development discipline, with the promise that it can provide the capability to release valuable software continuously to customers. Our organization has been implementing CD for the last two years. We have moved 22 software applications to CD. I noticed that CD has created a new context for architecting these software applications. This paper makes an initial attempt to answer the following questions: 1) what are the characteristics of this CD context; 2) why we want to architect for CD; and 3) what architecting for CD implies. The answers can provide fellow practitioners with insights for architecting their software applications for CD, and provide researchers with valuable input for developing their research agendas.
—Many companies have adopted agile software development (ASD), mainly due to it can handle scarce requirements. However, some unsolved challenges exist in ASD, particularly in global software development (GSD) companies (known as AGSD).... more
—Many companies have adopted agile software development (ASD), mainly due to it can handle scarce requirements. However, some unsolved challenges exist in ASD, particularly in global software development (GSD) companies (known as AGSD). These challenges include ASD lax documentation contrasted by the methodological standardization required in GSD, due to its inherent distances. Lax documentation leads to documentation debt and architectural knowledge (AK) vaporization, which cause negative effects on the development process and on the product itself. In order to reduce these effects, we propose Scrumconix, a hybrid method that uses a lightweight approach to document in AGSD environments, which also aims to decrease the effect of linguistic and cultural distances. In addition, we present preliminary results of Scrumconix implementation in a Mexican AGSD company.
"While face-to-face interaction is fundamental in agile software development, distributed environments must rely extensively on mediated interactions. Practicing agile principles in distributed environments therefore poses particular... more
"While face-to-face interaction is fundamental in agile software development, distributed environments must rely extensively on mediated interactions. Practicing agile principles in distributed environments therefore poses particular control challenges related to balancing fixed vs. evolving quality requirements and people vs. process-based collaboration. To investigate these challenges, we conducted an in-depth case study of a successful agile distributed software project with participants from a Russian firm and a Danish firm. Applying Kirsch’s elements of control framework, we offer an analysis of how control was enacted through the project context and in the participants’ mediated communication. The
analysis reveals that formal measurement and evaluation control were persistently enacted through mediated communication. These formal control practices were, however, predominantly carried out in conjunction with informal roles and relationships such as clan-like control inherent in agile development. Overall, the study demonstrates that, if appropriately applied, communication technologies can significantly support distributed, agile practices by allowing concurrent enactment of both formal and informal controls. The paper discusses these findings as they relate to previous research and concludes with their implications for future research."
Our research rather than focusing on the requirements of Western based organisations outsourcing or offshoring software development considers the factors that are relevant for the recipients of this work and in particular the perspective... more
Our research rather than focusing on the requirements of Western based organisations outsourcing or offshoring software development considers the factors that are relevant for the recipients of this work and in particular the perspective of the remote project manager. To achieve this objective we have undertaken research with three Indian based software development organisations. Our results are focused on the specific issues which were relevant for the establishment and operation of Indian based GSD teams. The perspective is that of the Indian Project Manager and the contribution they and their teams make along with the problems they encounter and overcome. Given the nature of this work it was considered appropriate to implement a qualitative inductive approach. To this end the use of a sophisticated grounded theory based strategy was selected and implemented. Given the inductive nature of our research our findings are structured under three main headings which emerged from the analysis of the data. These headings are Team Selection and Establishment, Team Operation and Level of Attrition. The team selection section presents the key factors and issues this research identified which were relevant for the selection of Indian based software development teams. It goes on to outline how these teams were effectively established. The team operation section considers dealing with distance and the use of communication tools. It also considers the experience of Indian based Project Managers dealing with Western colleagues and clients. The level of attrition section focuses on a very serious problem which was highlighted by our study. This is how can software organisations based in India hold on to their existing staff in what is a very volatile labour market?
Although agile methods in their purest way fit several companies, it has been a challenge to perform them in environments with distributed teams developing large software applications. Contractual items, for projects under development for... more
Although agile methods in their purest way fit several companies, it has been a challenge to perform them in environments with distributed teams developing large software applications. Contractual items, for projects under development for external organizations, introduce additional complexities for pure agilebased approaches. The majority of global teams and companies use hybrid development practices that combine different development methods and frameworks. This research provides results from an empirical field study on how the hybrids practices are adopted in Global Software Development (GSD) projects. A systematic literature review was conducted to capture the status of combining agile with plan-driven in GSD projects. The results were limited to peer-reviewed conference papers or journal articles, published between 2001 and 2020. The present study selected 37 papers from five different bibliographic databases. In the end, 16 practices were summarized and described as hybrid by ...
To support software development globalisation, organisations are increasingly implementing virtual team strategies. However, these teams have to work within the confines of the factors which distance introduces, thus not always allowing... more
To support software development globalisation, organisations are increasingly implementing virtual team strategies. However, these teams have to work within the confines of the factors which distance introduces, thus not always allowing effective coordination, visibility, communication and cooperation to take place. The successful implementation and management of such teams must be done differently to those at single-site locations. To establish what
An important challenge in Agile Global Software Development (AGSD) is architectural knowledge vaporization, i.e., the loss of technical knowledge due to a lack of documentation. In a previous work we identified that technical knowledge is... more
An important challenge in Agile Global Software Development (AGSD) is architectural knowledge vaporization, i.e., the loss of technical knowledge due to a lack of documentation. In a previous work we identified that technical knowledge is usually available in unstructured textual electronic means (e.g. chat, mail, blogs, etc. – also known as UTEMs) used by AGSD workers during development, although not necessarily easily accessible. Also, we proposed the concept of Knowledge Condensation as a means to recover knowledge from UTEMs, by introducing a structure to their contents along with means to retrieve knowledge. In this work we present our first step towards a Knowledge Condensation tool, through a prototype tagging mechanism to structure architectural knowledge during UTEM interactions. We evaluated the prototype and obtained the following results: (1) a high perception of usefulness and a high projected intention of use; and (2) the identification of 6 tagging behavior profiles from participants. These tagging behaviors can be grouped as (i) participants who tag as expected, (ii) participants who tag more than expected, and (iii) participants who tag less than expected. These results suggest that it is important to cope with “little or no tagging” and “excessive tagging” behaviors to implement knowledge condensation based on UTEM tagging. Furthermore, we identified that tagging could be a good option to structure UTEM interactions, and to retrieve architectural knowledge from UTEM logs. Future work includes improving the tagging mechanism prototype based on the participants’ suggestions and overall evaluation results, and implementing a searcher prototype to further evaluate the concept of knowledge condensation based on tagging of UTEM interactions.
Today software development has truly become a globally sourced commodity. This trend has been facilitated by the availability of highly skilled software professionals in low cost locations in Eastern Europe, Latin America and the Far... more
Today software development has truly become a globally sourced commodity. This trend has been facilitated by the availability of highly skilled software professionals in low cost locations in Eastern Europe, Latin America and the Far East. Organisations endeavouring to leverage the opportunities this provides and to avail of the benefits of establishing operations close to emerging markets have embraced this strategy in large numbers. Software testing plays a key role in delivering high quality products and is a labour intensive, complex and expensive activity. In the context of Global Software Development (GSD) to date testing has been perceived as a well defined task that is relatively straightforward and lends itself to being outsourced or offshored. This volume considers this specific topic and demonstrates that testing in a GSD environment is not a simple activity. It is prone to be negatively impacted by all the factors associated with distributed software development.This work also provides practical solutions which can be utilised to address these important issues. While the primary focus of this work is software testing it is also the culmination of 10 years research by the author in the area of GSD. During this period he has considered all aspects of the software development life cycle. This experience and knowledge has been incorporated into this volume. It is therefore relevant to note this work is of value to the wider software community not just to those interested in testing. It specifically considers the establishment of virtual teams and their efficient and effective operation. Therefore this book has relevance to all those interested in implementing or improving a GSD strategy. Its particular strengths are that while it is a scholarly work it is industry based and practical