Become a Creator today!Start creating today - Share your story with the world!
Start for free
00:00:00
00:00:01
Avatar
166 Plays3 years ago
In this episode I speak with Marie Drake who is a Quality Engineering Manager at Zoopla, blogger, conference speaker and Cypress.io UK meetup organiser. We talk about pact nirvana and how to achieve it. We also touch on subjects around celebrating small wins, benefits of contract testing, enabling developers to test with modern tools and managing contracts at scale with Pactflow. Follow Marie on Twitter, read her blog or connect on LinkedIn. Then checkout my appearance at the Cypress.io UK Meetup talking about using Pactflow stubs with Cypress.

Hosted on Acast. See acast.com/privacy for more information.

Transcript

Introduction to Marie Drake and PacNirvana

00:00:00
Speaker
Hello and welcome back to the podcast. In this episode I speak with Marie Drake who is Quality Engineering Manager at Zoopla, blogger, conference speaker and Cyprus UK Meetup Organiser. We talk about PacNirvana and how to achieve it. We also touch upon subjects around celebrating small wins, enabling developers to test with modern tools and managing contracts at scale with PacFlow. Enjoy the episode.

Marie's Journey to Management at Zoopla

00:00:25
Speaker
Hi Marie and thanks for coming on the podcast. Yeah. Thanks Louis. Yeah. Thank you for having me. Cool. So you started a role last year. Was it last year at Zoopla as quality engineering manager. So yeah, I just wanted to hear about your journey to there.
00:00:44
Speaker
Yeah, I mean, I started February of last year, so February 2021. So it's been a year and a couple of months. And the main reason why I joined Zoopla was I wanted to officially try a people management role. So in the past, I've always been an individual contributor. So before going to Zoopla, I was a principal. That's what a mission engineer, Miss UK,
00:01:14
Speaker
I was sort of doing people management but I only really had two direct reports so most of my day-to-day tasks still focus on individual like contributor and I kind of wanted to try the other side and see what it's like and so yeah after a year here I am

Roles and Responsibilities at Zoopla

00:01:33
Speaker
And in terms of what I actually do in my role, so it's quite varied. So I split my toss into the people management route. So currently, I have four direct reports. I'm going to have one more.
00:01:49
Speaker
on in June, so we've hired a mobile QE. So there's also the domain like leadership. So in Zoopla, we are broken down into three different domains. We've got the home domain, marketplace, and transact. So I mainly look after the quality side on the home domain.
00:02:09
Speaker
And then lastly, I also help out, you know, different like product teams. So if they need some QE support, or if they need someone, you know, to help with contract testing, for example, or like story shaping, or people might know it as the three amigo session, then I also get involved around that. So it's much more different from my previous role, because in my previous role, I'm just part of, you know, one team,
00:02:37
Speaker
Whereas in this role, I guess the impact is much more wider and I get to interact with different parts of the businesses as well. Cool. Yeah. That's really interesting to hear that you're still getting your hands in and also have the management side of things. I think that's a nice balance.
00:02:58
Speaker
Yeah, definitely. You still find time somehow for speaking up meetups, organizing meetups, blogging. So how do you find time for that as well as juggling parenthood?

Balancing Work, Meetups, and Parenthood

00:03:10
Speaker
Yeah, I have to admit it's very hard, especially, you know, with the pandemic, but I don't know, I get this question, you know, a lot, like even from, you know, my blog, I would have people asking questions like, how do you find the time?
00:03:26
Speaker
from Twitter as well. And if I'm being honest, I don't know. I just do it. I guess it helps because I do bullet journaling every day. It helps to break down the list of things that I want to do. So I mark the top three goals that I want to do for today. So I'm quite structured when it comes to my journaling. And I think that's been helping. I started
00:03:55
Speaker
this bullet journal, I think maybe two, like two to three years ago. I did stop midway, but yeah, last year I restarted again. And it's been really like a massive help in terms of like the focus and concentration. I have to admit though, like, for example, some days, it is, you know, difficult the SY is with, you know, like a five year old. So for example, with work, she is part of my meetings.
00:04:22
Speaker
you've probably seen some of my meetups where I've got my daughter running around in the background. And like, I've just accepted that now that, you know, people are still here to, I guess, listen, or people are here to learn from my lessons or from my experiences as well as a tester. And I think they just see it as an added entertainment that my daughter is part of the testing community.
00:04:52
Speaker
I've just accepted it and I think it's just much better to view it like that rather than seeing it as a negative. Yeah, no, that's really, really cool. Yeah, my wife does one sentence a day where she reflects on the day and also kind of talks about what she liked about the day. And I think that's a really nice way to, as you say,
00:05:18
Speaker
be able to recall information because yeah it can be easy to do a day's work and and not really remember what you actually did and it's also the small wins as well like it's important to reflect on those small wins.

Encouraging Reflection with Weekly Wins

00:05:31
Speaker
Yeah, that is exactly true. And that's something that I've introduced to my direct reports as well. So last year, we started doing this like weeks of the week. It's like a document that, you know, I've asked them, you know, to update. So it's up to them if they want to add whatever wins they have. But basically, it's just a
00:05:53
Speaker
Um, record of, you know, the things that, that they have done well, but things that they are, you know, proud of as well. Cause I think you're right. It's quite easy for us to just forget we've done. I think having that document as well. So if you're, I guess doing the management, like type of things, it's easier as well to track.
00:06:13
Speaker
Fergus that your direct reports have done and it's a great way for conversations as well you can open up opportunities and you know say to them oh I've seen that you know you want to focus on this area maybe we can explore this in the next quarter or so. Another thing that you've said that was really great is yeah it's just good to reflect on what you've done so
00:06:37
Speaker
I've actually started doing monthly reviews as part of my blog. So it's just things like what I've done at Zoopla, what I've done within the community, any personal developments as well, and just things that I enjoyed as part of that month.
00:06:54
Speaker
Because I think nowadays, we're still in that pandemic, so it's quite easy to just say things like, oh, it's not still back to normal. But if you're regularly writing reflections every week or every month, I guess it makes it easier.

Evolution of Contract Testing

00:07:14
Speaker
Cool so let's get into your contract testing experience because I mean yeah I've been following you for a while and like following your blogs and the packed Nirvana came up so yeah but when did you start looking at contract testing and when did you start getting involved in it?
00:07:34
Speaker
I guess I started when I was still back at News UK. I don't know if you remember, but I actually attended one of your talks in person about contract testing. I think that was in British Museum or somewhere like that. I can't really explain. Yeah, the national testing cuff.
00:07:52
Speaker
Yes, that one. Yeah. So during that point, I was already getting some involvement around contract testing, although my understanding is still very, you know, basic, my knowledge about it, I was still like getting confused as to how it was different from like integration testing. So you could say around 2019. But the main reason why I was looking at contract testing was news UK, we were trying to create
00:08:21
Speaker
a new product called Newskit API. And the main idea is it's a federated GraphQL, which basically calls different the providers and then the main consumer will just call the Newskit API.
00:08:36
Speaker
So during that time, contract testing made sense in a way that, you know, how can we test that the data that the GraphQL layer is returning is what the consumer was expecting. So I started looking at alternatives, started looking at pack. I did my, it was like a project in GitHub that I created. It was just a basic API, which returns, you know, lists of movies.
00:09:06
Speaker
I've been playing around, you know, how to integrate the contract testing on both the provider and, uh, the consumer side. But then when I left new UK and then I joined Zoopla. So contract testing was something that they already had in place. So there was a pack broker already. There was a, like they have the contract test to pretend from a consumer perspective. However, none of the providers.
00:09:35
Speaker
have been created, so there was no buy-ins yet from the provider. Luckily enough, the product team that I'm part of is predominantly back-end focus, so we were going to create a brand new API, so at that time, I was just thinking, okay, this might be the perfect opportunity to be involved in contract testing again.

Implementation Challenges and Benefits of Contract Testing

00:09:58
Speaker
Yep. I spoke with our tech leads, explained the benefits, did a spike on whether or not we can introduce contract testing as well in our legacy APIs. And during that time, bi-directional contract testing wasn't around yet. So.
00:10:15
Speaker
When I did the spike, it was just agreed that we'll do it in our brand new APIs. So we started, you know, from there and then we created the provider tests. We've integrated things like can I deploy and make sure that before we deploy to production, we can check that are we safe to do it? Um, is the contract still, you know, being like adhered to by, you know, both parties. And then we've also introduced.
00:10:44
Speaker
you know, after deploying our changes, we need to let Pat know that, you know, we've now deployed so we can use the tagging functionality. And I think now we're at a stage where, you know, there's more buy-ins, more teams are now using contract testing. We've now established it as a standard with our backend quality. And we're now working towards, you know, how can we adopt, you know, a path flow? Because at the moment we have our internal
00:11:14
Speaker
path broker, so if we really want wider adoption within Zoopla, because at the moment it's just, you know, a couple of teams across like different domains. But what if we want to expand that into a much wider scope, then we'll look into adopting path locus, then we don't have to manage the path broker ourselves. And yeah, I think now it's definitely not much better stage. You know, my understanding about it as well has definitely improved compared to like previous years.
00:11:44
Speaker
Cool. Yeah, no, it's a really interesting journey because I've been on the other side where as a API led team, we write the provider tests and then we were like, we were trying to get buy-in from the consumers. And so, yeah, it's interesting that Zoopla had the opposite problem. Nice, the opposite.
00:12:05
Speaker
But yeah, that leads us on to talk about some of the benefits of contract testing. And I kind of picked your brains for, for my workshop and so that I could share some of the benefits. Cause I think that's one of the things that is a big thing when you're starting out with contract testing is why are we, why are we doing this? So yeah, I think you touched upon, can I deploy? So what are the benefits that you see of using that?
00:12:30
Speaker
Yeah, so I think the main benefits of this is it just gives you that extra confidence that what you're deploying to production isn't going to break.
00:12:39
Speaker
you know, any of the like systems that you have integrated with. Initially what we were doing is we have the, can I deploy step? But even if that was failing, the deploy production job can still be triggered. So I've spoken with our senior engineer and said to him, Oh, we need to make this as a required step. And ever since we've done that, you know, it's making sure that if there are breaking changes in the contract,
00:13:06
Speaker
So whether it's an expected, you know, I guess change, at least we are aware that, Oh, there's a change. Maybe we should speak to other things about this first before deploying our change. And then also having that as part of our merge request pipelines makes it, I guess, much more safer because before you merge your changes, you're getting early feedback. If the changes that you've done, you know, hasn't made any adverse impact.
00:13:33
Speaker
on your contract and I guess other benefits as well. So in terms of, you know, you don't really need dedicated environments where you have all these different services.
00:13:45
Speaker
like integrated together, I think that is definitely more efficient and we can test much earlier on because with the contract testing, we just need to make sure that we have the contract uploaded and then the provider can then just run it against their local service and replay the same interactions and then verify if that is the correct expectations.
00:14:12
Speaker
So yeah, I think it's just, it makes it easier as well to convince the rest of the engineering team. So what I've noticed is ever since we've adopted contract testing, like we're getting, it's not just the QEs who's writing the tests. So the developers who are making the change, you know, they're adding new tests as part of the contract testing, or they are updating the existing contract tests. So we've.
00:14:40
Speaker
basically enable them to also think about testing and quality at earlier stages.
00:14:48
Speaker
Yeah, I think that's really cool because lots of people have problems with their integration environments. They find it difficult to come up with a solution to spin those up in your CI pipelines. So I think that's a really great example of where it can be used. And also you mentioned in the club forum about documentation as well. So I think there's Swagger open API documentation. So how is this kind of different, do you think?
00:15:14
Speaker
I guess it's not more, you know, it's not more so that it's different. It's more of like, it's an additional documentation for you and your team. So especially because when, you know, we have a lot of these tests, sometimes it's quite difficult to understand what tests have I written for, you know, which provider and I guess the contract definitely serves as your living documentation. So you can just open.
00:15:40
Speaker
back broker, expand the contract and then you can see clearly like what are the different interactions that have been registered by your consumer and what is the expected data type or the expected form that they are expecting from the provider. So I think it just adds as an additional documentation that you and your team can also consume.
00:16:03
Speaker
Yeah, that's really cool. And it's what you were saying about the relationship between quality engineers and the developers writing the tests. I think that's a really good, a good progress in respect to that. Yeah. Cause that doesn't happen everywhere. And it's also again, coming from a different, the opposite position where the devs are writing the contract tests. And then because the testers have their own separate
00:16:27
Speaker
repo for their tests then they're not really engaging with it and so I think it's good that you're bridging that gap.
00:16:34
Speaker
Definitely. I think the thing that we need to basically just remember is with tools like, you know, pack or like even other toolings out there that are, you know, much more modern. I think it's bridging that gap between developers and testers because with this modern day tools, it's enabling, you know, engineers to think about testing and quality. All right. And like, like right at the beginning.
00:16:59
Speaker
Yeah, definitely.

Approaching Pact Nirvana at Zoopla

00:17:00
Speaker
So coming back to the packed Nirvana situation, so in your blog you mentioned about integrating webhooks. What have you got left in order to achieve the Nirvana?
00:17:13
Speaker
Yeah, I think to be honest, we are pretty much there. The only thing that we still have to do is we need to migrate the tagging feature to, I guess, deployments and environments. But with the pack web hooks, like we've done that in a lot of our API. So at least if there are changes in the contract, because traditionally what would happen was
00:17:38
Speaker
if the can I deploy step has failed on our consumer, they would ask myself or they would ask the other police just to say, where can I trigger the provider? Because the error message would say that there is no verified contract because it's like the contract has changed. And then I would then have to trigger the different data providers. So there is that manual intervention.
00:18:06
Speaker
What's happened now is if there are changes in the contract, it will automatically trigger a provider verification job. Not the entire pipeline, but just the provider verification job on the different APIs, like on the different data providers. And then now we're thinking, you know, we can also migrate from tagging because I think the recommended approach now is to use environments
00:18:31
Speaker
and the releases because there's I think from performance, if I'm not mistaken, like if the tags have accumulated a lot in your pack broker, there's some performance.
00:18:44
Speaker
like consideration and I think going forward, they're going to stop introducing features related to tags. So it just makes sense if we also migrate away from that. And I think now, because I mentioned that we're also looking at using PacFlow as a potential replacement over PacBroker. So one of our senior QEs, he's currently working on the business case.
00:19:10
Speaker
around that, but we've already sort of gotten to a stage where we've spoken with the pack flow team. We talked about directional contract testing. Our senior QE did a small POC on, you know, how we can migrate to pack flow and how we can utilize bi-directional. And the next step is just really to get started with a business case. So hopefully, yeah, for the next quarter, that is, that is something that we can achieve.
00:19:38
Speaker
Awesome. Yeah. Sounds like you're, you're very close and, and you'll have that loop closed very soon. So that's really cool. Cool. So I think that's all I wanted to cover today. Thanks so much for coming on the podcast.

Where to Find Marie Online

00:19:52
Speaker
And so where can people follow you, find your blog, all that stuff.
00:19:57
Speaker
Yeah, so I'm on Twitter at mcruce drake and also find my blog at meridrake.com. And if you want LinkedIn, yeah, I'm also on LinkedIn, but yeah, I'm mostly active, you know, on Twitter. So if you want to get in touch with me or just ask questions on any, you know, I guess not, not just about contract, I'm not just about contract testing, but any other questions that you have around, you know, testing or just, you know, other types of testing tools as well that I have experienced and yeah.
00:20:26
Speaker
I'm happy to help you with that. Yeah, I think those are my main social media. Cool, yeah. You're active on those platforms, so I'm sure people will be able to find you. And I'm not sure when this episode will go out, whether it will be after the Cypress Meetup or before, probably after. But yeah, it gets recorded, right? So people can watch that back.
00:20:49
Speaker
I guess a lot of people would actually want to know how you can use, you know, Cypress and, you know, pack at the same time. So we do have that meetup that yourself, Lewis is going to talk about. Cool. Yeah. I'll drop all the links in the, in the show notes. So yeah, take a look there at that content of me talking again.
00:21:12
Speaker
at this time about Cyprus and Pact. Again, thanks so much for coming on the podcast and I look forward to seeing your blog about reaching the Nirvana. Thank you again for having me.