GDPR and youth squads

Bubbles, FC Sunnyvale Developer 17 May 2018, 16:09

If you think it has been a bit quiet here lately, then it's mainly because we have been busy preparing for the EU's General Data Protection Regulation.

Unfortunately, it's a huge job for a small company like ours with only have a full-time employee (myself) plus a freelance developer.

In order to comply with legislation, we (I) must produce a very large amount of internal documentation, such as a description of data flow, a risk profile and an impact assessment, as well as procedures for securing personal data. Here at Virtual Manager we have another challenge that in we rely on our volunteer crew to handle many different tasks, which means that they currently have access to certain data. We must ensure that only the necessary people have access to data about our users.

Although we really only have very limited data about our users, the definition of personally identifiable data in the GDPR is very broad. Most crew roles can only see your email address, but according to GDPR that is also regarded as personally identifiable data. Even though we know nothing about you personally, when the only we know is that you have a club called "Flipping Sodbury FC" with the email [email protected], then according to the GDPR, there is a theoretical possibility that we could combine our data with another company and that way learn more about you - for example, if you are a member of the "Young Adults with Nut Allergies" community on Facebook and have used the same email there.

For that reason, an email address is regarded as personally identifiable data and if our crew should be able to see your email address, then we would have to get them to sign data-processor agreements - and that's probably a bit much to demand of volunteers who just want to help out. Therefore, I am currently analyzing all the data that the different crew roles have access to and removing everything that can be removed. This will in many cases mean that we will have to implement new crew tools and find other ways to perform the tasks that the crew helps us with.

However, it may still be an issue if someone writes personal information themselves, for instance in a support message,when talking to our volunteers. This means that we will have to add warnings to the support pages to make it clear that you shouldn't write any personal information in your messages, unless your case has been escalated to an administrator. Also, definitely don't write support and tell them that you have a nut allergy because that's health information and then we'd really be in hot water! :P

Myself and our administrator, FC Razor, are covered by the company's data handling policies, as we are both employees here. That means that we are cleared to handle personal information, but we also need to be careful. For example, if Razor sends me a text on the phone saying something like "the club with the email address [email protected] is having issues with payments", then according to the GDPR, that means that we have then "shared" someone's personal information with each of our phone companies, which would require us to have data-processing agreements with them, and disclose that in our data policy. We would also need to make sure that the text was deleted again. The same applies, for example, to 10 year old mails in our support email inbox, which of course contain the sender's email address. We have a lot of cleaning up to do.

We also have to implement tools to help us delete all data we have about a club, except for the data that we, according to Danish accounting regulations, must keep for 3 years after anyone makes a purchase from us. We are also required to provide you with all of your data in both machine-readable and human-readable formats, which requires even more tool development.

Unfortunately, we might also have bother you with a lot of questions about consent to this, that and the other thing.

Youth squads

BUT ... while I'm bogged down with the GDPR, our freelance developer is probably happy that he only has to focus on youth squads, and it won't be long now before we can publish the first beta.

However, before we can do that, we need to start migration and converting date beforehand. Huge amounts of data need to be created or changed before youth squads will work.

This is because with youth teams we have changed a large number of data relationships that have been completely fundamental since the game was first made. Today, virtually all data in the game is linked directly to your club via your club ID, but with youth squads, a new squad layer is added between the club and, for example, players.

There is a mountain of ​​data where we will cut ties to the club and then connect it to a squad instead. Besides players, this includes:

  • Tactics
  • Matches
  • Trophies
  • League history
  • Cup entries
  • Cup qualifications
  • Match tactic selections
  • Player roles
  • Player history
  • VIFA rank history

VIFA rank, VIFA points, supporter numbers, match form, and league positions must be moved from your club to your senior squad.

Whereas the individual stadium stands and ticket prices today are directly linked to the club, these must instead be linked to a new stadium model that is linked to the squad, which in turn is linked to the club.

The number of rows in the database that have to be either created or edited will be around 200 million. If we did that on the day that youth squads are released, it could easily take several days and the site would be have to be closed down for all of that time. That's obviously unacceptable!

Therefore, we are working on a hybrid release, where the existing code must be able to create and maintain the new data and relationships without it being seen in the game. That way, we can perform data migration quietly in the background over the course of a couple of weeks before we release youth squads.

The aforementioned 200 million data rows that need to be changed should also give you an impression of how extensive the basic technical work has been - much more complex and far-reaching than we could imagine when we started.

Youth players as seniors squad substitutes

One of the most requested features for youth squads has been a way to use your youth players as substitutes, in case the senior squad is affected by injuries or suspensions.

When editing senior squads tactics, players from the youth team will appear in the playlist as "Youth replacements", and you can use them as you like.

So far, we haven't seen the need to implement any restrictions on how many youth players you are allowed to use in the senior squad tactics or how often. There shouldn't be any benefit in overdoing it, anyway.

In order to easily distinguish the players, the youth players are shown with your away colours.

When you think a youth player is ready for a permanent place on the senior squad, you can promote him whenever you want.

If a player has already been on your youth squad one then promoted, he cannot be moved back down again.

However, if you buy a young player who then goes straight into the senior squad because there was no place in the youth team or if you had not yet created a youth squad, then you will still be able to move him down, but only once.