Thursday, 21 October 2010

Lis's handy guide to database managing

Or database management? Managing?

Hello everyone, my name is Dotty the Database Manager. I manage a database. I don't create any of the data content, other people do that (user group A, we'll call them). The data is created in language 1, and can be translated by users (with the appropriate profile, user group B for instance) into languages 2 through to 12.

The main data sets are created and translated accordingly to a timetable that is drawn up 6 months in advance, communicated widely, and updated regularly. This ensures all user groups can plan and manage their workload for this content.

When user group A creates content, I leave it up to each user to inform user group B that data is available for international adaptation. Group B needs to receive this information in a timely fashion, because the data must be ready for use in each country according to a strict seasonal calendar. Sometimes group A gives the wrong information about new data to group B. This causes confusion and can lead to errors. If I were in control of the information group A gives out this wouldn't happen.

Recently I had the IT team develop a great new module where user group A can create new content entirely autonomously. It's fantastic because they no longer need to work to a restrictive calendar. They can create content as and when the fancy takes them. Once content is created, they can edit at will, with no fiddly un-publish/un-link/re-link/re-publish operations as with the main data sets. Even better, if content is already translated, they can still edit and even delete without any restrictions (unlike the main data set, where you cannot modify any content that has been translated, you have to create a new record). Sounds fab, doesn't it?

There is no timetable for the creation of content in the new module. Users in group A don't communicate when they create content (to me, Dotty, or to user group B). The new module does not include any type of automated alert to inform me or other users when content is created/updated.

If users in group B want to adapt the content in the new module for use locally, they have to check, one by one, close to 300 folders to find out whether content is present. If they have a vision in a dream informing them that changes have been made to already-adapted content, they have to check, one by one, close to 300 folders...

Sounds fab, doesn't it? Oh, no, hang on, sounds shit. That's because it bloody well is, Dotty!

As you'll have guessed, Dotty is a fictional character. But she is largely based on somebody in my company who has had a module added to her database, but no has no control over what is created and updated, or when, in the module. So she has no way of communicating this information to users who need it. When I stamped my feet and pointed out that this was not good enough, she suggested a query that could scan the data sets and look up changes. We could run it every 2 weeks for example. OK great, I'll take it. 3 weeks of development time before we can have our query. Eh?

Lessons to learn:
1. Don't create features that allow users to create/edit data with no controls whatsoever
2. Manage your user groups so they inform you, database manager, or at least impacted user groups, of new or updated content
3. Take responsibility for your scope



Brennig said...

Needs a change control process with oversight/sign-off.

Zhu said...

Sounds like a common work issues, applicable in many fields...!

Lis of the North said...

That is very true Bren. Also needs the team manager to take some responsibility and start leading by example, methinks.
Ah Zhu this is true, there is lots of scope for lots to get messed up in so many offices!

Sean Valjean said...

Do many of these places do shipping ontario?