Balancing Speed and Quality: Best Practices for Engineering Leaders
Engineering Manager at Amazon
In this article, we will discuss the challenges faced by engineering leaders in balancing speed and quality in software development. We will explore the importance of finding the right balance between shipping fast and maintaining high-quality standards to ensure customer satisfaction and team efficiency.
The Need for Quality
During a conversation between two top-tier engineers, Anjali and Niranjani, Anjali shares her concerns about the recent organizational changes that have led to a focus on quality. She explains how the rapid launch of products has put a burden on internal users, leading to tensions between different teams. Anjali highlights the need for a new focus on quality and the challenges of finding the right balance between shipping fast and ensuring high-quality standards.
"Quality has now turned into one of those words that means too much. When people talk about quality, they're talking about a million things." - Anjali
The Role of Engineering Leaders
Niranjani offers valuable insights on how engineering leaders can address the challenge of balancing speed and quality. She suggests that Anjali take the initiative to propose a solution to her new manager, outlining how they can execute it. Niranjani emphasizes the importance of having a comprehensive testing strategy and recommends leveraging different types of tests, such as unit tests, integration tests, API tests, and performance tests.
"Just having unit tests and integration tests alone is not gonna suffice. We need to have API tests, we need to have end-to-end tests, and we need to have stress tests." - Niranjani
The Debate on Quality Assurance
Anjali expresses her uncertainty about whether to invest in a dedicated Quality Assurance (QA) team or rely on engineers to take more ownership of testing. She explains that some people in her company believe they need a QA team, while others think engineers should try harder. Niranjani suggests considering alternative approaches, such as hiring software development engineers in test (SDETs) or assigning specific testing responsibilities to junior engineers.
"We don't necessarily need a QA team. We need engineers to try harder and feel more ownership." - Anjali
Addressing Front-End Testing Challenges
Anjali raises concerns about the challenges of front-end testing, particularly the difficulty of creating effective end-to-end tests. She explains that the tests often break for trivial reasons and slow down the development process. Niranjani acknowledges the common issues with front-end testing and suggests exploring different frameworks, such as Cypress, to improve the reliability of tests. She also recommends hiring a contractor or consultant with automation expertise to help address these challenges.
"We've never been able to come up with a good end-to-end front-end test framework that's tested anything of value." - Anjali
Implementing a Retro Process
Niranjani advises Anjali to implement a retro process to address the root causes of production bugs. She suggests conducting retrospectives after each production bug and analyzing the reasons behind the bugs. This process will help identify areas for improvement and enable the team to address the underlying issues rather than applying band-aid solutions.
"You need to come up with an executive summary that explains why this bug was prevalent in the first place." - Niranjani
Balancing speed and quality is a critical challenge for engineering leaders. By implementing a comprehensive testing strategy, addressing front-end testing challenges, and conducting retrospectives to identify root causes, engineering leaders can find the right balance between shipping fast and maintaining high-quality standards. It is essential to prioritize customer satisfaction and team efficiency to ensure long-term success in software development.
"As a leader, it's not just one small task. There's a series of things that need to happen, and it needs to work like a domino effect." - Niranjani
Be notified about next articles from Niranjani Manoharan
Engineering Manager at Amazon
Connect and Learn with the Best Eng Leaders
We will send you a weekly newsletter with new mentors, circles, peer groups, content, webinars,bounties and free events.