Social Human-Centric Tools for Software Development

Rapid shifts in market needs, changes in customer tastes, and constrained resources have led software development practices towards collaborative production and global software engineering . In order to enable, coordinate, and manage these development paradigms, new communication and collaboration techniques have emerged. Collaborative development environments like IBM Jazz, software project portals such as GitHub and Google Code, and developer forums like CodeGuru are examples of the many tools that are built for this purpose. Although all these technologies recognize the need for integrated inter and intra project communication, each is only limited to communication w.r.t. a specific development task, e.g., bug tracking, project coordination, and task management. Even in platforms such as 37signals, that integrate a few of these tasks, collaboration is still based on an artifact-centric task-oriented strategy. In other words, only software artifacts and tasks are considered as central and despite having significant effect on collaboration and communication, no reflection on the impact of social influence mechanisms on the software development process is made; therefore, the “developer” is often regarded as a mere mechanical actor. This is despite the fact that software developers, as human beings, are influenced by psychological and social stimuli present in the development environment, which can influence the outcome of the development process. The lack of proper attention to the social and psychological characteristics of the developers can lead among others to destructive affective attachments, fading sense of belonging and ownership, and low motivation for self- regulation and performance improvement. Thus, we propose to build and evaluate a social tool with supportive techniques for re-structuring the collaborative development process in such a way that software artifacts and tasks are organized around the social goals and interactions of the developers; hence, adopting a social human-centric strategy (where tasks and artifacts surround community of developers) rather than an artifact-centric task-oriented one (where individual developers are assigned to tasks and artifacts). Like Google, we believe in this key premise that “focus on the user and all else will follow.”


Athabasca University