Beyond the Linear Trap: Scaling CI/CD with State-on-Demand - DevConf.CZ 2026
Watch on YouTubeVideo summary
The core argument presented in this talk is that modern CI/CD challenges are rarely about technology itself but rather stem from process inefficiencies and human limitations. While automation aims to eliminate manual steps as early as possible, the final validation before production often remains a bottleneck because it requires complex business flows involving multiple systems like customers, accounts, cards, and payments. These processes are inherently linear; you cannot deactivate a card without first creating an account for a customer. Consequently, running these tests in parallel within tight feedback loops is difficult unless the initial state required to start each test can be instantly provisioned on demand, which addresses the primary friction point between development speed and business logic complexity.
A significant obstacle identified is that traditional approaches, such as copying production data or relying solely on isolated unit and contract tests, are insufficient for microservices architectures where hundreds of services span different databases and cloud environments. Copying entire datasets becomes unfeasible when new features exist only in the application code but not yet in the database, creating a gap between what developers need to test and what legacy systems provide. Furthermore, ephemeral testing environments often fail at scale because large enterprises with complex legacy billing or CRM systems cannot afford long-lived stage environments that require constant maintenance, upgrades, and data cleaning, making it impossible for every team to have their own isolated sandbox without incurring prohibitive costs.
To overcome these hurdles, the speaker proposes an architecture centered on "test data APIs" that treat test data creation as a first-class citizen within the system lifecycle rather than a magical afterthought. Instead of directly inserting rows into databases or copying production dumps, teams should expose specific APIs that follow business processes to generate consistent states across all necessary systems. This approach utilizes orchestration patterns and buffering strategies where complex scenarios are pre-created ahead of time in a central gateway or catalog. By decoupling the test lifecycle from the underlying system availability through retries and circuit breakers, this method ensures that even if specific services are down during testing, the overall workflow can still proceed using buffered data, effectively reducing setup times from days to microseconds.
The implementation strategy emphasizes progressive adoption rather than a big-bang rollout, acknowledging that not all teams will be ready or willing to build these generators immediately. Teams should start by exposing their own capabilities as APIs in a central catalog and gradually expand the ecosystem as other teams integrate with them, creating a self-extensible network of data providers. Security concerns are mitigated by ensuring that system owners maintain control over how test data is generated within production-like environments without deploying actual changes to live systems. Ultimately, this scalable model integrates code for generating test states alongside application and deployment code, removing the last major bottleneck in CI/CD pipelines so developers can ship features faster with immediate feedback while maintaining high confidence in their releases.
Read the full video transcript
Most of the problems are not
technology-driven, but basically
process-driven and people-driven.
And my talk is going to not be about
technology, but about processes.
I noticed that many things were
infrastructure-related.
So,
this is going to be a little bit
different here because we are going to
talk a lot about testing.
And in infrastructure, even test
environment is in production
environment, whereas
from application point of view and from
business point of view, before putting
anything in production, you need to
basically test it. And nowadays, people
try to automate everything.
So, this is what is CI/CD. It's to
automate everything except the last
manual step, which should be as early as
possible. So, typically today, it could
even be your prompt to your AI system is
the last manual step, and then
everything should be automated. So, this
is CI/CD. Automation
means and is put in production,
it means that
customers can use it as soon as
possible. Why as soon as possible? Not
because of technology and because of
pressure, etc. Because of you as
developer,
you don't want to have anything to
remember for tomorrow. So, you finish
your work, which is your manual task,
and you want [snorts] to put it in
production automatically as soon as
possible, so that if there are any
issues,
you have the feedback immediately. Yeah?
So, so I guess
maybe 1% of enterprises in Europe are
have that.
Usually, there are always some kind of
product managers and testers, etc.
involved after building, and on the test
environment, they want to verify that
things work.
And
so this this basically the situation,
but you know, everybody tries to go to
to the CI/CD concept. So, if everything
is automated, do we have a problem?
You know?
That's the question.
Because the problem here is this kind of
validation before you put it in
production. You want to be sure that
what you have prepared is going to work,
that you are not going to break your
product. And this is this is like a
risk-based approach. So, what you
usually do is you are going to run a lot
of tests, automated tests.
Uh
and those tests will verify the whole
system.
So, you can imagine in a bank when they
do any release to production, which can
be on a daily basis, they have to verify
that you can create a new customer, that
you can
you can create an account, that you can
order a card, that you can pay with a
card, that you can cancel the card,
things like that. And all that needs to
be verified because otherwise you would
never automate it. You would still want
some testers that will put their heads
on on the table and certify that
everything is going to work.
The problem is that
those processes by design take time. You
can't just say, "Okay, we we we will
deactivate a card." You first have to
have a card. And before having a card,
you need an account. And before an
account, you need a customer. So, it's
by nature linear. It's called business
flows.
And the problem is that if you want your
CI/CD to finish within some short time
frame, maybe several times per day,
basically you don't have any other
option than to parallelize those tests.
And that's the main issue of automated
testing when you have CI/CD. How to
ensure that you can run all tests in
parallel while usually only the first
test, which is maybe login,
can be run as as initial step.
So, the idea is that
we have everything automated, but today
we need to focus on how to automate also
the state from from which each test
starts.
And the idea is what we call it is that
you need some kind of test data
provisioning. So you you have your test
environment,
your stage environment or how you how
you call it, and you would like to have
on-demand test data provisioning. So
where where you want to run a test, you
just pick a state from which you begin,
and then you just validate that some
your use use case work.
So test data provisioning and state
provisioning is almost the same.
And that's the purpose of my talk today
is to
show you how this can be achieved.
Um because usually it's it's it's a
technical and process challenge. So
um
Let's go.
Uh just for your for your information, I
have been focusing on test data
management and CICD for really a long
time.
Uh I'm driving I'm driving a QA
community Europe-wide, which is called
QA Kitchen. It's It's online. It's a
monthly talk.
And I like to be challenged. So even
today, if you want to challenge me, just
come here.
And I have uh two gifts.
One is uh
a coffee a coffee
coffee card. The first who challenges me
has has a free coffee. And then I have
other gifts for everybody.
Um
back to the end-to-end tests.
Uh
I like to challenge myself, and usually
where I go, people challenge me. I say,
"Okay,
it's microservice time. We don't need
any any more end-to-end tests because
you know, it's called contract testing.
You have microservices, and each
microservice can be tested in isolation.
We have advanced concepts like uh
contract testing, packed testing, things
like that, where you
define the API, and then you you have
some systems how to create automated
mocks. You go you're going to
test the client side separately, and
you're going to test the server side
separately. And that's that's that's
something that even the biggest Czech
bank implemented and they claim it works
pretty well. But, you know, I have been
in testing
for some time, and I know that even if
you have all unit tests pass, all
contract tests pass,
that's that's almost certain it's not
going to work together because
the paradox is that the majority of the
functionality which can be tested in
unit tests
does not really match the
the minority of functionality that the
customers care about. You know, if you
want to use your car, you you don't care
that you can unlock it, that you can uh
have a speed passed in, that you can
turn the wheel. What you care about is
that you can get to the final
destination. So, this is why end-to-end
tests are still required because usually
it doesn't work, even if you use
advanced systems how to split the
problem.
The challenge number two is uh you know,
with Kubernetes and I've I'm I'm sure
you have
heard a lot of talks about those stuff
here on this conference. Kubernetes and
all those serverless things allow you to
have an a test environment on demand
immediately. Yeah, like you can have
test environment ready, and then you
basically uh run
each test on a different environment.
Why not? Or you have an environment with
data already prepared, and therefore
it's not difficult to just have uh have
it done for each pull request. The
problem is that
this works until you're a small startup.
Once you get a little bit bigger, you
hit the problem that you need all teams
in your enterprise
to have full automation. And this also
means that SAP guys needs full
automation, or CRM guys that have some
kind of heavy billing system, legacy
stuff. And um it starts to be also
expensive. Uh so, the
the return on experience from the from
the practice is that
until you're a small startup, you have a
client, server, and maybe some small
middleware, you can have a femoral test
environments, and this is enough for
testing your your your delivery, but
once you get a little bit bigger, you
basically need long-lived environments.
So, your stage environment still sits
there forever. You need to maintain it,
to upgrade it, to clean data, to add
data, and things like that.
>> [snorts]
>> And I have a third challenge, like why
why test data on demand maybe is not a
good
good idea. And this is like legacy
approach that everybody
has been using, and maybe a lot of
people still use, and this is copying
data from production. Because if you
have production, you have a lot of data
there, so why not, you know, copying it
on the test environment, maybe run some
anonymization, and then you can start
testing, right? So,
so you can create some scripts,
or you can buy a tool. There are plenty
of tools out there that can do that.
And you you you you you you do this
magic that suddenly from production, you
have a test database that has anonymized
data, and you can run tests, and you can
for every test, you can have a different
test customer, and things like that.
Now, the problem is that uh
you need
to be able to identify the data.
And uh you need the rich data. So, for
example, if you are developing very
fast,
the new feature is not yet on
production.
So, how do you get data produced by the
new feature? It's not yet on production.
So, you you get issues like that, but
the main issue that I see is again with
the modern technology
that brought some changes here, and this
is with microservices. Because if you
have everything in one database, yes,
okay, let's create the heavy magic
script that will copy the database,
anonymize it to test. Now, if you You
hundreds of services, some of them you
don't even know which database they use.
may You don't have access to the
database. They are in the cloud, in
various clouds, they are on premise,
wherever. Well, then you need hundreds
of magic scripts that needs to be
aligned to do the thing the thing at the
same time. And this basically doesn't
work. So,
we are after the three challenges that I
see
every day, we are
back to
the hard facts. We need some test data
across the whole landscape, whole
microservices that are somehow
aligned.
We call it referential integrity.
Yes.
We need [snorts]
to stop copying data from production
because this is no more feasible with
microservice and distributed computing.
And we also need this long-lived stage
environment because of legacy teams and
complex things that are difficult to
manage. I can give you an example. I was
working for for a Czech
Czech company doing uh
uh food delivery, Rohlik.cz.
They had like ephemeral environments and
suddenly they said, "Okay, let's
automate our stock. Let's put robots,
etc." And they bought they they they
they did they did a deal with a
with a big company that does these
robots and they they came with Windows.
Yeah, we are going to to use Windows for
that and and we will have a server and
suddenly ephemeral environments are gone
because you you can't have just like a
new warehouse for every team.
So, this this is true for in almost
everywhere, actually.
So, let's go to this on-demand test
data. And it's not synthetic because
synthetic usually is said to be just,
you know, fake in one system only. Here,
the concept is that
a test, which can be a manual tester or
an automated test, wants to start
testing and first thing that what it
does, it requests some state. Yeah, so
you have a kind of request demand
system. And then you have a test data
service that just basically provision
the the the data in your systems.
This is let's say the magic and it
returns the data set to you. So, the
data set can be username and password.
But, you know that behind that you have
your user created in your user's
database, you have your
the user has an account in another
database, etc.
So, this is typically what a request can
be like. I want a customer
uh that has some kind of subscription,
that has access to digital channels, uh
AML checks have been done, active card,
and some payment history, you know? So,
how do you do that in a in an ecosystem
which is a little bit more complex? You
have microservices everywhere
everywhere, you have middleware.
So,
you can't just insert data in all
databases. That's not feasible again
because many people
see differently, etc. So, the idea is
that
you know, you do it one by one and you
respect the business process. So, that's
the idea. You you just follow the
business process because this is how
thing how things are have be have been
made. This is how things work in
production. So, if you follow the
business process, you have basically a
high chance that the data are going to
to be created right. So, you you just
follow the process, you create the data
in each system.
So, already now you see that
there's kind of orchestration behind.
>> [snorts]
>> But, the basics are basics, yeah? So,
instead of inserting data in the
databases, you need to expose APIs
because some systems don't don't have
databases. Some systems are managed by
different teams that don't want you to
access the database directly.
So,
uh so the idea is uh that each system
expose APIs. And
like some practical advice, if you want
to do to go in the direction,
usually in a in an enterprise with
hundreds of teams, there will be 20
teams that will say, uh yeah, we will
not do it. So, then, okay, you can have
a workaround. you you take your
automated tests
which act on those systems, which can be
UI automation, things like that, and you
can fake the API. You have a You have
even some startups that do that, that
actually expose UI automation as APIs.
So, suddenly you have
You have like each system has some
regular integration APIs to communicate
between themselves.
And they have another set of APIs, which
is called test data APIs, which you can
use to create data in the system. Why
does it make sense to have a separate
set of APIs? Because sometimes you need
to do a little bit more than what you do
in production. For example, you want to
create data back in time, which is not
allowed in production, but in testing
you need it. Or
you want to create products that no more
are active in production. So, therefore
you It makes sense to have testability
APIs for creating test data.
Um then the next idea, once you get that
Once you get there, it's still not going
to work because it's going to be broken
all the time. Cuz on the test
environment sometimes systems are
broken, that's normal. You have to count
with that. So, you need to retry, yeah?
So, if you try to provision test data,
the system is not available, you retry 5
minutes later.
So, okay, you can put a circuit breaker
and things like that or some kind of
component there. But then there's
another idea, and this one is the game
changer, and is buffering. Because you
can pre-create data ahead of time. You
don't have to do it once the test
requires it. You can do it the previous
day or the previous week.
And you only need to store it somewhere
in a buffer, and once the test
need it, you just deliver them to the
the the data that is already ready.
And of course, you can have some
clean-up and life cycle, etc. So, then
the architecture becomes a little bit
more complex. You have some kind of
gateway or central system or whatever.
It It looks like an API gateway, yeah,
but it has some more some more features.
Where you the requestors request data
and they get them pretty fast because
maybe those data were created already
before.
And if the system don't work, there are
some retries, etc. So, you decouple the
life cycle of systems and of your tests.
So, you will tell me, "Okay, so it
doesn't it doesn't work because if the
systems are broken, basically my test
will not pass."
Well, you know, for creating this data
the data sometimes you need systems that
you need only for creating data. For
example, in a banking environment, you
will have AML systems to check whether
you have
you are not a murderer or any anybody
else. So, those systems are required
only to validate that the customer
exists and then you don't need those
systems for your for your use cases. So,
so in many cases, decoupling makes
sense.
And then once you have that,
it comes completely immediately by
itself. You can have discovery, you can
have a catalog, you can have
observability plugged in because you
have a central system that enforces some
some some kind of
some kind of, let's say,
homo- homogeneous way how to how to work
with the APIs, yeah.
And the third idea that comes also
there, this is this orchestration. So,
each team you can you can you can take
each domain is managed by different team
having a different manager having a
different director, but each team can
expose some API, yeah. So, you can this
you can somehow enforce. And as told,
you can somehow fake it with a test
automation. But then you also need
somehow to to plug that together. So,
this is called orchestration or
composition. So, here if you don't if
you're not not aware of orchestration
pattern, this is something really to to
look at. I I will skip that here, but
this is a very very powerful
pattern that
has been there for years, but let's say
last 10 years everybody says, "Okay,
let's go with even sourcing because even
sourcing is decoupling everything.
Everything is independent. So it's a
perfect. We don't and then suddenly
things start to break and there are
tools like temporal or persistent
workflows that come back in and the
orchestration patterns is really
something that will that will drive the
next years. That's it. This this that's
that's my bet. Yeah. So So the
orchestration is basically you have a
component that just calls other
components and is responsible to know in
which order and how often on excited. So
here
you have some kind of orchestration and
service ABC
and the orchestration knows in which
order the the kind of request should be
fulfilled.
So once you have that you can just play
Legos
and
the initial request we had like a
customer with an account with a card
with a payment history, you can
construct it pretty pretty simply from
unit
unit API calls like create a customer,
create an account, create a card, things
like that. Each of those
let's say generation APIs can be
delivered by different team and you only
need this kind of orchestrator somewhere
which is of course
not given but still manageable.
Right. So
those are architecture patterns and this
is somehow how it can look like. So you
have one agile team that cares about
systems which is on the top here.
And at the same time this team cares
about something called generator or a
test data API.
And the idea is that you can completely
plug that together. It can become one
system like
instead of thinking of it as some
external system
you can have it part of your system. So
the only thing that comes external then
is kind of portal or gateway or
API gateway that allows you to call
all your test APIs and this gateway can
play the role of the decoupling,
buffering, catalog, discovery,
observability, and things like that.
So, that's it. That's
the this architecture.
And the benefits again,
uh you can have test data ready in
microseconds, whereas before it takes
days to weeks to get because I can tell
you from practice, if you go to any
Czech bank now and you say, "Give me a
test customer." You're going to spend
days to weeks to get it right because
everybody just knows a small bit of it.
Then every test scenario can have a new
test data set, completely new,
starting from a state that that you
need. So, you can have a deactivated
customer. Let's have it in microsecond.
Let's have a
a activated and then deactivated and
then activated card. Let's have it in 1
microsecond. And you can have any unit
any any kind of end-to-end test starting
from any state.
So, then instead of having
100 minutes, you have 1 minute.
And
uh
the goal was what? It's that the
developer
can go home
and it's done in some production and
already customers are using it. So, we
know that the probability that it's
broken is very very small. And that's
the goal of CI/CD,
to just be fast and have fast feedback.
And the test data were just
the last
bottleneck, I would say.
So, here are your key takeaways.
Um this is based on things that we have
done in uh
several customers because of course I
have a company etc., but uh so this is
an architecture pattern that I I think
is worth doing. You can use your own
technology to do that. It's not
it's not really um
uh there is no lock-in in any kind of
o-
or closed source stuff.
And the ideas are
to to have test data APIs, to decouple
them and have buffering and retries
using some kind of gateway that you
probably have to program.
Um but it has a lot of benefits like
uh some standardization of the test
data, etc. And the the core idea is that
test data APIs become integral part of
the system. So,
before the system was made of
application code, now we have
application code and deployment code and
infrastructure code. This everybody
knows. We have also test code for test
automation. And this is the last bit
that was missing,
code for creating test data. And this is
basically the product for each team.
Thank you very much and
who wants to challenge me? There's a
free coffee here.
>> [applause]
>> You you Is this a Is this a challenge or
>> I don't know if it's a challenge or a
question.
>> [laughter]
>> Uh
Yeah. So, you're talking about preparing
the data before before you get the data.
>> Mhm.
>> Or you know what you actually need. You
also are talking about the composition
of
for the user
and the account.
>> My question is
how can you prepare the data before you
actually need
>> Yes.
>> And also in the composition, I can
probably imagine that it might work in
one domain where you have the customer
and the account and one team manages the
data and creates some smart stuff that
connects together into components.
How would you do that, for example, for
the payments and the customer data?
>> Go through
>> Okay.
Uh
very good questions. I will probably
repeat them for for online guys. So,
um
So,
uh one question was how do we know which
data to create up front?
So, if you have this kind of gateway
here,
I don't know, maybe I'll put this this
this one.
You have a test data catalog, yeah? So,
basically you are building a some the
test data catalog tells you what what
test data you are able to create, and
each item you can you can think of it as
it has a name, like customer, and then
it has a set of properties. So, you can
model it as a vector of properties. So,
of course, you will not do all
possibilities
up front, yeah? You will try to optimize
for
some kind of subspace in this vector of
properties that is likely to be needed.
So, initially you can do it manually,
then you can do it by observing what
data are
going to be are getting used. And third,
you can
use AI to but not like a big LLMs, you
can use
like machine learning just to to see
what patterns are repeated, and what
patterns it makes sense to prepare up
front. But, this is like theory, and
when we started to do this kind of
architecture, we thought of exactly
this, and at the end we discovered that
this is not the problem. Because you
know the tests, like people know the
tests that are going to run in the
CI/CD. It's not something that is
created overnight. It's something that
is created over years. So, basically
just by talking to people, they will
tell you, "Yeah, we we For us it's
critical to have a customer with a bank
account that starts with this, and card,
which is a credit card, yeah."
And so, it's rather easy to get over
that, to to have the to know let's say
the
the configuration of your test data
you're going going to going to going to
need. And second question was how to
ensure that you can do to composition
across the full organization, yeah?
So, and something that was not in my
presentation, but is an advanced idea
for those that
uh understood like what this test data
data catalog means.
So, here actually it's here it's hidden.
This orchestration, which is a small
snippet of code. You can imagine that
it's just
create a customer and add a card, yeah?
Two lines.
So, instead of calling directly here the
guy that creates a customer and adds a
card,
they can call the test data portal back.
And then they have the benefit of the
catalog of discoverability, retries,
etc. So, you can plug
you can you can you can plug the all the
features that you have for your
requesters here, which are automated
tests or people. You can plug them
All right. Okay, sorry.
I guess this going to
Uh
yeah. So, so so here, instead of calling
directly the directly the
the other generator, which is bound to
some system, you basically request your
let's say subordinate data from the
portal. And then the portal can apply
all
aspects of this solution, which is
retries, buffering, and things like
that. So, therefore, it's not a big bang
implementation. You start by doing a
couple of generators like the team for,
I don't know,
customers will start to create
customers. And the next month, you can
go to the guys with the the the cards
and say, "If you want a customer, just
click here, you have it immediately."
So, now it would be good that you also
expose this kind of API. And suddenly
you have another, let's say, item that
you add to your catalog. So, you can
have have this progressive
implementation, and you are not required
to do everything. You do only those that
where you have requesters that add value
to to your stuff. So,
so to to be specifically answering your
question, it's more a progressive
implementation and adoption that that uh
that makes this happen. It's not like
you you come and you say
to tomorrow everybody is going to have
data data APIs.
>> I understand.
Basically, for the first
question, you answered
this is this test are static
>> Yes.
Exactly.
>> And for the second part, so do you
actually have the components
draw together
create a customer
You buffer basically each component
>> You you you you can buffer each
component on its own. So, if you if you
if you show this LEGO composition that
was
here,
you can buffer at any level. You can
have pre-buffered customers with many
properties. We have And then you can
have buffered customers with account
because buffering account without a
customer doesn't make sense. So, you can
buffer customer with account. Again,
buffering a card maybe makes sense. You
can just assign it to customer, maybe
not. But you can buffer customer with
account plus card.
And that therefore you can buffer at any
level. And once you have all those once
you have already those levels done and
everybody is using that, somebody will
come and say, "Now we have a test auto
end-to-end test that where we need also
payment history, you know."
So, they will say, "Okay, we have that
already. It's buffered. So, let's just,
you know, add payment history API."
Which is basically payment API. We just
send a payment and you we call it twice
and then we have a payment history. And
that's it. And then you can buffer it.
>> Wouldn't that
realization of a of a testing
So, if I understand correctly,
what was the
that create an API
fetch data
the system of test.
>> Okay.
>> This introduces a a security risk
and if I remove it after the test, I
would change
the system again.
>> Yes, the
very very very good question whether
doing test data APIs is not a security
risk and whether it's not creating side
effects to to development. Yes, but it's
the best solution. Why?
Very easy. It's done by the same people
that do the systems. That's the main
idea. You don't do it centrally. You do
you let it do the the guys that maintain
the systems. So, they can of course
configure that in production this
doesn't exist. It's not deployed. And if
they can do it in a way that this will
insert data in those databases in a
consistent way.
So, we don't it's not magical solution
where there are some AI will analyze the
structure of your database and say, I
know how to do it. No, you just let the
engineers that created the system also
create the data. So, you you consolidate
the life cycle and the responsibility
for the systems and for the data in in
one team.
There was
>> Yes, so this test data portal would have
this one single portal for the API to
have a lot of dependencies. So, if
you're looking at this it's in a complex
data organization where you have
multiple teams with different services.
Every single team would have to adapt
their logic into the test data portal
once it's changed. Which is a new
problem with the issue with the
with this type of complex data setup.
>> Yeah, so the question is
that we are basically forcing all people
to adopt to this concept. My my answer
is not not necessarily. It's a
progressive adoption and it's built for
progressive adoption because I know
exactly this problem. Like no big
enterprise will adopt something
immediately everybody at the same time.
It's not it's not feasible. So, here if
you go back to to this Lego, you know,
maybe uh your your problem is that uh
this is done in the CRM system and
nobody understands the CRM system. So,
once you do at least one piece, which is
to create a customer in a CRM system,
and you expose it as API consumable in a
catalog by other people, there will be
already a lot of benefits for all for
for some people, not for the whole
enterprise. And then, maybe some people
will come and say, "Well, we could do
the same." And the idea is that uh the
pattern is self- extensible. So, the
idea is that this a gateway here does
discovery, you know? So, discovery is a
word, but it's just uh a whole concept
behind that. So, they don't have to
discuss with anybody. They just create
the generator. The generator
connects to the portal and tells to the
portal what it is able to do. So, if you
follow those concepts, you have zero
almost zero maintenance centrally. So,
that's the idea. Progressive adoption,
and you do it only where it makes sense,
where there's benefit. Because maybe
before you had to create Jira tickets or
ServiceNow tickets to request test
customers. And suddenly, you don't have
any those tickets anymore, because
people can do it self-service. So,
there's a benefit on both sides. It's
not just "Okay, we have all to do those
generators, and it's going to be heavy
for everybody." No, it's a benefit for
the consumers, and it's a benefit for
the producers.
>> Um maybe to add on to that, when also
mention that with all these distributed
teams that have to build these
generators that are then uh
acknowledged, you often have the issue
that due to certain priorities,
>> Yeah.
>> very often, testing is obviously the
last priority
>> Yeah.
>> of the teams, which in this case would
lead to uh for example, varying quality
of test data produced for different
teams, which would also then maybe hurt
the the integrity
>> Yeah.
>> and the trust in the central test
platform. Cuz in my imagination right
now, we tried doing something similar, I
can remember teams saying, "Well, team
XY didn't finish their testing yet, so
why should we even use it?"
>> Yeah, yeah, yeah. Yeah, okay, I have uh
so again, for online, I'm just going to
repeat it.
>> [laughter]
>> It's it's
uh
Let there will be push backs and people
having different priorities and no not
everybody will develop their generators
and their scripts, etc. So, I would say
um
uh uh uh a last resort as a work around
and we have done that as well, actually,
is
what I said with the test automation. If
if you are able to automate the UI,
which basically usually you are,
then you can automate any business
process. And if the guys sitting behind
the system, they say we don't have time,
you can still take some end-to-end team
here
and tell them, "Okay, you are going to
develop a couple of UI automation
scripts." Okay, they will run 5 minutes,
but if we do it up front, it's not a
problem. Then it's ready in
microseconds. And you will create
scripts for, I don't know, provisioning
a new card. Like, I remember last week
we were doing some scripts for to
automate
uh not provisioning, but manufacturing
of of of payment card in SAP, because
the SAP team said, "Oh, we we have
allowed and we have those kind of stuff.
We will not
do any automation for you in other
languages." So,
so we we created a script that just goes
in SAP, logs in, and clicks on, "Yeah,
okay, manufacture this card." And that's
it. And this is like uh the the the the
missing piece that allowed uh
to have a to have a card done by script,
you know. So,
you're right. Sometimes it it's it's
going to be difficult, but you have work
arounds. And
W- Why is Why Why is this concept
something I think it's scalable and
maintainable? Because we just follow the
business process. We We And this is This
is why I say I I hate technology,
because if you follow the business
process,
it's very high likely that it's going to
be right even if you don't have the
details, yeah. Like if you go and log as
a customer in the self-care and you do
something, probably the test data that I
created should be consistent across all
systems. If not, it's good that it's
going to break.
It's out of time. Thank you very much
and I think you were the first and they
were actually all were challenging, so
you have a free coffee.
>> [applause]