What are High Performing Teams?

Building teams is a demanding, long-term work. This is especially true when the teams join the structures of the clients and business partners to co-create new value with them. The motto of ArdentCode is building high performing teams. What does it mean? This is clear – the CLEAR model is what defines our DNA.

What is the CLEAR model?

It is a simple, logical, and exhaustive definition of a high performing team that we adopted in ArdentCode based on our long-term project experience. It is an acronym of the key terms that define the attributes of an organisation and a team. It was created as a result of our analysis of our long-term project experience.

C – Culture

Strong team culture that reflects the knowledge of each other’s preferences, strengths and limitations, and trust. Healthy organisational culture is also influenced by the ability to use conflicts and then to solve them in a constructive way.  A conflict may be understood as a factor that initiates change. The culture of the team may also be a catalyst of changes in the organisation. We understand it as the acceleration of changes in teams, also clients’ teams, fostered by constant sharing of knowledge and analysing actions.

L – Learning

The ability to learn new skills, but also to draw conclusions from the activities performed and to share knowledge within the team are the pillars that are necessary to build high performing teams. As a result of the fact that the company is developing constantly and creates conditions that foster learning, our clients receive added value: the guarantee that members of the teams that enter their structures will learn the necessary guidelines or information smoothly and quickly. This guarantees efficient cooperation.

E – Effectiveness

Speaking of efficiency, it is the fourth component of the CLEAR model. Effectiveness is understood as a guarantee of the quality of our work, but also the ability to adjust the work pace and organisation in a blended team. Thanks to that, the processes of creating solutions and applications for our client are more mature, and we are able to deliver on the arrangements and obligations towards our business partners.

A – Autonomy

Autonomy is one of the attributes that are the hardest to work out and, at the same time, indispensable in efficient companies. Still, it may be achieved by combining a proactive approach with the focus on solving problems, flexibility, and business awareness. Obviously, this is not easy, yet it is worth making the effort.Clients may assume that the team will be able to cope with the problems that may arise during cooperation and that it will not require micro-management. It also allows to clearly define the needs (that the team is aware of and able to communicate) and to reduce the participation of people from outside the blended team.

R – Reliable communication  

Reliable communication is the last, but very important pillar of the CLEAR model. It is defined as multi-level communication, both inside the company or the given team, and between the client’s team and ours. It is the communication that enables a clear definition of goals, roles, as well as the scopes of tasks and duties. This category also includes documenting and reporting, because informing about progress and recording the processes in the project are an important element of communication. As a result, our clients may be certain that the cooperation will be clear and transparent.

Conclusion

The attributes of high performing teams that have been described above allow us to better understand the values and competences that we wish to develop in high performing teams. Thanks to them, we know that we are able to offer our clients not only great developers, but also to have a real influence on the organisational culture in the structures of the companies with which we cooperate. Precisely this aspect has been appreciated by our business partners for years.

The CLEAR model is also presented in form of an animation. You may watch here, on our YouTube channel.

Solo or in a team? 

Surely, everyone knows when it’s better to work individually and when to be a part of a team. It’s so obvious! Or is it? We’ve prepared a summary outlining when it’s better to work alone and when it is more effective to engage a team. For those who prefer a quick glance, we’ve got a concise graphic. And for the others, we encourage you to read on. 

I’ll handle it myself

Tasks that require deep concentration, coherence, and quick decision-making are better done independently. This way, we can avoid the burden of having to discuss or wait for decisions. Acting solo also works well when there’s a high level of responsibility for results, independence, and control over processes. Tasks that require specialized skills form a separate category for solo work. 

Let’s do it together

Teamwork is more effective for projects or tasks that demand a variety of skills. This is often due to the complexity or scale of the project. Combining the knowledge of multiple experts helps find more comprehensive and innovative solutions. Similarly, tasks that require creativity and the exchange of ideas are better suited for a team. Complex, multidimensional issues are also better tackled in a group than alone, and tasks that require a high level of engagement—when there’s a lot to do in a limited time—benefit from building a team, which significantly increases the chances of success. 

When else should we build a team? 

In our organization, we place particular emphasis on learning competencies and sharing expert knowledge within the company. This is a natural and engaging way to develop skills and strengthen team bonds, leading to a high level of mutual trust among employees. Another important value at ArdentCode is effectiveness, which we understand as the combination of high quality, the right pace of action, and proper organization of work. 

Summary

Modern organizations face the challenge of balancing the choice between individual work and teamwork. The decision which path to choose depends on the problem at hand. Another challenge for companies is finding the golden mean between the need for independence and group work, especially when many team members are seasoned experts with high qualifications. However, those considerations will be left for another occasion.

5 proven ways to burn out the best ones

Let’s set some assumptions — ideally, articles about inappropriate management practices should not exist. But our daily reality is not a utopia, and burnout issues have been described from many perspectives and in many ways. However, to show how easy it is to lead the best people on the team to have a sense of futility, we present a ready-made recipe—applying these practices guarantees negative consequences, even in the short term.

1. Guess what I expect from you

Most misunderstandings and frustrations arise from gaps in communication. They may stem from managers’ failure to define the key areas for which team members are responsible. Another threat is the inconsistency in defining roles and responsibilities. Examples? One day, give an employee the feeling that they should take the initiative and that their suggestions are valuable. And shortly after, criticize them for their engagement and reduce them to a typical do-it role. However, when the project is delayed or problems arise, blame (and responsibility) should fall on the employee.

2. If I’m not criticizing it, It’s OK—don’t you know?

The highest form of praise is the absence of criticism? Great, if you want to smother any enthusiasm and engagement within your team. Some managers assume that the only form of feedback should be pointing out elements for correction or change, forgetting how important it is to appreciate positive aspects, progress, and development. Lack of appreciation is one of the most common problems in teams. An example from our backyard is a situation where an employee devoted all their energy and skills for weeks to meet expectations within the deadline. However, they received no feedback, so they took the initiative and proposed a one-on-one meeting. When they directly asked for feedback on their performance, they received a response that can be paraphrased as: “Don’t you know that if I don’t give feedback, it means that everything is OK?”

3. Don’t bother me, just get it done

Arrogant remarks directed at team members do not reflect one’s position or competencies but rather significant communication issues. It is worth noting that when involving an engineer with a specific specialisation in a project, it is necessary to trust their knowledge and skills. Pushing for an accelerated process or ignoring information about necessary solutions may result in the project’s failure. The consequence is burnout, manifested by indifference, a sense of powerlessness, and turning a dedicated specialist into someone who just blindly follows orders.

4. I say one thing but do another

There’s a known saying: “Paper will take anything.” But the moment of truth comes when it turns out actions don’t match words. Yet, consistency and responsibility are the key traits of leaders. Here, it’s worth citing an example we encountered in one of our collaborations. Specialists from ArdentCode faced a situation where the client’s representative often suggested ideas without specifying requirements. Changes in expectations, requirements, and vision were also frequent and unjustified for the project. Employees who were involved in this collaboration experienced a lack of stability in decisions. This created concerns since one of a leader’s roles is to provide a sense of stability and security, which are essential in effective and productive team work.

5. What are you saying? You’d better look at yourself

Gaslighting[1] may occur not only in romantic relationships but unfortunately also in professional situations. It’s enough to conduct conversations in a way that instills doubt in the recipient about their maturity, experience, skills, and knowledge. A representation of this status may be a situation where a specialist (yet again) takes the initiative to talk about the team’s situation, project, and the communication style of the project manager. To quickly and efficiently destroy their commitment, just do not accept the criticism backed by specific arguments (constructive criticism). To defend yourself, throw in something about a personal attack and lack of professionalism.  In this way, you will stir up guilt in the employee attempting to change the situation and admit that the problem indeed lies with them.

Summary:

Each of these attitudes will negatively affect the team. Combining them practically guarantees quickly burning out even the resilient and ambitious employees. The ironic tone of this article should not overshadow its real message — that the behaviour described above indicates a lack of leadership skills and improper selection of management methods. At ArdentCode, we place a strong emphasis on effectively preventing burnout among team members, even if they are affected by a negative style of collaboration with clients. We will write about these methods in our future materials.


[1]https://www.newportinstitute.com/resources/mental-health/what_is_gaslighting_abuse/

The role of the CTO in building high-performance development teams

The role of the Chief Technology Officer (CTO) in building high-performance development teams is becoming more and more important. One of the tasks of the CTO is managing technology and innovation. Apart from that, he or she shapes the work culture, implements effective practices and selects tools that support team effectiveness.

To effectively manage high-performing teams, the CTO should focus on certain key areas. These include implementing Agile and DevOps practices, using tools for collaboration and communication, and fostering a culture of innovation and continuous development.

1. Implementing Agile and DevOps practices

Agile and DevOps practices are the cornerstone for building high-performing development teams. Agile focuses on iterative development and regular adaptation to changing requirements. As a result, it allows teams to respond quickly to changes and adapt the product to the customers’ needs. DevOps, on the other hand, integrates development and operations teams, automation and continuous integration that make software delivery faster and more reliable.

According to The 15th State of Agile Report from Digital.ai and the 2021 State of DevOps Report from Puppet’s, both Agile and DevOps practices will evolve to further support remote working. What is important, according to the DevOps report, in 2010 only 10% of organizations had highly developed DevOps practices, while in the report of 2021, this number increased to 18%. This shows how much opportunity and growth prospect there can be for companies that, like ArdentCode, offer these practices to their business partners. At the same time, implementing DevOps in partnership with customers allows to save the time required to implement needed changes. 

2. Using tools for cooperation and communication

Effective collaboration and communication play an important role in building high-performing teams. The CTO should take care to implement tools for project and code version management, source code management, progress planning and verification, and testing. Below is a list of suggested tools., Most of them are used daily at ArdentCode:

– Architectural decisions that span more than a single task can be recorded in shared documents, created for a collaborative environment. These include solutions offered by Google Workspace, MS 365 or Atlassian Confluence;

– Source Control Manager (SCM), which supports the team’s code review process, is crucial for information flow and communication. Examples of tools that support this process include: Bitbucket, Azure DevOps, GitHub or GitLab. 

– Bug tracking system reduces the work time of Project Managers and more experienced developers on the team. The most popular and intuitive tools in the industry include Asana and Jira, as well as tools that come with GitLab and GitHub. 

– New solutions require an environment that allows them to be built and tested in a way that is accessible and understandable to the organization. Hence, the need for a CI/CD environment. It should be well integrated with progress planning and source code management tools. Examples of this class of solutions include CircleCI, Bamboo Data Center, Azure DevOps, GitHub, GitLab, Jenkins, TeamCity, and Travice CI.

From the point of view of the CTO and the company, these tools should be interconnected to facilitate workflow and communication across the organization.   

3. Promote a culture of innovation and continuous development

Promoting a culture of innovation and continuous development is a key aspect of the CTO’s role. High-performing development teams need an environment that fosters experiments and implementing new technologies and methodologies. The CTO should support his or her employees by providing them with access to training, workshops and the latest educational resources to help them develop their skills and knowledge.

Investing in the professional development of employees and promoting innovative thinking improve team engagement and satisfaction. This translates into better company performance, as confirmed by numerous studies. Analyzing the satisfaction and key talents of individual team members also has a positive impact on understanding their natural aptitudes and limitations. There are many tools and methodologies to support such research and talent development in teams. The most popular ones are CliftonStrengths™, DISC, MBTI (Myers-Briggs Type Indicator), and Hogan Assessments.

At ArdentCode, we use the CliftonStrenghts™ survey, also known as the Gallup Test, to assess talents both individually and in teams. Such knowledge makes it easier to decide which talents may be missing from the team and which are secured. This, in turn, makes it easier to manage the planning and work of the team. The CTO, by creating such an environment, not only motivates the team to achieve higher results, but also ensures that the company remains competitive in the market.

Summary 

The role of the CTO in building high-performance development teams is extremely complex. It requires the ability to manage both technology and people. It seems that the latter aspect, i.e. working with the people using the tools, can determine the success or failure of the CTO. Since it is people who use the tools and technology, at the same time, through communication, they develop them and make improvements. It is the people who make up the commitment and effectiveness of the company. And these values, especially in an environment as complex and dynamic as IT, can give an organization a competitive advantage. 

The role of the CTO at different stages of a company’s development and financing

An effective Chief Technology Officer (CTO) understands very well the need to evolve his or her role through the successive stages of a company’s development. These are often directly related to successive rounds of financing.

Seed Stage (Seed phase): Foundations and vision

In the seed phase, the CTO plays a key role as a builder of the company’s technology foundation. During this phase, the CTO often serves as the founder or chief technology officer, who is responsible for:

Challenge: Balancing technology development with limited financial resources.

Series A: Scaling up and formalizing

Once Series A funding is secured, the CTO’s role becomes more organized and defined. At this stage, the CTO focuses on:

Challenge: The CTO manages growth and ensures that technology supports the company’s strategic goals.

Series B: Expansion and innovation

In the Series B round, the CTO’s role involves a broader range of responsibilities, including:

Challenge: Focus on innovation while managing the company’s growing structure.

Series C: Operational scaling and preparing for an IPO

At the Series C stage, the CTO plays a key role in:

Challenge: Managing large-scale technology and preparing the company for future challenges.

Pre-IPO (pre-IPO): Growth readiness

In the IPO preparation phase, the CTO’s role includes:

Challenge: Ensuring that technology and operations are ready for the big changes and challenges of an IPO.

Summary

For mature CTOs, understanding the role and challenges of each stage of financing is critical to successfully leading a technology company. From the seed stage to pre-IPO preparations, the CTO’s role requires constant adaptation and strategic thinking to support the company’s growth and help achieve its goals. It’s also worth remembering that the key and most difficult transition is from the role of a hands-on technical leader and visionary to an agile C-level leader.

Case Study

Improvement of Legal Research: 

ArdentCode’s DevOps Transformation for Wolters Kluwer’s VitalLaw

Introduction:   

ArdentCode partnered with Wolters Kluwer to upgrade their flagship legal research platform – VitalLaw (former Cheetah™). It was a challenge to introduce DevOps practices to a large-scale, multi-year project. ArdentCode aimed to increase frequency of production deployments and lower the time needed for change implementation. 

Focus: 

Objective:  

Enhance the development process for VitalLaw, while maintaining the highest standards of security. 

Needs: 

  1. Increase frequency of production deployments and lower the time needed for changes implementation 
  2. Introduce DevOps practices to VitalLaw – large scale, multi-year project 

Approach: 

  1. Continuous Integration: Through DevOps practices, ArdentCode team was able to change production deployment from two months to bi-weekly production releases. This change also gave a possibility for daily deployments. 
  2. International blended team creation: ArdentCode used DevOps tooling and practices across teams in the USA, Europe, and India, facilitating collaboration and efficiency. 
  3. Process improvement: The adoption of the Scaled Agile Framework (SAFe) enabled smoother development processes and enhanced agility. It was conducted in accordance with the client’s internal processes. Needed improvements were also enhanced.
  4. Testing and verification: There was a need to test the application in a different way – it was a basic need of the project.  The goal was to reduce testing time. We changed the scope of testing to automatically test only the areas touched in the code.  As a result, instead of testing in a few working days, we were able to deliver some changes in a few hours, with testing taking much less time once the changes were made. The number of e2e tests was reduced to each release, integrating with external applications to support testing.  

Key changes

Results: 

  1. Accelerated deployment: Deployment frequency increased from 2 months to 2 weeks, with the ability to deploy changes on a daily basis. 
  2. Changes in shortened time: Teams were able to deliver required changes more quickly. 
  3. Agility: Every code change (Pull Request, Merge Request) is a potential release candidate. 
  4. Rollback on demand: Rollback to previous version on demand  
  5. Improved stability: Less number of regression bugs. Higher confidence in the release quality. 
  6. Comprehensive tooling: DevOps tooling and practices were successfully integrated across all collaborating teams, enhancing collaboration and efficiency. 
  7. Security and elevated performance: ArdentCode ensured rigorous security and performance verification, maintaining the highest standards for VitalLaw. 

Conclusion: The adoption of comprehensive DevOps practices by ArdentCode resulted in a significant change, thanks to the reduction of deployment timelines from months to weeks, and the introduction of daily deployment capabilities. The operational shift not only accelerated change delivery but also fostered a culture of agility, where every code change became a potential release candidate, enhancing adaptability and responsiveness within the organization. Moreover, the emphasis on rollback capabilities and the observed decrease in regression bugs underscored a commitment to stability and quality assurance, reflecting a pragmatic approach to software development that prioritizes efficiency and reliability.  

Sustainable team growth 

Concluding our series, this article is the final installment of a three-part series on building high-performance software development teams.

Achieving success is one thing; sustaining it is another. In this final installment, we’ll explore strategies for sustaining success and fostering growth within software development teams for a long-term success and continued innovation.

Nurturing talent

To achieve the growth and development of team members, companies need to invest in them. How? By providing opportunities for learning and advancement, mentorship programs and access to resources that foster professional growth. By nurturing talent from within, organizations cultivate a culture of continuous improvement and innovation. To prove the foregoing, at ArdentCode we have experts who have worked in the IT industry for over 15 years, which is meaningful, indeed.

Staying agile and adaptive

Today, agility is key. It is important to encourage a team to embrace change, adapt quickly to new technologies and market trends, as well as continuously iterate and improve their processes. By staying agile and adaptive, teams can respond swiftly to challenges and capitalize on emerging opportunities.

Leading by example

Being a leader forces us to lead by example. What is also important is to present the values and principles not only on paper, but also in daily working with a team, fostering a culture of transparency, communication and collaboration, providing a role model to employees. At ArdentCode annual feedback and review is created not only for the team, but for the board members and leaders, too, because there is always an opportunity to make changes. 

In summary, sustaining success and fostering growth within software development teams requires a multifaceted approach that encompasses talent development, diversity and inclusion, agility, leadership and resilience. By implementing these strategies, organizations can build teams that do not only achieve success in the short term, but also thrive and innovate in the long run, ensuring continued growth and success in an ever-changing digital environment.

Our series on building high-performance software development teams has emphasized the essential components of strategic recruitment, continuous growth, shared vision and collaborative culture. These elements are the key to empowering teams to navigate challenges, foster innovation and attain remarkable outcomes. By prioritizing creativity, sustainability and long-term success, organizations can cultivate thriving software development teams ready to flourish in today’s ever-evolving digital realm.

Team innovation strategies

Continuing our exploration, this article is the second installment of a three-part series on building high-performance software development teams.

In this article, we’ll explore the pivotal role of creativity in software development teams and uncover strategies for igniting innovation and pushing the boundaries of what’s possible.

Creating a culture of innovation

A culture of innovation begins with leadership. It is important to cultivate an environment where experimentation is encouraged, failure is viewed as a learning opportunity and bold ideas are celebrated. By fostering a culture of psychological safety and autonomy, teams feel empowered to explore new possibilities and challenge the status quo. 

Fostering idea sharing 

Cross-functional collaboration brings together diverse perspectives and skill sets, fostering creativity and driving innovation. It also creates opportunities for encounters and sharing knowledge in order to spark new ideas and solutions. At ArdentCode we have a history of great solutions for our clients, thanks to our creative and out of the box thinking culture.

Providing resources and support

Teams need to be equipped with the resources and support they need to innovate effectively. We provide them with the access to modern tools and technologies, allocate time for experimentation and exploration and offer support and guidance from the leadership. By removing barriers to innovation, teams can focus on pushing the boundaries of what’s possible. At ArdentCode we take care of this area by organizing ArdentAcademy workshops, regularly reviewing the progress of the qualification and creating a space to produce our own solutions or apps. 

Celebrating successes and learning from failures

There are different styles of celebrating successes – official congratulations, team celebrations in the office or informal dinners with attractions, such as carting or bowling. At ArdentCode we celebrate in different styles, but always taking care of creating a moment to say “thank you” to people who are involved in projects. What is also important, failures are treated as an inevitable part of the innovation process. Furthermore, we believe they are an opportunity for growth and change. Via the encouragement to experiment and learn, we present harder moments as lessons needed to create future success.

In conclusion, fostering creativity and innovation within software development teams is essential for staying ahead in today’s fast-paced digital landscape. By creating a culture of innovation, providing resources and support, as well as celebrating successes while learning from failures, organizations can unlock the full potential of their teams and drive groundbreaking solutions. In the final installment, we’ll explore strategies for sustaining success and enhancing growth within software development teams for a long-term success.

Pillars and vision 

This article is the first of a three-part series on building high-performance software development teams.

Building strong teams 

Crafting a high-performance software development team isn’t just about assembling individuals; it’s about building units driven by shared goals and mutual respect. This article embarks on a journey to unveil the intricacies of team building in the tech domain.

Establishing the pillars:

A strong team starts with hiring the right people. Look for individuals who not only have technical skills but also embody our company’s values, such as adaptability, collaboration, and a passion for learning. These qualities, along with their expertise, lay the foundation for success. At ArdentCode we’re not afraid of spending as much time and effort as it takes to find people who will go beyond just their ability to code, having the right attitude and flexibility to fit the teams and help us pull them up to a new level.

Nurturing growth:

Thanks to training programs and mentorship, team members are motivated to expand their skill sets and stay abreast of industry trends. That’s why we organize workshops, training, courses within ArdentAcademy and offer employees individual budgets for learning outside the company.

Aligning vision:

Defining clear objectives and communication of the company’s mission and values is important to connect companies’ goals and team members’ satisfaction. When every person understands the role in the larger narrative, collaboration flourishes and collective efforts propel the organization towards its goals.

Fostering collaboration:

Open communication, trust and a feedback culture provide an opportunity to create a mature and effective work environment. Encouraging brainstorming, cross-functional collaboration and knowledge sharing is the key to harnessing the collective intelligence of the team. At ArdentCode, we have weekly meetings to share knowledge and information from the industry, as well as biweekly sharing of a list of links to interesting publications.

In conclusion, at ArdentCode, we see building a high-performance software development team as crafting a harmonious symphony. It requires strategic recruitment, ongoing growth, a united vision and a culture of collaboration. By nurturing these elements within our organization, we enable our teams to tackle challenges, foster innovation and achieve impressive outcomes. 

In our upcoming article, we’ll explore ways to inspire creativity and innovation within the team, sparking the ideas that lead to great solutions.

High-performance blended teams – how to start 

Hundreds of articles have already been written about what are the motivations for opening up to outsourcing. The strongest shaping arguments are cost reduction, access to highly qualified specialists and flexibility in the broadest sense. However, it is worth leaning into the process of forming blended teams itself. 


Blended, which means? 

Let’s define what blended teams are. For “blended” does not simply mean a mixture of components, but a completely new combination. The term, taken from everyday language, captures well the idea of creating teams from at least two organizations. Thanks to the intermingling of experience, knowledge and skills, the competence of such a team becomes much higher. By interacting with each other, the resulting cooperation results in an unavailable “alone” result of solutions and increased competence[1].  

Maturation

It is also not insignificant that blended teams, by interpenetrating each other, mature and create a completely new quality. Maturity in the context of technology teams means very high competence, calmness, and experience. And the realization that every difficulty can be solved over time. If only, to write completely new software or applications that respond to the needs specified in the project.

Foundations

The selection of people, forming mixed teams, is the foundation for creating high-performance teams. Involvement in recruitment, proper preparation for it and identification of needs, increases the chances of later success in building a new team. Both competence and certain personality traits are important. This influences the maintenance of values relevant to the entire organization. Collaboration between teams where the foundation has been taken care of allows the development process to run smoothly. 

Communication

For performance appraisal to be implemented, it is necessary to develop a project foundation and process. At this stage, the permeation of experiences can determine the success of cooperation. By opening to ideas, comments, and suggestions from an external, experienced partner, the client can receive solutions that surpass initial assumptions. At the same time, the phase of findings, briefs and debriefs is – albeit somewhat time-consuming – needed to finalize what situation will be evaluated positively. A service provider with international, corporate experience – even on the scale of a few or a dozen people in a project – can shed light from a completely different perspective and influence the outcome. All this to support the client’s success and enrich its know-how.

Performance – communication or skills? 

The effectiveness of the cooperation can be assessed already during the collaboration, which is facilitated by feedback sessions and status meetings. A focus on partnership and mutual respect lay the groundwork for creating a situation in which the team joining the client feels a sense of responsibility for achieving the goals. This is a desirable situation, as productivity and commitment naturally increase when team members feel part of the overall project[2].  

Summary

Recognizing that the groundwork for forming high-performance blended teams begins long before establishing a business relationship is essential to developing the concept. There is a huge difference, between body leasing, typically in simple service outsourcing, and developing team competencies internally. This can be achieved by inviting qualified, experienced, and committed professionals to join the team. This is the business model in which ArdentCode operates, basing cooperation with clients on the flow of knowledge and skills, taking care to secure know-how inside the clients’ structures.


[1] https://www.mckinsey.com/capabilities/people-and-organizational-performance/our-insights/beyond-hiring-how-companies-are-reskilling-to-address-talent-gaps [2023-11-18] 

[2] https://your.yale.edu/we-know-teamwork-important-how-important [2023-11-27]