Agile Software Development in Virtual Collaboration Environments
PI: Prof. Dr. Robert Hirschfeld
Agile software development processes are iterative and incremental, embracing change and evolution and promoting design simplicity and high software quality. During each development iteration teams deliver a running system with improved value to the customer in satisfying its needs. Providing a working product at all time during the project is of great value to the customer; however, this may leave both problem and design spaces under-explored. This is because teams cannot exploit their full innovative potential regarding the human needs, interfaces, and technical decisions on such short time horizons.
In this research project we investigate how selected design practices and the mind-set they are based upon can be integrated into agile software development processes.
Teams following Agile software development processes or employing Design Thinking methodologies are usually small compared to more traditional approaches. Members collaborate closely via continuous and informal interactions rather than via large formal documents and schedules. This kind of collaboration is difficult to achieve in distributed settings, for example, when trying to gather expertise from team members. We plan to use and improve our extended software development process in order to design and implement new ways of communication that enable distributed teams to collaboratively immerse in their tasks and that allow efficient and effective information exchange regardless of their geographical location.
We will both improve the tools we have developed so far, such as ProjectTalk for managing user stories and planning activities collaboratively, and expand our tool suite as necessary and desirable for improved interaction. We aim for a solution that allows a seamless transition between asynchronous and synchronous collaboration styles and which provides support for user-specific views at different levels of detail. We will focus on communication that is essential for keeping distributed teams in sync and for allowing a high degree of transparency on their core development activities.