6 research outputs found

    An Activity Theory-based Architecture To Enhance Context-aware Collaboration In Software Development In The Cloud

    Get PDF
    This research study reviews collaborative software development and assesses the impact of cloud computing in this domain. This is with a view towards identifying challenges to effective context-aware collaboration, as well as opportunities, risks, and potential benefits that could come from a well-defined structured leverage of cloud capabilities. Findings from systematic review of literature indicate that adoption of cloud computing played a significant part in bringing about trends such as: movement of traditional applications and processes to the cloud; cloud development environments; increased distribution in teams and resources; increased diversity in requirements; changes in how software is developed, tested, deployed, accessed, and maintained. These trends have in turn introduced factors such as: massive scale; additional layers of complexity in abstraction levels, entity characteristics and entity relationships within the development process. This additional layer of complexity translates into increase in contexts i.e., information that can be used to characterize states of entities. This is in addition to existing traditional complexity i.e., measure of proportionality of activities and tasks within the process. Some notable efforts towards improving collaboration in software development in the cloud include: transitioning development environments, tools and teams to the cloud; provision of code repositories and version control functionality to support collaboration between developers; provision of platforms to enhance collaboration between developers and end-users in early stages of the process via registered project campaigns and targeted questionnaires; provision of platforms with integrated social networking tools. However, an essential missing piece for more effective context-aware collaboration in the process is, the need for ways of addressing resultant complexity from cloud adoption and capturing actionable contexts. Capturing and communicating contextual information can help improve awareness and understanding and facilitate role-based coordination of distributed team members including users, and not just developers. This would ensure all stakeholders are always on the same page even if not in same location, across all phases of development. The main aim of this research study is to apply a new architecture framework underpinned by the right theoretical foundations, capable of leveraging cloud capabilities, harnessing contexts and addressing complexity to enhance context-aware collaboration in cloud-based software development. To achieve this aim, knowledge gleaned from the systematic literature review and the gap-impact analysis was thematized and synthesized to provide optimal recommendations to serve as roadmap guide for the development and evaluation carried out, and subsequent knowledge contributions. Key dimensions were adapted, along with development of classifications for approaches to enhancing collaboration in software development in the cloud. The key dimensions created were for - assessing collaboration needs; definition of context data and levels; collecting, categorizing, analysing, and applying contextual information to tasks, activities, and stages within software development in the cloud. These dimensions and classifications are useful for identification of reliable ways of measuring collaboration and success factors, as well as managing complexity and ensuring synchronous regularity of process and understanding within the development process in the cloud. A formal process was proposed to aid selection of an appropriate theoretical basis and assembling of a theoretical framework and methodology to underpin the architecture for enhancing context-aware collaboration in cloud-based software development. This was necessary due to the current lack of a de-facto architecture method for cloud-based software development. An activity theory-based architecture has been designed and developed, along with a Proof-of-Concept (POC) implementation that leverages cloud capabilities, for evaluation of the architecture. This architecture presents a novel approach for enhancing collaboration in software development in the cloud due to its underlying activity theory-based tenets that considers ‘activity’ as the unit of analysis, and ideal for activity systems and ease of identification of congruencies and contradictions present or capable impacting related components of the activity system and its ecosystem. The conclusions for this research study, limitations and future research directions have been discussed at the end of this thesis work

    Cloud based collaborative software development: A review, gap analysis and future directions

    Get PDF
    Organizations who have transitioned their development environments to the Cloud have started realizing benefits such as: cost reduction in hardware; relatively accelerated development process via reduction of time and effort to set up development and testing environments; unified management; service and functionality expansion; on-demand provisioning and access to resources and development environments. These benefits represent only a fraction of the full potential that could be achieved via leveraging Cloud Computing for the collaborative software development process. Related efforts in this area have been mainly in the areas of: asynchronous collaboration; collaboration in isolated aspects of the Software Development process, such as coding activities; use of open-source tools for contributing, improving, and managing code, etcetera. Although these efforts represent valid contributions and important enablers, they are still missing important aspects which enable a more holistic process, with solid theoretical foundation. This paper reviews this research area, in order to better assess factors and gaps creating the need to enhance the collaborative software development process in the Cloud, to better meet the pressure to collaboratively create better cloud-agnostic applications. © 2017 IEEE

    Classifying collaborative approaches for cloud based collaborative software development

    Get PDF
    Software development is an activity involving a remix set of different people, tools, practice culture, etcetera, and working towards an end goal. Achieving the goal necessitates that all these aspects work together towards the end goal. Furthermore, the size, complexity, longevity and tight delivery timelines of software projects, form part of the rationale for collaboration in software development processes. With the advent of Cloud computing, these factors have become more pronounced. Other factors such as increased distribution, have also become part of the rationale increasing the need for better collaborative approaches. Collaboration can take numerous forms and dimensions, but that does not necessarily mean that any form of collaborative approach is good for every scenario or context. There is no “one size fits all” approach. Different development contexts may require different collaborative approaches for greater effectiveness. So, which collaborative approach is right, and which is wrong, for Cloud-based software development lifecycle? This paper reviews literature with an aim of presenting a classification for collaborative approaches towards context-aware Cloud-based software development

    Blinded by Simplicity: Locating the Social Dimension in Software Development Process Literature

    Get PDF
    The software development process is a complex human, intellectual and labor-intensive activity and human related factors have shown to be the most significant contributors to software system failures. Lacking the ability to identify or quantify these factors, software practitioners will not learn from the failures caused by them. Although, social factors give rise to high failure rates in software development projects they tend to be ignored. Business continues as usual. The inability for software engineers to attain a holistic and inclusive approach will leave the social dimension out and undermine the realization of a fully sustainable software development process.This paper builds on the master’s thesis with the same title completed in December 2019 at Stockholm University. The thesis demonstrates how research literature on software development processes addresses (or not) the social dimension of sustainability from a holistic point of view. The results indicate that the practice of dealing holistically with complexity including the social dimension is still underdeveloped. Further research is suggested regarding the development of adequate supporting tools, social skills, and managerial attitudes and behaviors
    corecore