4 research outputs found

    Collaborative Requirements Engineering Notation for Planning Globally Distributed Projects

    Get PDF
    Requirements engineering represents a critical phase of the software development lifecycle in which requirements describing the functional and non-functional behaviors of a system are elicited, modeled, analyzed, negotiated, agreed, and specified. In traditional software systems these tasks are typically performed in face-to-face meetings between requirements engineers and the project level stakeholders. However, in today’s global software development environment, it is becoming increasingly commonplace for stakeholders to be dispersed across multiple geographical locations and time zones. Under these circumstances, face-to-face meetings become expensive, and often impossible to facilitate, and as a result the success of the requirements process relies, at least partially, on tools and processes that support distributed communication and collaboration. To investigate the challenges and effective practices for performing requirements activities in distributed environments, we conducted a series of in-depth interviews with project managers and business analysts who have worked with non-co-located stakeholders. Since many project managers fail to plan and deploy the necessary infrastructures to support quality communication, and in practice requirements are often elicited and managed via email exchanges; we introduced a visual modeling notation to help project managers proactively plan the collaboration infrastructures needed to support requirements-related activities in globally distributed projects. An underlying meta-model defines the elements of the modeling language, including locations, stakeholder roles, communication flows, critical documents, and supporting tools and repositories. The interview findings were further analyzed to identify practices that led to success or created significant challenges for the projects; resulting in a set of patterns for globally distributed requirements engineering

    User-Developer Communication in Large-Scale IT Projects

    Get PDF
    User participation and involvement in software development has been studied for a long time and is considered essential for a successful software system. The positive effects of involving users in software development include improving quality in light of information about precise requirements, avoiding unnecessarily expensive features through enhanced aligment between developers and users, creating a positive attitude toward the system among users, and enabling effective use of the system. However, large-scale IT (LSI) projects that use traditional development methods tend to involve the user only at the beginning of the development process (i.e., in the specification phase) and at the end (i.e., in the verification and validation phases) or not to involve users at all. However, even if developers involve users at the beginning and the end, there are important decisions that affect users in the phases in between (i.e., design and implementation), which are rarely communicated to the users. This lack of communication between the users and developers in the design and implementation phase results in users who do not feel integrated into the project, are little motivated to participate, and do not see their requirements manifested in the resulting system. Therefore, it is important to study how user-developer communication (UDC) in the design and implementation phases can be enhanced in LSI projects in order to increase system success. The thesis follows the technical action research (TAR) approach with the four phases of problem investigation, treatment design, design validation, and implementation evaluation. In the problem investigation phase we conducted a systematic mapping study and assessed the state of UDC practice with experts. In the treatment design phase, we designed the UDC–LSI method with experts, and we validated its design with experts in the design validation phase. Finally, in the implementation evaluation phase we evaluated the implementation of the method using a case study. This thesis first presents a meta-analysis of evidence of the effects of UPI on system success in general and explore the methods in the literature that aim to increase UPI in software development in the literature. Second, we investigate the state of UDC practice with experts, analyzing current practices and obstacles of UDC in LSI projects. Third, we propose the UDC–LSI method, which supports the enhancement of UDC in LSI projects, and present a descriptive classification containing user-relevant decisions (and, therefore, trigger points) to start UDC that can be used with our method. We also show the validity of the method through an assessment of the experts who see potential for the UDC–LSI method. Fourth, we demonstrate the results of a retrospective validation of the method in the real-life context of a large-scale IT project. The evaluation showed that the method is feasible to implement, has a positive effect on system success, and is efficient to implement from the perspective of project participants. Furthermore, project participants consider the UDC-LSI method to be usable and are likely to use in future projects
    corecore