Cant find the role you’re looking for?
Sign up to be the first to know about future job openings at GetYourGuide
Stay notified of new jobsCopyrighted 2008 – 2023 GetYourGuide. Made in Zurich & Berlin.
We started offering our suppliers the possibility of combining with their new activities any review ratings they might have from a different source. This helps activate them in a shorter time by making content more attractive when sitting next to already successful activities.
Here's my take as a software engineer taking up the project tech lead role. I'll guide you through the process of leading this project and explain the decisions I made to make it happen, together with my incredible team!
{{divider}}
“When you’re curious, you find lots of interesting things to do.” – Walt Disney (yeah, I have a whole lot of these cheesy quotes all around, brace yourself!)
At GetYourGuide, all ideas are encouraged! Every concept goes through a structured feature development process that begins with a thorough triage. If we feel that an idea promises a significant impact for our customers or partners, it moves onto our product and design teams who turn this into something tangible and ready for development.
This process doesn't only concern those specific teams but also involves engineers once the scope is somewhat defined. And this is where the fun begins for us! We're not only responsible for deciding how to implement a feature but also for pointing out any limitations and breaking them down into smaller iterations. Can we hold off on releasing this button here until Q2-2026 and save a MONTH of development? Thanks!
Once we're aligned on how a new feature will look, we select a project lead (in this case, me!) who will follow up with implementation and ensure the project runs smoothly afterward.
"Look, Simba. Everything the light touches is our kingdom." – A very famous, clever lion.
Hold on, hold on. Let's take one step back and contextualize a bit, shall we?
For this specific project, the challenge was less about showing things in the UI, but more on the backend and databases. We already display ratings for customers, so there is nothing new there… showing them a new label? Piece of cake! Right? Showing a new UI after an activity gets created so that our suppliers can import their rating? A 3 story-point ticket!
Here are some of the real challenges we faced in backend implementation:
Having a dedicated project lead for research, ticket breakdown, and task tracking is crucial. Being a software engineer helps a great deal, as familiarity with the codebase makes for faster, more informed decisions.
Let’s break down the steps of this feature development workflow and see it in action!
"It's the start, of something new" – Arguably the best song ever made
First off, identify your stakeholders. This project required collaboration with four different teams, and each had specific internal roles that needed to be added to meetings, channels, etc. Introducing yourself and sending that initial “Hey! Let’s collaborate!” message early on sets the stage for smoother project coordination.
Second, create a Request for Comments (RFC) document! Your project specifics are important and dynamic, so you'll need a single place where decisions are written down and discussed so that everybody's on board with your crazy idea of dropping a whole table from the database. No surprises once that happens. We have all agreed that it's for the best!
Second-second step, once the RFC gets to a stable state or if discussions aren’t aligning, sometimes a meeting is just the thing to clarify direction. Some people prefer face-to-face discussions, others a-sync- but adapting to your stakeholders’ style keeps things moving smoothly.
Third, daily updates are key! Your stakeholders are eager to be informed, constantly. Create a channel and… put it to good use! People will read it at their own pace, but they'll have visibility over the status of the project.
"To infinity, and beyond!" - This is where the astronaut (and us!) are aiming to get to
You have a good implementation plan. Now what?
Well, it’s time to organize tasks. Remember your days as a full-time developer, looking through tickets to pick up and deliver? Now it’s your turn to set those up!
Break deliveries into deliverables. Discuss these with teammates to ensure tickets are scoped properly- ideally, no 3,000-line PRs. Link related tickets, prioritize effectively, and remember that you might jump into development later, too!
Then, kick off the development process! And here you thought it was the first step this whole time, right? See how much has been accomplished already?
"Be prepared!" – Another very famous lion.
Once things pick up some steam, don't forget to follow up with them. Blockers will inevitably pop up along the way, and that's fine! As long as you have control of the situation, you will also be fine.
Create a nice spreadsheet if you need to (it's great practice, highly recommended!). Talk to your teammates, and identify where you need to act. Set realistic time goals, and don’t overcommit. The sooner you have a clear idea of something going wrong, the sooner you'll be able to act and discuss new dates if needed. Remember: your project is dynamic, so you have to be also! The key here is to be prepared, so once things happen you have enough time to react to them.
Remember the research at the beginning of this process? That RFC file? Yeah, that counts a whole LOT here! Revisit and update it accordingly!
"There's a snake in my boot!" – Time to shake that out. Or should I say… release it?
You made it! Don't forget the last, perhaps most important, step: bug bash. Get everyone involved and even some fresh eyes to test it thoroughly! Do things behave as expected? Does your shiny button indeed import ratings, and the backend respond with what was expected? Do you see analytics events going through? Is performance good? Do you see the expected error messages? Does it work for Chrome? Safari? Mobile?
If you have a stable state, it's time to release! Congratulate yourself and your team, y'all made it this far!
"And find out what happens to solid water when it gets warm" – Silly, silly, snowman. Hopefully not how you'll (hopefully!) be feeling after releasing your project.
Now it's up to you to follow up with metrics. Set up dashboards to track performance metrics, keep a close eye on monitors, and use data to iterate where needed. In our project, we soon found out that some comparison algorithms were not as good as we thought they would be, so we now have data to improve it. And so we did!
A project like this has a long way to go, even after releasing it. You don't need to do daily updates on development anymore, but now you'll have daily checks and weekly discussions with the gathered data on where to improve. Use it! The post-release phase is one of the most important ones of a project. Don't overlook it!
Once you made it this far, this means you successfully delivered a project end-to-end. Ready to tackle the next one?