Creating and running high-performance engineering teams
Listen on the go!
|
There is a German proverb that says, “To aim is not enough, you must hit!” One might aim for excellence, but hitting the target is a whole another story.
Traditionally, teams measure their performance against the metric of speed. As a matter of fact, speed is one of the key factors causing the widespread adoption of Agile and DevOps. Gargantuan projects run on waterfall used to stretch for years, often going over budget and failing to deliver on time. Therefore, to improve performance and to resolve these issues, speed or velocity emerged as the obvious non-functional requirement. The faster the releases are done, the better the performance, right?
Well, wrong!
Often, the need for speed seems to dominate the essentiality of quality in a software. The software development teams compromise with the overall quality of the release only to match the determined criteria for speed. Doing releases in the desired timeframe might appear to be a qualified metric for performance assessment, but in reality, it is highly superficial. If the quality is not up to the expectations, it will create negative customer experiences and consequently, impacts business reputation. Speed could be an appropriate metric to measure maturity but falls short when it comes to determining the value it offers to the end–users.
Forrester, in their latest report on “Predictions 2020: DevOps”, emphasized that business value will overtake velocity as the preferred metric among the DevOps teams. Now, it will no longer be about how fast you are delivering. It will be about how well you are delivering. The analyst predicts, “DevOps teams will increasingly prefer outside-in metrics such as improved sales, revenue, client retention, and customer satisfaction to the inside-out measure of velocity.”
Such a critical shift awakens, rather necessitates embracing a performance engineering approach to ensure greater value to all the stakeholders. For creating high-performance software applications, high–performance engineering teams are required.
What is a high-performance engineering team?
Professor Leigh Thompson defines a team as “a group of people who are interdependent with respect to information, resources, knowledge, and skills and who seek to combine their efforts to achieve a common goal.“
The performance engineering approach in software development shifts the focus on continuous quality. Performance engineering teams test the software applications proactively and pre-emptively. They make sure that a software application performs high against the non-functional requirements.
There are some differentiating and defining characteristics which separate a general team from a high-performing team:
- Trust and accountability: High-performance teams are built on a culture of trust and accountability, where every member can openly express their ideas.
- Resilient mindsets: Such teams know how to navigate around changes efficiently.
- Clear and shared vision: The whole team share a common vision and work toward a common goal.
- Smooth communication: A high-performing team ensure that information is communicated timely and clearly to every member
- Higher engagement: Each member shows active participation while ensuring that everyone in the team is involved.
- Unambiguous metrics: High-performance teams have clear metrics set for them. This helps them understand whether or not they are going in the right direction.
- Early conflict resolution: A team delivering high performance does not let bad conflicts brew among them. They welcome disagreements and resolve conflicts as soon as they occur.
- Constructive feedback: Constructive criticism is encouraged and used to improve their existing performance.
How to create a high-performance engineering team?
Bruce Tuckman proposed a forming-storming-norming-performing model of team development. According to Tuckman, each of these stages are essential for a team to grow, face challenges, tackle problems, find solutions, plan work, and deliver results. These stages involve:
- Forming: Co-creation of clear team goals and a team charter that defines how they plan to work together
- Storming: Establishment of team processes, swift resolution of conflicts, normalization of disagreements, and relationship building among team members
- Norming: Empowerment of team members for taking ownership and responsibility for progress towards the goals
- Performing: Acceleration of growth through continuous team engagement and development of individual members
Which is the best leadership style for building and running high-performance engineering teams?
There are three key leadership styles that are suitable for running high-performance engineering teams:
- Servant Leadership: Servant leaders have a natural desire to serve, which makes them consciously choose their aspiration to lead and help others grow. Robert Greenleaf said, “This is my thesis: caring for persons, the more able and the less able serving each other, is the rock upon which a good society is built.” And, this is how high-performance engineering teams thrive.
- Transformational Leadership: Having a strong belief in their followers, transformational leaders inspire, empower, and stimulate them to exceed their normal levels of performance. A strong and stable transformational leadership is essential to drive an organization through a change successfully.
- Situation Leadership: Situation leaders adapt or evolve their leadership styles as their followers grow in their levels of development. This is about changing the way of leading based on whether the followers are at a stage where they need ‘high directive and low supportive’ behavior from their leaders or they can successfully complete what they are delegated through a “low directive and low supportive” behavior.
To sum up
A performance engineering approach ascertains excellent performance and ultimately high value for the end-users. By ‘shifting-left’ and testing continuously, performance engineering teams can ensure impeccable software quality. For the performance engineering teams to become a high-performing one, they need to define clear metrics for software quality, such as committed stories, production incidents, user experience, release quality, response time, defect density, among others.
Join Edson Ferreira, Head of Engineering at Lloyds Banking Group, for a deep-dive session on building and running high-performance engineering teams. Edson will talk about the secret sauce that grows and nurtures performance-driven team dynamics while laying out the practical ways to run a high-performance team successfully.
With a dedicated Performance Center of Excellence, Cigniti fosters a culture of high-performance engineering teams who place software quality as their top priority and undertake thorough performance testing to ensure flawless software performance. Talk to our experts today.
Leave a Reply