I’m very pleased to run the 10th interview in our #testerstory series with our guest Antoine Craske from Portugal, and still a bit from France 🙂
He will tell us his journey in different engineering positions and how he thinks a holistic approach of quality can make the difference for organizations
Hope it will inspire lots of you in their digital acceleration and quality journey!
Part 1: Introduction
- Tell us about your experience, background?
Sure, I have about 10 years of experience in the software industry in different engineering positions at La Redoute. I started to work as a software engineer while finalizing my studies. At that time I was building what we would call today data engineering pipelines and an internal application testing framework. I then had to evolve as a project manager, IT manager and project director. After a major transformation project, I took the responsibility of the engineering center leading its organization and growth in Portugal, while evolving our technology landscape. Today, I’m in the transversal role of Head of Architecture & Technology.
Personally, I moved from France to Portugal in 2015. I actively participate in various communities of DevOps, Data Science, Testing, Software as I am convinced of their value for the ecosystem. I am an active member of TICE.Leiria, a company association where I run the Meetup group, CTOs.pt and Tech.rocks Last year I founded the Apache Kafka User Group in Portugal. This year, I have a new project that I will share in the next section 🙂
- How did you join the world of Software Quality ?
When I was studying and working at the same time, I was confronted with quality in both worlds. On the study part, I remember practicing TDD as a developer with pomodoro sessions and implementing CI/CD pipelines with only jenkins at that time. At work, I started and was directly involved in the internal application testing framework, I got into test automation directly 🙂 We released the product Cerberus Testing in open-source in 2013, I am still involved nowadays. Then in my other positions, I was in fact confronting quality in various aspects. You easily got the problems of various areas when you are in transversal position of project or IT management. I worked for example extensively on implementing the DevOps paradigm (culture, organization, processes and tools) for more than 7 years. Testing was clearly a key element, and more globally quality, as we wanted to accelerate our digital products delivery while improving their quality. I shared our experience and learnings at some testing conferences such as JFTL, Testing Days Portugal, TestCon Europe, etc.
For me “Quality” and “Testing” are key assets that any organization must invest as a strategy to develop a true differentiating capability.
- Congratulations for running your new testing community “Quality Engineering Unit” in 2021 ! Can you describe it and share the community goals and perspectives ?
I wanted to contribute to the software quality community for a true passion and interest in the theme. I reflected for months about how I could be complementary to the existing ones, as we already have a set of good content and communities (MoT, PTM, QualityTalks.PT with a special grateful note to Lina Kulakova).
Reflecting on the problems I faced, transversal roles I held, I found the interesting area of Quality Engineering. Building upon existing practices of Agile, DevOps and so on, I find out that I’m able to bring value by sharing and evolving this domain.
Its goal is to improve the transversality of quality by connecting the various disciplines of engineering from business to operations. I have two personal fights there, stop to associate QA only with tests, and assume that quality positions are second-roles in organizations. It is therefore not limited to QA but rather on a transversal perspective and combination we can leverage. I work for and I hope that we can develop the community in that direction.
I have focused this first trimester in validating the potential interest in organizing round-tables and interviews to have more interactions than traditional meetups. The replay is available in video and as a podcast, complemented by some articles for now. I will evolve based on the community feedback, adhesion and interests.
The content is aggregated on the blog, https://qeunit.com
Part 2: Software Quality as a Strategy
- Why Software Quality could be Strategic?
The majority of companies are facing similar challenges of globalization and accelerated cycles of innovation powered by the digital. In this large land of choices and cultural evolution, customer expectations are pushing for acceleration of high-quality digital products and services.
The reality is that potential consumers will decide maximum in a minute to stay on your digital offer, else go elsewhere. This is where a successful customer experience (CX) supports the engagement, if you manage to continuously iterate fast and with stability.
Focusing solely on delivering features falls short over-time. Technical debt easily piles up without addressing other requirements of testability, scalability, observability among others. The initial short-term gain is usually trade-offs for major structural problems, very costly to repay.
This is why I am convinced that the digital “product-line” such as SDLC must be guaranteed by quality from design to operations. I usually make the parallel with a house where things are much simpler when incorporated from its inception.
Companies like Google, Facebook and so on are great examples of companies that manage to iterate fast on digital experience. They manage to find quicker what’s working while scaling and maintaining the rhythm of innovation of their products over time. I am convinced from the resources available and what they share in the community is a example of their success (e.g. How Google Tests Software, Google SRE approach).
- How do you think we can make Quality as a Strategy then?
Start by clarifying your organization objectives and needs. You will normally find a need for acceleration, faster iterations, launching of new products and services with a high-level of user experience.
The difficulty is usually the alignment of those businesses into IT and Quality ones.
Business strategy can in fact pivot depending on external factors in the mid-term. This is why, like in architecture, I prefer relying on the capabilities even for Quality. They are linked to the operating model, less volatile and with a longer timespan.
Translate the business goals into organizational capabilities, to then identify where quality will be able to contribute. You need to be able to formalize that in order to present, influence and convince sponsors to defend the quality initiative.
You then need an iteration capability to deliver incrementally your vision. Start small, focusing on the objectives you set and make visible to the business, and be ready to iterate, change and adapt along the way. Use models and best-practices as guides in your context, not as the only way to go.
- What are the metrics that could be useful to measure software quality?
I can give some inputs there I hope to complement soon with more details 🙂
To be a bit provocative, I can start by which metrics are not useful to software quality, at least alone : code coverage, number of tests. Metrics alone are of limited uses. Do you really care about having a high number of tests for an application never updated and that will be replaced totally in 1 year?
This is why for me the link to your business objectives and contextual elements are key.
If your driver is to deliver a successful experience fast and with stability, your release train speed, SLI & SLOs of your main customer processes are a good place to start. Whatever the quality and tests you have, if you are slow and delivering failing features, you are not reaching your goals.
You can then complement with measuring the usefulness of your tests. Seek how many real bugs they catch in the last months. If your results are near to zero, it is probably a good indicator to remove or clean your test suite. Pre-optimization was probably done resulting in unnecessary test effort that could have been allocated elsewhere.
In the test execution area, I can take the example of their duration. By themselves they are not telling a lot but in context they make more sense. If your unit test takes 10 minutes per build, your cycle-time is dramatically impacted and so your capacity to deliver. Imagine waiting 10 minutes each time you want to read an email, would you be productive?
In contrast, if your performance tests running in the night everyday take 1 hour being load-test and stress test, that is totally acceptable. Trying to win time would be a waste of time if structurally you can never make them linked with a shorter cycle-time.
As a strict guideline, the metrics must be tailored to the business objectives and the context. We see they need to focus on the impact of the process and a particular actor. Then metrics are not limited to QA but must be selected from the relevant areas.
Part 3: Transversal Quality Strategies
- How do you approach Transversality in Quality?
Have an exhaustive view of the stakeholders concerned. The key to deliver initiatives and projects rely on people adhesion, collaboration and performance. You need to map your end-to-end team from Business Owner, Process Owner, Product Owner, QA, Development, QA up to Operations team.
Then don’t start with processes or tools even if you have an idea of where you want to go. Like an African proverb says “Alone we go faster, together we go further”, see it as an investment and not a loss. You will probably be surprised by the inputs you can create as a group.
Perform collaborative exercises and workshops, focus on increasing transversal interactions to create a real dynamic and a common language. Usually people in different teams are not able to work together, you will probably need to pass through the traditional team stages.
Co-define a shared vision and principles of working together, don’t come with everything set. It can be “We never let a release shipped to our customers without mandatory quality gates”. Stick to it yourself and with your stakeholders even in difficult times.
Implement relying on an incremental and iterative approach supported by agile models. This enables regular feedback on your business objectives to know “are we progressing ?”. The time-boxed approach limits the WIP, unnecessary work and improves focus.
At any stage keep the focus on the outputs of your processes to verify their usefulness. If so communicate their business-value regularly using existing instances and meetings. Learn to share bad news to foster transparency.
Lastly – because I am a bit obsessed with building performant systems – have a clear process for your key activities such as decision-making and problem-solving. It is a necessary structure to get creative and collaborative solutions while iterating on your initiatives.
- Which difference do you see with existing approaches?
A conviction that software quality is not only for the QA team, not only about tools, not only forgotten in projects. It is about combining strategy, architecture, organization, processes and tools for a structural and sustainable performance.
A holistic and end-to-end perspective in our approach to problem-solving, decision-making. It does not mean that we don’t act locally but that the focus remains on the global system impact. Does your action have a positive impact on your customers expectations?
The KPIs or metrics are linked to the value of the overall output, not only on siloed vanity metrics such as “number of tests”, “coverage”. They can be supporting metrics, not that much by themselves.
The approach is more transversal than vertical, balancing expertise and deep dive on a particular theme only when identified as a priority on the global perspective. This is where a quality ownership by the team is necessary to get the necessary complementary skills.
Part 4: Improving the Quality Process
- In order to drive higher software delivery and organizational performance, what are the most important capabilities that we can consider?
A culture of collaboration, customer-focus, and excellence are key prerequisites. They need to be supported by shared values and principles within the organization. Culture and alignment is what enables for example Spotify to scale better.
Speed in the way to design, ship and adapt the digital operations based on customer feedback is a differentiating capability. I am convinced it will tend to be a requirement for survival.
Observability translating into a capability to measure, understand and adapt the companies processes along the way is also key. Digital products are becoming more complex, interdependent and distributed, reinforcing this need.
Internal design skills of systems, solutions, architecture before getting lost in implementations is also a basis of performance. I am too often surprised by how many developers do not even have a schema, booknote or plan of what they want to build.
A capacity to automate what needs to be done by a robot, and focus on what humans are best at. Balance is for me key is a lot of aspects, and also for automation. Like in automated tests, we need to evaluate first if the process should be automated, and secondly is it worth it.
A reliable process for technical debt management from architecture to operations is also key for an organization. Like risk it will always exist, the point is to be able to control its natural tendency to expand and having cascading effects.
An organizational needs also a problem-solving and retrospective capacity. This is what enables organizational learning and improvements at scale.
- Do you have personal examples of implementing such quality improvements?
We progressed at different levels of maturity at La Redoute, while still having a long way to go in your quality journey. We have a common requirement of acceleration while maintaining quality, with different focus per context.
On the digital experience part, we invested significantly to develop our capability of transversal collaboration, speed of delivery and observability.
We have a functional non-regression suite to deliver daily with confidence (96% delivery with 6000+ automated tests in less than 50 minutes). It enabled us to progress largely on collaboration and speed of delivery coming from trimestrial releases cycles.
On the observability part, we focused mainly on improving its business perspective and visibility. We for instance run the major customer journeys on the variety of devices we offer, enabling us to both detect any alerts but also build up data for advanced analytics purposes.
On the back-office, we did a similar investment in acceleration, automation and observability in a distributed architecture. We reach a good level of self-service pipelines and automation available for developers. Our limiting factor is more on the design than delivery side right now.
On the organizational aspect, I focused heavily on improving the collaboration of development, qa, operations and support. We set a shared vision, performed collaborative exercises, invested in team training, etc. We moved from a very siloed delivery model of dev versus operations, to a developer self-service platform over-time.
To close the feedback loop up to the operations for the whole engineering team, we deployed a transversal crisis and retrospective model. We have a much better managed process with visibility that we now need to optimize.
Part 5: Conclusion
- What advice do you give for testers who want to go further and jump into more management and organizational paths that cover transversal aspects?
Know yourself and have a process for regular self-actualization.
You can hardly have quality interactions and impacts in a team or organization before knowing better yourself. It is a never ending journey, but invest in knowing your personality type, reading about it, practice emotional intelligence. MBTI is a start, I recommend an advanced assessment, and EI with Daniel Goleman resources.
Start with the end in mind.
Where do you really want to go? Understand first yourself and why you want to go in those paths. For instance management is not a prerequisite for acting as a leader and having impact in the organization. Be clear on what you want to bring as an individual and what you truly like to do.
Act transversally as you were already in the position you desire.
You make tomorrow by acting today on your destination, quite nothing happens overnight or by itself. For those two points, read Stephen R. Covey as a start.
Be ready to learn, fail and iterate.
You need to balance your motivation and competency. Equilibrate your learning with books, courses, blogs etc while practicing on concrete cases at work or out of work. You can manage non-profit organizations, organize events, etc. I recommend the LEAN startup for an iteration perspective.
Step back regularly.
We can too often get lost into the details or into our own problems, affecting the quality of decisions we take. Step back regularly from your day to day, journal, share with peers, read and stay curious, a lot of people are having the same problem as yours, or worse.
- Anything else you want to share with the testing community ?
Even if I am a bit biased with communities, I am strongly convinced that we can learn through the sharing of experiences, common problems and possible solutions.
On top of learning and improving one’s skills, it forces us to keep an eye on the exterior of our day to day occupation and to get out of our comfort zone.
So I would encourage each person to participate and engage at least in a community, so that together we can accelerate the state of quality in the software industry 🙂
As a teaser, I work on Observability, Process Mining and Developer Productivity themes, where I hope to be able to release information soon.
Thank you so much Antoine for being part of this #testerstory and for sharing your brilliant story with us.
It’s a really inspiring and interesting to be strategic and share this vision of quality across the whole organisation. In fact everyone can add value to the organisation.
I encourage you to continue your brillant journey, wish you all the best in your career and looking forward to hearing from your Quality Engineering Unit round table and the content.
- Interview #1: Being a Freelancer from Tester Perspective
- Interview #2: Driving quality forward with a customer first mindset
- Interview #3: Overcoming the struggles of being a tester from student perspective
- Interview #4: Being A Remote Agile Tester Story
- Interview #5: Being a Tester from scratch and working in an Agile Team
- Interview #6: Data Science from a Tester perspective
- Interview #7: Becoming a Tester From an HR perspective
- Interview #8: Master your Test Automation journey
- Interview #9: Becoming a Tester after working in different industries
- Interview ##: ….. if you have a ‘testing related story’ reach me out to tell more about it in interview format. Get in touch via twitter @emna__ayadi or linkedin Emna Ayadi.