My challenge in Superhog is going to come with a lot more freedom and lot more responsibility than the previous positions I've held. The crown is heavy, and so it's both my time to shine and to not fuck up.
One of the habits that I value a lot, have almost never seen successfully applied in companies, and have seen successfully applied to some degree in Mercad~ao (thanks João) is writing things down. A lot. Everywhere. All the time. Organized repositories of text all over the place. Basically, every time you are about to open your mouth to say something, you should instead or also write it down.
I'll start on the eve of my arrival by writing down some thoughts on stuff I need to do.
- Social wise
- Make contacts: I need to have a couple of coffees with a lot of people:
- Global KPIs : <https://guardhog-my.sharepoint.com/:x:/g/personal/ben_cotte_superhog_com/EU9p7oaSBGRFoYGlJkfsMqwBt6sCRfF-jd0_3zkUYJxV2Q?e=k7ad02>
- Data used in Sales and Account management : <https://guardhog.sharepoint.com/:x:/s/Guardhoggroup/EZXCzc8ftM5JrOm43UpCh5QBrB05Rrq6MDJ7-j-B8pjHJQ?e=4o4JnG>
- Data used in Finance : <https://guardhog-my.sharepoint.com/:x:/g/personal/ben_cotte_superhog_com/ERZWA02zJlxAi8akJmzVz40BQ3sjwARt1EYUnP6Y4-sbZg?e=maj0dU>
- Data used in Product : <https://guardhog-my.sharepoint.com/:x:/g/personal/ben_cotte_superhog_com/Ed1Wt4-T-9FIodoJEkmYUzMB3VzalxzPTsiYcrQOm1ik1g?e=qZhW9Z>
- Invoicing Process : <https://miro.com/app/board/uXjVMirYfDg=/>
- Make current operations work properly now that we have resources (backfill). Andrew's opinion is they were understaffed for long and that explains why things are not working out smoothly.
- Andrew is very concerned about the invoicing process and the choice of accounting tool and now I understand why. If any of those two, are not worked out properly, they will lead to a very nasty situation. I need to judge my role in those fast and get evereyone aligned.
---
Stuff we couldn't go through, let's discuss next meeting:
- Is the P&L somehow decentralized?
- How do you and Humphrey split responsibilities?
- Things I've liked so far
- Good attitudes, good spirit
- Product is clear
- Lots of room for improvement
- If the product is making money with the current simplicity, we can surely do better
- Systems are growing uncontrolled, this will bite us in the ass soon and will hurt people's work
- The huge proportion of new joiners is going to be a cultural challenge
- Data is in a bad shape, I don't have data
- What do you think about my plan?
- Couple of weeks listening in
- Ceremony to kickstart the team
- Team proposal
- Backlog
- Building out our infrastructure as well as working on hot things. Balance between immediate stuff and building for the future
- Is there something that concerns you? Anything you are scared of? Any issue that keeps you up at night?
- I'll be eager to grab a lunch or to hear more about both you and Humphrey. I care about the plans at the top, it's one of the main reasons I'm here and not at a big corp
## Meeting with Clay
Onboarding and PMSs
- Every host gets manual onboarding. This is a pain point
- Clay fully takes care of PMS integrations. The most relevant bit of this happens to be managing onboardings, since there isn't much trouble once the integration is done for each PMC.
- Mixpanel: invite sent. Note we’re working out a bug at the moment which is blocking us from judging our accurate usage and moving forward with upgrading to the paid version/using it properly!
- I'm worried about only having two cycles to play around + Elaine leaving. I dislike this being the first thing to jump to, but I think it will have to be so
- I'm afraid untangling this doesn't look like only a data issue and it's going to be complex dancing altogether
- Ben thinks there is indeed a high level of complexity, which is natural due to the way the bookings and money flows work and due to resolution process
- The issues with payment problems and manual retries are also part of the issue. The current dual payment providers situation is part of the problem.
- Ben has a very good acceptance of the fact that product changes in dashboard might be required to get this in good shape.
- I see a general pattern of shadow IT and short-comings in Dashboard being tackled with system+organization patches everywhere. This will bite us back eventually (is kind of already)
- [X] Basic set of cutlery to keep in our office <https://www.amazon.es/BEWOS-cubiertos-cuberteria-inoxidable-Lavavajillas/dp/B0BZXZJ31Y/ref=sr_1_10?__mk_es_ES=%C3%85M%C3%85%C5%BD%C3%95%C3%91&crid=13L3AVL2USBKQ&keywords=cuberteria&qid=1701420382&sprefix=cuberteria%2Caps%2C131&sr=8-10&th=1>
- [X] A few locks for lockers to make life easier for new joiners: <https://www.amazon.es/Combinacion-Diyife-Impermeable-Archivadores-Herramientas/dp/B08Y6D1Y38/ref=cs_sr_dp_n?__mk_es_ES=%EF%BF%BDM%EF%BF%BD%7D%EF%BF%BD%EF%BF%BD&crid=8ESI3Q3APIBJ&keywords=candado%2Btaquilla&qid=1701419900&sprefix=candado%2Btaquilla%2Caps%2C104&sr=8-6&th=1>
- [X] Sit down with Ana (once her scope is more clear and she's in control)
## Ben Cotte initial explorations
Ben sent me some of the materials he has been building around assessing data in superhog last week. I'm listing some of them there to make sure they don't fall through the cracks and I can come back to them when needed.
Links to the videos shared by Ben with different areas:
Ajunto igualmente el inicial draft hecho por Trust Keith, pero tendras que hablar con Louisa de legal para que te pase la ultima version (o que pida ella la ultima version)
The Data Team is going to be a slightly different squad with a few members capable of doing technical work and building stuff. As all squads, is going to have a limited capacity and an infinite demand. Hence, like any other team, we will have to build a backlog, groom it, and prioritize it.
Because of this, I strongly believe that Data requires Product Management and its mindset. I’ve seen many companies fail at this, providing PO to most squads but not to Data “because it’s different”.
Nevertheless, I think Data it’s truly different. I think Product Management looks a bit different for Data than it will for the other tech squads for the different product domains. This is because of things like:
- In my experience, building data products like dashboards or one-shot, adhoc analysis is very different than building “regular” software products. There are commonalities, but also quite a few differences.
- There is a lot of foundational work that is necessary, yet doesn’t really fit nicely into one single product (like grunt work in the guts of a Datawarehouse, which is necessary to support many different reports for many different areas).
- The cross-functional nature of the team means that it has many different clients with different needs. This is challenging from a product management POV because you are fighting a multiheaded hydra.
- Data is less free than many other tech teams because it depends a lot on existing systems and teams to build it’s own stuff. We build on top of other’s work, and so have to manage these dependency relationships.
- Should there be a dedicated PM for Data? Is this an impossible task because it’s simply too much for a single brain?
- Should instead all PMs be able to add stories to Data’s backlog? What about needs that go across domains/teams? And about areas that don’t have a PM (like Finance)?
- Perhaps Data should have multiple backlogs? Or perhaps it’s an overkill?
- Should I simply act as the Data PM for now? How sustainable will that be?
1. Well, it’s an important topic, it should be well thought and I think your take on it is vital.
2. If there are headcount implications, we need to agree on them and get things rolling. Whatever we decide, I would like to bring to the Data Kickoff meeting on the 14th.
- Data Analyst with a strong product view acting as a product owner
- Begin with 3 and add more by justifying with a roadmap
## Meeting with Andrew about headcount
My notes:
---
Hi Andrew,
On the Data kick-off meeting for the 14th, I would like to present some plans in terms of what the data team should look like, people wise. I think it would be unwise to wait until then to show my cards, because hopefully that meeting is more about aligning visions that about discussing a lot. So, I would like to share my current thoughts to see how they align with yours and with overall budget/headcount constraints and plans.
@Ben Cotte, @Ben Robinson also looping you in for transparency, feel free to chime in.
- I think there is a lot of Data work to get done (which is great news because it’s a lot of good coming for the company).
- I’m obviously not gonna get much done on my own. I see backlog for a nice 4 heads (including myself). I would look for another Data Engineer and a couple of Data Analysts.
o The additional Data Engineer would be more on the strong code, modelling, infra side of things. This is important because we have a lot to build in this area, and because solely relying on me is a terrible idea for many reasons.
o The Data Analysts would be sitting closer to Product/RevOps/Finance/etc, working on top of.
o Nevertheless, there is some degree of overlap between the skillset and capabilities of both profiles, and I would like to get people with a good multi-hat attitude for these early stages.
o I would also be in favour of going for experienced profiles at this point. I don’t think this is a good time for someone to learn on the job. More junior profiles might provide better value/cost when the team is more mature and things have settled a bit.
- BTW, I’m aware there was an open search for an experienced analyst but, from the lack of news, I’ve assumed that’s not progressing or at least not close to completion?
- Besides this, I see the need for some extra work to be done in Product (somehow closer to Ben C.) and Infrastructure (somehow closer to Ben R.) The lines here are fuzzy. This doesn’t need to necessarily be part of the Data Team strictly speaking, but the Data Team will need some of this. I’m planning on discussing with both Ben’s next week to align.
Please, feel free to provide feedback and tear it to the ground if necessary. We can sit and talk whenever if needed. I would like to have some, even if it’s rough, we have agreed on for Thursday.
---
- Thursday plan
Senior Data Analyst (the brains: sitting closer to the business)
Let's adjust the third position depending on what we find for the Senior Data Analyst
- Exporting data out of Iplicit doesn't seem very important. We are going to end up doing the billing and charging logic outside of the system and then dump it in through the API, so it will be out anyways.
- I've started working on cataloguing our data and data products
- Diagnostics
- General vibe: we are in a sweet moment. The child is turning into a man, and we are starting to see some cracks in his clothing (Hulk picture)
- Concerns
- Operations issues: non-standardized process, hard to measure, hard to improve on
- Product issues: common-sense is the only driver, no analytical approach. No mature pricing strategy.
- Sales: nose driven methodology. Lack of basic data to drive marketing and sales (CLV, segments, analytics on channels, sales agents performance metrics, etc)
- Finance: invoicing.
- Technology: lack of data infra. People are integrating data with blood, sweat and tears.
- Good stuff
- Product works
- Good tech culture, mature engineering team
- Human capital is looking great to me
- Strong bet on product management feels promising
- Sales is nose driven, but it seems to be a very good nose given the results
- Do you think I've missed any important points? Any disagreements
- Data Team vision
- Responsibilities
- Supervise data across the org: catalogue and document all relevant items
- Build and own infrastructure to service needs that don't fall nicely within anyone's domain: DWH, integration of external data sources, etc.
- Build stable data products: reports, dashboards, APIs, etc
- Provide brainpower for highly complex analysis
- Build data literacy across the company
- Not:
- Own every little reporting need and become a blocker
- Act as a release valve to product short-comings
- Overcome bad process and system designs with miracles
- What does success look like
- Data is easily accessible for those who need it
- We have capacity to build data products with speed and quality
- Production systems run with good uptime
- We have the foundations to attempt more sophisticated projects (ML/AI, advanced statistical and optimization models, etc)
- Powers
- Be involved early when needed
- Impose certain standards on data owners in terms of documentation and practices
- Enforce agreements with upstream dependency owners (Robinson, don't break my columns please)
- Other parts of my philosophy
- We have a backlog, limited capacity and thus we need to prioritize, like any other team
- Not every question deserves being answered
- I'll be annoying on my dependencies
- Tell me if my vision fits what you expect of my team
- Plans
- Short-term (weeks)
- First batch of cataloguing and documenting
- Take control of important reports
- PBI
- Hubspot
- Global KPIs
- etc.
- Assist in the invoicing issue from the data side of things
- Get into important loops to provide the data point of view
- Product design
- Standardization of operational processes
- Company software decisions: stripe vs acquired, new accounting software, etc.
- Perform a first approach at grooming a data products backlog
- Start hiring
- Mid-term (months)
- Build new data products to cover different areas
- Build data infrastructure: DWH, integration solutions, better reporting tools
- Data trainings outside the data team
- Future
- Maintain and scale
- Advanced Data Products: ML&AI
- I don't know what else, I don't like looking that forward unless strictly necessary. Life's just too messy.
- Hiring
- Another data engineer
- 2 Data Analysts
- Seniority. No place for people who don't know what they are doing at this stage. I would rather have a few experienced hands than an army of newbies.
- Some timings and next actions
- Hiring
- Timebox data cataloguing and documenting
- Controling existing reports
- Timebox
- First round of grooming with the different areas to build up backlog
> Something's wrong with one or more fields: (VerificationPayment) ListingFriendlyName, (VerificationPayment) ListingAddressLine1, (VerificationPayment) BookingCheckout, (VerificationPayment) BookingCheckin
I agree with them that I will try to pullout the data of the table manually first and send it over so they become unblocked since they need this ASAP. Afterwards, I'll fix the report.
### Exporting the data
The table is using the following columns from the following Semantic Model entities:
The relationship between the entities is as follows:
- VerificationPayment N - 1 Host (on HostUser)
- VerficiationPayment N - 1 Payee (on PayeeUserId)
There are no significant transformations in the PBI queries.
I composed the following query to replicate what the table is building:
```sql
/****** Script for SelectTopNRows command from SSMS ******/
SELECT
Host.BillingCountryName,
Host.DealId,
Host.Email,
Host.Name,
Payee.BillingCountryName,
Payee.Email,
Payee.Name,
VerPay.DepositWithheld,
VerPay.FailedAttemptCount,
VerPay.IsPayAway,
VerPay.OrderId,
VerPay.PayAwayGrossAmount,
VerPay.PayAwayMinimumCommission,
VerPay.PayAwayPercentage,
VerPay.PayeeCurrencyIso,
VerPay.PayeeGrossAmount,
VerPay.PaymentDate,
VerPay.PaymentDueDate,
VerPay.PaymentProvider,
VerPay.PaymentRef,
VerPay.RefundDate,
VerPay.RefundDueDate,
VerPay.RefundRef,
VerPay.RetryCount,
VerPay.Status,
VerPay.SuperhogGrossAmount,
VerPay.SuperhognetAmount,
VerPay.SuperhogVatAmount,
VerPay.SuperhogVatRate,
VerPay.Type
FROM [report].[VerificationPayment] VerPay
LEFT JOIN [report].[User] Host ON VerPay.HostUser = Host.Id
LEFT JOIN [report].[User] Payee ON VerPay.PayeeUserId = Payee.Id
WHERE VerPay.PaymentDate > '2023-11-25' -- Jamie requested payments after 25th November
```
And exported the data and sent it over to Jamie.
Jamie then asked for more columns (specially, the broken ones):
> Hi Pablo - sorry, is it possible to have a report pulled with the columns that PowerBI is saying 'needs fixing'. So, adding columns for ListingFriendlyName, ListingAddressLine1, BookingCheckout and BookingCheckin for each of those payment.
I extend the query and it turns into the following:
```sql
SELECT
Host.BillingCountryName,
Host.DealId,
Host.Email,
Host.Name,
Payee.BillingCountryName,
Payee.Email,
Payee.Name,
VerPay.DepositWithheld,
VerPay.FailedAttemptCount,
VerPay.IsPayAway,
VerPay.OrderId,
VerPay.PayAwayGrossAmount,
VerPay.PayAwayMinimumCommission,
VerPay.PayAwayPercentage,
VerPay.PayeeCurrencyIso,
VerPay.PayeeGrossAmount,
VerPay.PaymentDate,
VerPay.PaymentDueDate,
VerPay.PaymentProvider,
VerPay.PaymentRef,
VerPay.RefundDate,
VerPay.RefundDueDate,
VerPay.RefundRef,
VerPay.RetryCount,
VerPay.Status,
VerPay.SuperhogGrossAmount,
VerPay.SuperhognetAmount,
VerPay.SuperhogVatAmount,
VerPay.SuperhogVatRate,
VerPay.Type,
Booking.CheckIn AS BookingCheckin,
Booking.CheckOut AS BookingCheckOut,
Acc.AddressLine1 AS ListingAddressLine1,
Acc.FriendlyName AS ListingFriendlyName
FROM [report].[VerificationPayment] VerPay
LEFT JOIN [report].[User] Host ON VerPay.HostUser = Host.Id
LEFT JOIN [report].[User] Payee ON VerPay.PayeeUserId = Payee.Id
LEFT JOIN [dbo].[VerificationRequest] VerReq ON VerPay.VerificationRequestId = VerReq.Id
LEFT JOIN dbo.Booking Booking ON VerPay.VerificationRequestId = Booking.VerificationRequestId
LEFT JOIN dbo.Accommodation Acc ON Booking.AccommodationId = Acc.AccommodationId
WHERE VerPay.PaymentDate > '2023-11-25' -- Jamie request payments after 25th November
```
And send it again to Jamie.
### Fixing the report
The first thing that comes to mind is: is the report broken in staging? I'll go check that out. -> Yes it is.
So, either it has been broken since the last time someone released something, or something in the underlying data model has broken.
I'm gonna check it the PBI refreshes have worked fine lately in PRD. -> They have
Apparently the visual (a table) is complaining about the following four fields not being available in the model. The fields are:
-`Listing Friendly Name`
-`Listing Address Line 1`
-`Booking Checkin`
-`Booking Checkout`
I had this quick conversation with Ben R.:
Pablo Martin
1:26 PM
Hi Ben, I have a little fire (broken PBI report). I was hoping you might have a couple of quick answers for a couple of quick questions that might save me some time
1:26
The broken report is the Payments > Client Pay Away Information. The main table is complaining about some missing fields
1:27
these are the fields
1:27
image.png
image.png
1:28
Do they ring a bell? Could they be related to that little release we looked at last month together with Lawrence?
If we don't have more context or ideas, I will assume these are safe to remove and call it day. If someone comes in asking for them again, then we put the detective hat on and work on it.
1:28
thanks
Ben Robinson
1:32 PM
They were broken some time ago and have been needed to be fixed. Those fields were added into the view a while back as a temp but never persisted in source control so got wiped out. They no longer exist in the view. Solution one remove them from the model and re publish the report without them. Solution two add in the listing and booking views into the exisitng model and map them - this is what we tried quickly but due to the relationship it was not playing ball and we had to abandon due to time
1:32
Happy to walk you through it though.
Pablo Martin
1:38 PM
Thanks Ben. Then I think I'll go the route of simply removing them for now.
Solution two add in the listing and booking views into the existing model and map them
Do you recall how need this for what? I'm wondering on whether to proactively do this or simply let it go to sleep unless someone brings it up.
Ben Robinson
1:42 PM
Alex is aware of it and there was a need for the fields quite a important one but they are working around the issue atm. All down to reconciliation and waiver payments i believe.
Pablo Martin
2:28 PM
:+1: thanks
So I'll go ahead, remove them, and then wait for whoever needs them to bring this back to my attention.
Here’s a rough sketch of the changes lifecycle, from start to release:
- Prep
- [X] Ensure no one else is working on the reports and announce you are going to do it.
- [X] Make a copy of the existing state of the report files, and back it up with the date.
- Build and test
- [X] Make the changes you need on the reports on your laptop.
- [X] Once changes are ready, publish the report to the staging workspace.
- [X] Make all the necessary checks in staging to ensure your changes are working as intended and nothing else broke. This is specially important if you have modified a semantic model that feeds multiple reports.
- Deploy
- [X] Once you feel confident that all is good, publish the report again to production.
- Again, make all the necessary checks in production to ensure your changes are working fine.
- Clean up
- [X] Announce that you are not working on the reporting suite anymore.
- [ ] Make an announcement to the relevant audience about the changes so that people can start using them.
- I tried with my contacts but got no interest so far
## Iplicit kickoff meeting
We meet with Kieran May from their side. Project manager from their side. He was an accountant.
Solution design meeting on 17/01. Deep dive in Accounting processes. Full blown detail. Sales processes, purchase processes, financial transactions, bank accounts, etc.
PID Document starts today.
After we create sandbox <-Usedfortrainingandalsofortechnicaltesting.Willalsoneedstaticmasterdata,wewillgettemplatesforloadingthat.
Workshops. We design and parametrize, work through how we use the tool. Also chance to modify final configs.
User base training with the end users.
Then, UAT before we go live, final sign off.
Production environment gets copied over from UAT. Configs get copied over, but actual books and transactions get deleted so Production stands clean.
After go live, we have support calls still with the implementation team.
After that, we go into support mode.
---
Entities
Guardhog technologies (UK) (has VAT, quarterly, standard not cash-based, GBP is base currency) (accounts@guardhog.com) used for a lot of purchases
|
|- Superhog Limited (UK) (has VAT, quarterly, standard not cash-based, has multiple currencies (USD, GBP, EUR, AUD, USD, AED, ZAR)) (accounts@superhog.com) used to get all sales
| |
|- Three subsidiaries (US, Spain (has VAT), Australian)
|
|- Guardhog Limited (UK)
We need to come up with codes for the legal entities.
US is not using Xero because it's WIP, no running books.
All entities except Spain close yearly on 31st March.
Monthly reporting.
About 14ish bank accounts.
The whole payslip accounting stuff, we might need to do a template for the Spanish ones.
Offices
- UK, Stockbridge
- ES, Barcelona
- Everyone else is remote
Do we have codes for legal entities?
- Do we have somewhere to check timeline/milestone/status?
- Are we only starting on April 1st live? Yep.
- Do we keep the sandbox env forever? - We definitely keep it for a bit. It costs money, so we should judge if it's worth keeping it forever.
- Currency conversion we need to agree on exchange rates -> Iplicit comes with currency data, we should look into how to load it in the DWH and use that for all reporting so we have a unified vision on exchange rates.
# 2024-01-09
## Call with Humphrey
- Most important stuff
- Invoicing needs fixing and finance needs to be brain-available
- Resolutions needs to stop being a dark, obscure corner
- Lots of improvement operations wise to be more efficient
- Marketing needs data to look at hosts like users (LTV, CAC, active users)
- Pricing can be a massive profit lever if we reach the maturity of insurance companies, we need to aim for it
# 2024-01-10
## Product catchup
- Azure
- WIP
- Finance
- WIP, expected a million stories coming out of this
- Hiring
- I tried with my contacts but got no interest so far
# Now
Invoicing Reformation
- [X] Discuss plan with Amanda
- Have her onboard and provide give responsiblity feeling
- [X] Send big email
- [X] Give it a name and let people know that we will work on this
- [X]Send kick-off invite
- [X] Schedule more sessions
- [X] Prepare Notion page with rough plan and status tracking
- [X] Prepare presentation for kickoff
- [X] Start creating gaps in Notion to fill during sessions
- [ ] Drop existing knowledge on inputs
- [ ] Ensure sync of all data git repos in DevOps so that Robinson can move them to the new data project
- Running this command fixed it for Lourdes: `/usr/sbin/softwareupdate --install-rosetta --agree-to-license`. All is fine if user sees `Install of Rosetta 2 finished successfully.`