The actors are the center of Quality Engineering.
Continuous value delivery is based on the efficient collaboration of different actors along the software value-chain. The accelerated competition imposes to quickly leverage skills at the high standard to deliver Quality at Speed.
But the reality is hard. Talents are hard to attract and retain while competencies evolve fast with little time for training. In addition, the increasing complexity pushes for more specialization when we need more transversal collaboration.
In that context, we have to carefully select the necessary skills and compose them within our organizations. As time is running, we need to balance short-term solutions and sustainable plans over the long-term for skills availability.
Quality Engineering is the paradigm constraining the software value chain to continuous value delivery. In this cover, we share the most valuable skills to successfully initiate your Quality Engineering transition.
Follow the QE Unit for more Quality Engineering.
Methodology
This guide is a work-in-progress to be adapted based on the feedback and likely to evolve within the Quality Engineering Framework, MAMOS: Methods, Architecture, Management, Organization, Skills.
Each practice has been ranked among Quality, Speed and Complexity by maximum score representing the implementation priority. This article is only an excerpt, you can access full prioritization of these practices available here.
The Skills to compose for Quality Engineering
Quality Engineering is an organizational transformation requiring a specific composition of skills to iterate fast on the software value chain. The organization capabilities have to evolve on the two facets of value delivery and software delivery.
On one hand, the cross-functional teams producing and operating the software have to develop quality skills to deliver more value. On another hand, Quality Engineering roles have to enable the other teams by providing efficient software delivery.
We can divide the Quality Engineering skills into three categories.
The first contains the fundamental skills necessary to succeed at the transition with coaching, facilitation, and communication. Without them, an organization cannot develop a quality capability of the other team and remains with silos.
Then comes the skills to develop the first-line engineering teams, whereas the last category is to effectively create Quality Engineers competencies that can act in various roles such as Quality Advisors, Quality Engineer, Engineering Productivity.
Skills Framework
The recommended Quality Engineering implementation curve per impact for Skills.
Skills Practices
Foundations skills
Coaching
Coaching helps individuals improve their performance. It is necessary to both develop and support the engineering teams in their learning curve of quality but also to help them solve problems by themselves.
Coaches are traditionally outside of the team, available on a regular and on-demand basis. A coach essential to develop the organization’s talent for skills of quality engineering methodologies, software craftsmanship, or release management.
Facilitation
Things do not always run smoothly. There are different persons with different opinions, surprises in features delivery, conflicting activities between teams. A continuous force is necessary to unlock and accelerate these situations.
Facilitation is essential for maintaining the iteration speed. In the mid-term, the goal is to teach the teams how to fish instead of giving them the fish to solve more problems faster can scale better the Quality Engineering practices.
Communication
The core communication skills for Quality Engineering are emotional intelligence, active listening, and feedback. Emotional intelligence supports positive interactions between different people and promotes self-development.
Active listening is essential to favor end-to-end quality, problem-solving, and the overall work atmosphere. Feedback is the support force of continuous improvement, trust, and the learning capability of the organization.
For Software Engineers to progress on quality
Requirements Management
The cross-functional teams have to be masters of requirement management to deliver more quality in the first place. By addressing the good problem, they shorten value delivery to capture economies of speed, to then scale faster what works.
By specifying better, the minimal tests required can be more easily implemented and maintained. Requirements clarity is also essential to the scalability of the organization that can keep a coherent customer proposition and execution.
Software Craftsmanship
Engineering teams have to meet the software quality attributes defined by the team and within the requirements. Craftsmanship is the art of delivering software with a built-in quality using the most adequate techniques for the problems at hand.
Combining with the other skills, software craftsmanship coaches can drastically help to improve the built-in quality of the code. Shorter feedback loops with more flexibility to evolve is a must-have for a Quality Engineering organization.
Testing
Testing and quality have been dissociated in the mind of the team by the management, But testing remains a necessary activity in Quality Engineering, handled directly by the cross-functional teams. ATDD, BDD, and TDD are valuable practices to develop.
The techniques must be completed depending on the product context. For example, continuous testing, exploratory testing, or customer journey monitoring can be the most valuable. Use the Testing Quadrants to help you in the priority selection.
For Quality Engineers to enable quality
Lean Continuous Improvement
Quality Engineering is not a sprint, it is a continuous marathon of valuable adaptation of the customer proposition. Quality Engineers have to be masters of incremental approaches to improve quality company-wide.
Different teams will have a different level of maturity, they must adapt to the composition and objectives of the team to help them increase their quality level. The Lean approach supports the delivery of valuable increments on the right priorities.
Lean Problem Solving
Working on the right priorities in the first place enables speed and efficient performance of the organization. Problem management is the practice of defining clearly the issues, identifying the root causes, and ensuring they are solved.
This skill is not the ITIL definition of “Problem Management”; Lean problem-solving is a must-have for high-performing teams in their requirements, implementation, and operational challenges on the software delivery value-chain.
Influence
Quality Engineers are not the decision-maker of all quality matters. By being more enablers than doers, they have to convince the team in the direction to take, the ways to perform processes to successfully develop quality.
Influence is therefore a necessary skill in the daily interactions between Quality Engineers and the various cross-functional teams in the new Quality Engineering interactions models. It is also necessary for an effective intra-team collaboration.
Framework
These practices will set you up for a journey in transforming to a Quality Engineering organization. The practices will support you in developing the necessary skills to reach the state of continuous value delivery with Quality at Speed.
This content was limited to the pillar of Skills, letting the remaining practices of Methods, Architecture, Management & Organization in separate contents. The objective is to enrich it within the community and improve its content.
You can access the full Quality Engineering Framework containing the rank of the practices across Quality, Speed and Complexity. It also contains an option to customize the priority of certain practices and already leave you with an action plan.
Follow the QE Unit for more Quality Engineering.
The Quality Engineering Definition, Manifesto and Framework are available through a Creative Common Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0).