Papers by Damian Andrew Tamburri

Applying agile methods in large, and complex organizations requires effective status reporting to... more Applying agile methods in large, and complex organizations requires effective status reporting to external stakeholders in order to facilitate communication, inspire confidence, and allow appropriate project steering. We defined a practical model for measuring and reporting the quality, progress, and predictions of agile development towards stakeholders that are not involved in the actual development activity. To design this metrics-based reporting model, we used the Goal-Question-Metric (GQM) approach to derive a set of 11 metrics from the goals of project owners. The selection of this perspective was part of the GQM process. The defined metrics in our model are measured using mostly product backlog data. We validated the reliability, usefulness, and feasibility of the model with a case study. We show the practical value of the individual metrics, and of the monitoring method as whole.
Social debt is analogous to technical debt in many ways: it represents the state of software deve... more Social debt is analogous to technical debt in many ways: it represents the state of software development organisations as the result of “accumulated” decisions. In the case of social debt, decisions are about people and their interactions. Our objective was to study the causality around social debt in practice. In so doing, we conducted exploratory qualitative research in a large software company. We found many forces together causing social debt; we represented them in a framework, and captured anti-patterns that led to the debt in the first place. Finally, we elicited best practices that technicians adopted to pay back some of the accumulated debt. We learned that social debt is strongly correlated with technical debt and both forces should be reckoned with together during the software process.
Social and technical debt both represent the state of software development organizations as a res... more Social and technical debt both represent the state of software development organizations as a result of accumulated decisions. In the case of social debt, decisions (and connected debt) weigh on people and their socio-technical interactions/characteristics. Digging deeper into social debt with an industrial case-study, we found that software architecture, the prince of development artefacts, plays a major role in causing social debt. For example, we found that “lonesome” architects are more likely to generate debt and that “invisible” architecting might be increasing this debt. This paper discusses circumstances wherefore social debt is connected to software architectures and what can be done in response, as observed in our case-study.
Software development is increasingly carried out by commu- nities of developers in a global setti... more Software development is increasingly carried out by commu- nities of developers in a global setting. To ensure development success, one step ahead is to uncover and harmonize such communities to exploit their collective, collaborative potential. We developed a decision- tree for practitioners to uncover latent social communities in software development. This helps maintaining the quality of the development process, by monitoring its communities. Following Conway’s law, this yields better quality in the resulting software. We illustrate our decision- tree with a real-life scenario in global software development.
Communities of developers have rapidly become global, encompassing multiple timezones and culture... more Communities of developers have rapidly become global, encompassing multiple timezones and cultures alike. In previous work we investigated the possible shapes of communities for software development. In addition, we explored mechanisms to uncover communities emerging during development. However, we barely scratched the surface. We found that development communities yield properties of dynamic change and organic evolution. Much work is still needed to support such commu- nities with mechanisms able to proactively react to community dynamism. We argue that service-networks can be used to deliver this support. Service-networks are sets of people and information brought together by the internet. This paper is a first attempt at studying this research area by means of a real-life case-study in a large global software development organisation.

“Social debt” in software engineering informally refers to unforeseen project cost connected to a... more “Social debt” in software engineering informally refers to unforeseen project cost connected to a “suboptimal” development community. The causes of suboptimal development communities can be many, ranging from global distance to organisational barriers to wrong or uninformed socio-technical decisions (i.e., decisions that influence both social and technical aspects of software development). Much like technical debt, social debt impacts heavily on software development success. We argue that, to ensure quality software engineering, practitioners should be provided with mechanisms to detect and manage the social debt connected to their development communities. This paper defines and elaborates on social debt, pointing out relevant research paths. We illustrate social debt by comparison with technical debt and discuss common real-life scenarios that exhibit “sub-optimal” development communities.
Software designers constantly mediate with various stakeholders, agree with requirement engi- nee... more Software designers constantly mediate with various stakeholders, agree with requirement engi- neers and interact with coders. Software design is a socially-intensive activity. Teaching software design should be equally socially-intensive. However academic courses still lack a beneficial bal- ance between theory, practice and social engagement. This paper provides details on how we address this problem in our course on software design. The course is designed to engage students with real-life projects and using peer-review sessions within collaborative team clusters. These instruments embed the social conditions of software design within the students’ learning process. We show the effectiveness of the course by discussing student evaluations.
Abstract With the expansion of national markets beyond geographical limits, success of any busine... more Abstract With the expansion of national markets beyond geographical limits, success of any business often depends on using software for competitive advantage. Furthermore, as technological boundaries are expanding, projects distributed across different geographical locations have become a norm for the software solution providers. Nevertheless, when implementing Global Software Development (GSD), organizations continue to face challenges in adhering to the development life cycle.

In Global Software Engineering (GSE), people are organized in teams, distanced in space, time and... more In Global Software Engineering (GSE), people are organized in teams, distanced in space, time and cul- ture. Organizational research calls this interplay of people an Organizational Social Structure (OSS). Previous literature in GSE shows that its OSS is highly dynamic and unpre- dictable. This paper presents a mapping of OSS types onto GSE organizational factors, based on empirical evidence. We made two observations: first, current OSS types don’t support factors related to GSE process management and organizational efficiency (e.g. risk management, language, etc.). Second, OSSs in GSE have attributes which don’t map onto any GSE factor, rather introduce a new one, awareness management (e.g. awareness of skills to others, awareness of tasks, tasks (re-)localization, etc.). Our conclusions are twofold. First, OSSs for GSE should focus on increasing support to process man- agement and organizational efficiency. Lastly, research in GSE should include factors focusing on awareness management.

Software is crafted by engineers, according to stakeholders, and for end-users. This interplay of... more Software is crafted by engineers, according to stakeholders, and for end-users. This interplay of people is by definition an organizational social structure (OSS). Conway’s law postulates that end-products (software, in our case) mimic the OSS that produced them. However, there is no systematic way for software engineering practitioners to choose and support the OSS best fitting their problem. In this article we discuss the state-of-the-art of OSSs, and provide mechanisms to ease OSS-related decisions in software engineering (e.g. choosing the OSS best fitting the development problem at hand). Our data supports two conclusions. First, software engineering has concentrated on building software by means of project teams alone, yet these are merely one of thirteen OSS flavors observable in literature. Second, another emerging OSS should be explored for the purpose of building software: social networks. This article represents a first attempt to explore OSS-centric software engineering, that is, engineering software by choosing and supporting the OSS best fitting the problem at hand, rather than relying univocally on project teams.

Global software engineering (GSE) is a business strategy to realize a business idea (i.e. the dev... more Global software engineering (GSE) is a business strategy to realize a business idea (i.e. the development project) faster, through round-the-clock productivity. However, GSE creates a volatile and unstable process in which many actors interact together against unpredictable premises (e.g. cultural or time differences), often producing unexpected outcomes (e.g. compacting effects of distance and time). So far, Scrum has been used extensively for embarking in global software engineering, but many of the problems in Scrum-based GSE could still benefit from the usage of ad-hoc supporting tools (e.g. information continuity between timezones, cultural differences, developers awareness, etc.). Agile Service Networks (ASNs) are networks of service oriented applications (nodes) that collaborate adaptively towards a common goal. ASNs offer a way to represent GSE professionals through service-oriented “social” nodes in a “small-world” network (much like a Facebook for a specific GSE project). This paper presents a comparison between the two approaches, namely Scrum and ASNs, to determine ASN’s potentials as mechanisms to maintain awareness in GSE.

With the expansion of national markets beyond geographical limits, success of any business has be... more With the expansion of national markets beyond geographical limits, success of any business has become quite dependent on using software as a competitive advantage. As technological boundaries are expanding, projects distributed across different geographical locations have become a norm for the software solution providers. But advent of internet has not only brought new concepts and opportunities in software development but also has brought in new challenges in the way software is being delivered to the stakeholders. Nevertheless, software organizations have been facing challenges to maintain similar adherence to the development life cycle and related activities across different development sites, in Global Software Development (GSD). On the other hand, Cloud Computing paradigm is famous for its benefits like scalability, flexibility, independence, reduced cost, resource pools, and usage tracking. Software as a Service (SaaS) is a concept under Cloud Computing which ensures the provision of software on demand, replacing the way software is delivered traditionally. In this research, we list down the challenges encountered in globally dispensed software projects, and based on goals mutually shared between SaaS and GSD, we propose to exploit the SaaS characteristics and privileges to deal with GSD related challenges.

Current IT markets exhibit many constraints (e.g. budget, staff shortage, etc.). These constraint... more Current IT markets exhibit many constraints (e.g. budget, staff shortage, etc.). These constraints force IT companies to increase productivity using globally distributed manpower. Literature shows that global software development (GSD) indeed raises productivity but re- duces communication and collaboration between teams. Consequently, the risk of failure increases. To ease communication and collaboration among teams, novel engineering methods must be provided. To address this problem, we propose using Agile Service Networks (ASNs). ASNs are an emergent paradigm in which service oriented applications (net- work nodes) collaborate through agile and dynamic service interactions (network edges). Agile interaction among ASN nodes, allow mitigating distance (typical of GSD) by dynamically adapting communication and collaboration as needed. Through ASNs, GSD can be seen as a global net- work of resources (teams, documentation, knowledge, etc.) among which agile interactions allow flexible knowledge exchange and team collabora- tion. To establish feasibility of our proposal, we investigated how ASNs can support GSD. Based on existing works in the fields of both ASNs and GSD, we mapped GSD challenges on ASNs key features and devised a meta-model showing how ASNs are used to support GSD requirements.

Cloud computing is an emerging paradigm able of flexibly offering IT resources and services over ... more Cloud computing is an emerging paradigm able of flexibly offering IT resources and services over the Internet. Cloud computing’s high flexibility needs novel software engi- neering approaches, and technologies to deliver agile, flexible, scalable yet secure software solutions with full technical (e.g. QoS, service continuity etc.) and business gain (e.g. profit, corporate value, utility etc.). Agile Service Networks are themselves an emerging paradigm envisioning collaborative and dynamic service interactions (network edges) among global service-oriented applications (network nodes). We argue that Agile Service Networks can be used as a paradigm for software engineering in the cloud, since they are indeed able to deliver solutions which are both compliant to the cloud’s needs and able to harness it, bringing about its full potential. In this paper we identify requirements for the cloud, and show how these can be satisfied using Agile Service Networks.

The state of the practice in enterprise and software archi- tecture learnt that relevant architec... more The state of the practice in enterprise and software archi- tecture learnt that relevant architectural aspects should be illustrated in multiple views, targeting the various concerns of different stakeholders. This has been expressed a.o. in the ISO/IEC 42010 Standard on archi- tecture descriptions. In the same vein, the research community observed that Architecture Description Languages, or ADLs, should be developed to address stakeholders’ concerns concentrating on the use of viewpoints for their description. This notwithstanding, we notice today a prolifera- tion of ADLs impervious to these guidelines. This imperviousness creates a gap between what the IT industry requires and what ADLs can pro- vide. This gap makes it impossible for practitioners to choose and use the best-fit ADL for his/her requirements. To fill this gap, we must an- alyze the existing ADLs, and mine and make explicit their addressed concerns, views, viewpoints, and stakeholders. Such an explicit overview can provide practitioners with pragmatic information for selecting the most suitable ADL, and hence support them in the architecting process. This paper reports on initial results in this direction. Given a specific ADL (namely, DARWIN/FSP), it presents a feasibility study on the methodology mapping the concepts of the ISO/IEC 42010 on the DAR- WIN/FSP ADL.

Today’s software architecture practitioners recognize that relevant architectural aspects should ... more Today’s software architecture practitioners recognize that relevant architectural aspects should be illustrated in multiple views, targeting the various concerns of different stake- holders. Similarly, the research community remarks that architecture descriptions shall be developed to address stakeholders’ concerns concentrating on the use of viewpoints for their description. This notwithstanding, we notice today a proliferation of architec- ture description languages impervious to these guidelines. This imperviousness creates a gap between what practitioners require and what architecture description languages can provide, making it impossible for the former to choose and use the best fit description for his/her concerns.
To fill this gap, this thesis proposes the design and implementation of a Semantic Wiki to gather and relate multiple viewpoints to provide a knowledge-base to leverage the software architects’ modeling, decision making and stakeholder communication. The or- ganization, separation and classification of viewpoints provides practitioners with prag- matic information for selecting the most suitable architecture view targeted to specific stakeholder needs, and hence supports them in the architecting process.
Uploads
Papers by Damian Andrew Tamburri
To fill this gap, this thesis proposes the design and implementation of a Semantic Wiki to gather and relate multiple viewpoints to provide a knowledge-base to leverage the software architects’ modeling, decision making and stakeholder communication. The or- ganization, separation and classification of viewpoints provides practitioners with prag- matic information for selecting the most suitable architecture view targeted to specific stakeholder needs, and hence supports them in the architecting process.
To fill this gap, this thesis proposes the design and implementation of a Semantic Wiki to gather and relate multiple viewpoints to provide a knowledge-base to leverage the software architects’ modeling, decision making and stakeholder communication. The or- ganization, separation and classification of viewpoints provides practitioners with prag- matic information for selecting the most suitable architecture view targeted to specific stakeholder needs, and hence supports them in the architecting process.