Introduction
Historically, the definition of “success” in software development projects has varied significantly depending on the stakeholder’s perspective. However, there seems to be an inclination to evaluate software development projects at the product and execution levels. On the product level, scope attainment, specifically functionality and quality, have been the primary criterion for project success. On the execution level, adherence to budget and schedule had dominated success evaluations. While internal project characteristics, both product and execution, dominated the perception of “success” and its evaluation, there is some recognition of external factors, such as customer satisfaction. Perhaps achieving a balance between internal efficiency and external stakeholder expectations is what “success” should be.
Regardless of the definition, decades of research show that team dynamics and qualities can sway project outcomes. Whether success is about productivity, efficiency, quality, or scope attainment, at the end of the day, it’s the team that would invest the effort to meet these expectations. Research on teamwork reveals that successful teams are psychologically safe, foster shared accountability for the outcomes of their endeavor, exercise reflective practices to facilitate continuous learning and improvement, and embrace diversity and inclusion, among other things. In this article series, we will learn how these team qualities foster a high performance environment and why they are relevant in the context of software development.
Psychological Safety
The concept of psychological safety (PS) was introduced back in the 1960s in Schein and Bennis’ seminal work [9]. They posited that PS is crucial for fostering an environment where individuals feel secure and adaptable to evolving organizational demands. A quarter of a century later, Edmondson rekindled interest in the concept [3]. Psychological safety is defined as:
The ability of individuals to display and engage themselves without fear of negative consequences to one’s self-image, position, or career [8].
PS is the shared belief among team members that it is safe to take interpersonal risks in the workplace [4].
In psychologically safe teams, individuals feel confident that they will not be rejected or blamed by other team members for speaking up, making their views and opinions known, feeling that it is safe to experiment and take risks, and trusting that their peers will engage in constructive dialogue when conflicts or confrontations arise [4]. Drawing on these arguments, research has shown that PS positively affects various outcomes, including learning and higher performance, increased productivity, and team efficiency. In software development teams, PS was linked to improved quality-related behaviors in teams, and complementing agile practices. In dedicated articles on this topic, we will discuss how to foster PS in software development teams, how it enhances team efficiency and productivity, how it promotes quality-related behaviors in the pursuit of better software quality practices, and more.
Shared Accountability
Throughout history, accountability has been acknowledged as an enabler for the survival, stability, and longevity of social systems. Greek philosophers, such as Aristotle, Plato, and Zeno discourses have shown interest in the concept within the context of justice, punishment, and social control. Observations in modern literature link accountability to the efficient functioning of organizations, including their various social systems. Organizations implement accountability mechanisms to reduce the uncertainty inherent in human behavior and establish a more predictable pattern of activity. Accountability is defined as:
The expectation of being held responsible for one’s actions and the need to provide explanations and reasoning for such actions to others in the future [5].
Software development takes place in social systems, either confined to a single team or it may extend beyond its boundaries. The absence of accountability in a social system may result in individuals, teams, and organizations acting with little regard to the consequences imposed by others, including the broader society. The information technology (IT) and software engineering industries are not exempt of accountability failures either. For example, the Boeing 737 MAX software issue and Healthcare.gov launch can be attributed to some extent to a lapse in accountability. Both crashes of the Boeing 737 MAX in Indonesia in 2018 and Ethiopia in 2019 were linked to the MACS software [7].
Decades of research on the topic have demonstrated that perceptions of accountability contribute significantly to the effectiveness of individuals and teams, a greater degree of alignment with organizational goals, psychological empowerment, and enhanced performance. In dedicated articles on this topic, we will discuss various mechanisms used to foster accountability and how it evolves in software development teams from an individual sense of accountability to a collective or shared accountability. In addition, we will learn how various individual and team traits influence a sense of shared accountability for the team’s outcomes.
Reflective Practices
Reflection aims to facilitate learning from experience. The essence of reflection is to actively engage in a process to gain perspective on one’s own actions and experiences. The aim of this process is to analyze those experiences rather than merely living through them. By cultivating curiosity and a willingness to explore our actions and experiences, we unlock the potential for intentional learning, not only as individuals, but also as a team or even an organization. This learning stems not from books or experts but directly from our own work and lived experiences, successes, and failures.
Reflection entails actively observing and analyzing one’s own experience to gain a deeper understanding of how to constructively translate it to learnings. Then, ultimately engage in activities to improve based on the reflection exercise [1].
Improved outcomes have been associated with reflective practices, particularly when they are more defined and targeted. Researchers have also linked reflective practices to enhanced team confidence, the adoption of innovative practices, and improved engagement among team members. Teams intrinsically promote emotional intelligence and openness through reflective practices. By reflecting collectively on experiences, individuals intuitively adopt a more inclusive, open-minded, and empathetic approach. In future articles, we will draw from the literature on the topic to discuss how to implement reflective practices in software development teams effectively.
Diversity and Inclusion
Diversity simply means being different. Humans have always been different, one from the other; yet its definition remains somewhat difficult. This is simply because many dimensions of diversity are not visible, evident to categorize, talk about, or articulate. Another challenge in defining it is its selective nature and context dependency. Some diversity dimensions can be strong indicators that others are different. However, this is not always the case for traits such as accent, physical abilities and cultural background. As a result, individuals cannot be defined as “different” in isolation, but rather only when compared to others in their environment. Still, scholars proposed a definition:
“The similarities and differences in such characteristics as age, gender, ethnic heritage, physical abilities and disabilities, race and sexual orientation among the employees of organizations” [6].
Recent research on the topic shows that by creating an inclusive environment, employees are more inclined to innovate, flourish, and reach their fullest potential. Diversity also fosters positive intergroup relations, leading to heightened engagement and improved individual and organizational performance. In articles dedicated to this topic, we will discuss recent research findings on inclusion and diversity in software teams and its effects. For example, some studies report that diversity in software development teams leads to improved creativity and problem-solving, as employees with different backgrounds and experiences bring unique perspectives to the table.
In conclusion, in this article series, we will learn that relying solely on technical tools and processes to pursue success in software development is not a reliable strategy. Bringing social strategies together to combine both is far superior. Research on teamwork for decades has demonstrated the importance of the social context and the need to address human and social needs in the software development environment. For example, recent efforts at Google to understand what makes team high performers show that psychological safety is a human need; once contented, teams respond with an array of behaviors conducive to improving their performance [2]. For decades, innovation in software development has been steered towards the technical aspects, including the processes and practices we use to deliver software products. Even though acknowledgment of its socio-technical interdependence has been growing, creating awareness for the social aspect is timid. In this article series, we will put emphasis on “socio” in socio-technical.
References
- J. Amulya. What is reflective practice. Center for Reflective Community Practice, Massachusetts Institute of Technology, Cambridge, MA.[Online]. Available at: http://www. itslifejimbutnotasweknowit. org. uk/files/whatisreflectivepractic e. pdf [Accessed 15 April 2009], 2004.
- C. Duhigg. What google learned from its quest to build the perfect team. The New York Times Magazine, 26(2016):2016, 2016.
- Edmondson. A safe harbor: Social psychological conditions enabling boundary spanning in work teams.Research on managing groups and teams: Groups in context, 1999.
- A. Edmondson. Psychological safety and learning behavior in work teams. Administrative science quarterly, 44(2):350–383, 1999.
- D. D. Frink and R. J. Klimoski. Advancing accountability theory and practice: Introduction to the human resource management review special edition. Human resource management review, 14(1):1–17, 2004.
- R. W. Griffin and G. Moorhead. Fundamentals of organizational behavior: managing people and organiza- tions. Recording for the Blind & Dyslexic, 2007.
- P. Johnston and R. Harris. The boeing 737 max saga: lessons for software organizations. Software Quality Professional, 21(3):4–12, 2019.
- W. A. Kahn. Psychological conditions of personal engagement and disengagement at work. Academy of management journal, 33(4):692–724, 1990.
- E. Schein and W. G. Bennis. Personal and organizational change through group methods: The laboratory approach. New York: JohnWiley and Sons. Inc, 1965.
Author: Adam Alami
Adam Alami is an assistant professor with Aalborg University, Denmark. He has broad experience in information technology practices. His career began in software development, before progressing to include business analysis and project management. Involvement in major IT transformation projects has for twenty years been the mainstay of his work. His chosen fields of research fit within the broad topic of cooperative, social, and human aspects of software engineering. He has a keen interest in business analysis and contemporary software development practices. He holds a PhD degree in Computer Science from the IT University of Copenhagen, Denmark, a Master degree in Computer Science from the University of Technology (UTS), Sydney, and a Bachelor degree in Software Engineering from the Université du Québec à Montréal. Email: [email protected]. Twitter: @AdamAlamiDK.