Master 2017 2018
Stages de la spécialité SAR
sCoDev : Smart and Agile Collaborative Development Environment


Lieu : UPMC/LIP6
Encadrant : Reda Bendraou et Julia Lawall
Dates :20/02/2017 au 20/08/2017
Rémunération : 554.40 euros + 35 euros de remboursement des frais de transport
Mots-clés : Master SAR, autre qu’ATIAM

Description

Context and goals

sCODEV(Smart Collaborative Development Environments) In the context of agile development processes and teams, one challenging aspect is finding the optimum resource allocation (i.e. assignment of developers to tasks). Indeed, usually this is done using variety of strategies such as random allocations, first came first served, whether the developer worked on the task the day before, depending on his skills and expertise, if his code passes the tests successfully (ratio), combining some of these allocation ways together, etc. In order to identify the best strategy for resource allocation, a first and critical step requires defining formally the notion of expertise of a developer. Yet another aspect that we believe to be very important is the notion of developer’s Fluency which represents his ability to complete project’s tasks rapidly and accurately independently of task’s difficulty or importance. Fluency is a broader definition of expertise which may include time spent on the project, quality of the delivered code, and most of all, the global knowledge of the developer on the different modules/components of the application. This global knowledge grows as the developer is assigned to activities that are central to the project. All in all, it introduces the notion of activity’s Centrality which in our view worth taking into consideration for an optimum resource allocation but most of all, for achieving the third aspect which is Scaling-up the development team. Indeed, we assume that introducing different components to the developer through process’s activities could raise the global expertise of the team and make it aware of the impact of each modification on the other components. It also makes it easier replace a developer in case he leaves the team (keeping in mind that this usually takes longer to integrate a new resource to the team).

Ideally, our vision is that a company could simply plug sCODEV to their repositories (code, bug trackers, tests, etc.), inputs the process model with a set of annotations on the tasks (goal, required expertise, complexity, centrality, etc.), same thing on process’s artifacts (importance in the project, link to the global architecture, link to the requirements, etc.) and start the process. sCoDev will be then in charge of :

Mining the right developer for the right task and assigning the tasks. Constantly learning how to better identify the best resource for a given task by taking into consideration the results of the tests, how the developer’s fluency grows with time and the notion of Centrality. We believe that fluency is a dynamic data and the result is constantly evolving according to how the project goes. Depending on the project duration, calculate the best way/resource allocations to scale-up the team. Indeed, some work in the literature demonstrated that it may take 6 to 36 months for developer to scale-up depending on the project’s complexity. So if the project is about to last for 24 months and according to the complexity of process’s activities and the resource in hand (fluency), what would be the best allocation ? And of course, as mentioned earlier, constantly proposing guidance to developers and managers for a better monitoring of the process.

Expected Contributions

The idea is to provide a smart collaborative platform for software process development focusing on the following aspects :

Instant developer guidance through the different steps of the process and intelligent monitoring facilities for project managers. Optimum resource assignments on process’s activities i.e., the right skills for the right activity. Scaling-up development teams to reach a global maturity level in general and in the context of a specific project in particular

Realizing these objectives will raise many challenging issues and set research objectives that we want to explore in the near future. Probably the more challenging one is formally defining the different parameters (Centrality, Fluency, etc.) and interfacing them with the different repositories and data sources of the development team, as well as with the process model. This is the objective we want to achieve in the context of a Master 2 Internship at LIP6.

A second objective would be to propose an approach for scaling-up teams. This could take the form of an algorithm, a set of heuristics, and/or a mathematical formula taking into account the above mentioned parameters. We believe that a more rational resource allocation will improve the quality of the delivered product, as well as reduce the development time and process’s costs. Demonstrating these assumptions would be also another challenging goal. At this aim, an ANR proposal was submitted a month ago.