Peas

“I eat my peas with honey;
I’ve done it all my life.
It makes the peas taste funny,
But it keeps them on the knife.” – Anonymous
 
 

I’m the sort of person who hoards random leftover stuff in the toolshed because reasons. One reason is that they’re useful (wrenches). Another is that I use them a lot (screwdrivers). Yet another is that I know other people use them, so I’ve got one in case I need one (chisels).

Perhaps the most maddening reason is that there’s some stuff I have just because someone offered me it and I just couldn’t say no. Like the bench-mounted double grinder (I don’t have a bench) and a mitre box, when I think something might be cool or useful, it goes in the shed perhaps never to be used, but I’d rather have a tool that I might need than not have a tool I do need.

With data, there are just so many tools though ! Knowing which one to use is difficult at the best of times – they all do one thing very well and other things beside – and it sets off my anxiety just thinking about the range of possibilities.

Helpfully, there’s someone in the data community (isn’t there always) who takes it upon themselves to document all the available options to make chooosing a tools easier. In this case, it’s Matt Turck. Every year for the past five years, maybe longer, Matt has produced a handy infographic of the Big Data Landscape, accompanied by a very insightful blog which you should make a point of reading. This is the picture for 2016, and this is the one for 2021. Please take a look at them before reading further…

The thing that’s most striking about these images is how much more there is in the later one. The explosion in data and analytics over the last few years, coupled with the availability of more open-source software has led (in my view) to a bewildering array of options for data – so much so that it’s probably easier to stick with what you know.

Making the right technology choice for your thing is important. Making the right tooling choice for manipulating, moving, transforming, aggregating, tagging, reporting, analysing, and visualising your data is also very important. And just as hard, if not harder.

Imagine designing a system in a NoSQL datastore like Apache Cassandra, only to realise that reporting is *not* as simples as a SELECT * FROM table JOIN otherTable ON commonColumn, and you should really redesign your entire keyspace to get that kind of data materialised up front (please, no comments on the relative merits of Materialised Views in Cassandra – that can only end badly).

My point here is that sometimes a plethora of choices can lead to suboptimal decisions. Tooling for the data professional is not ‘When all you’ve got is a hammer, everything starts to look like nails’ – it’s a delicate balancing act between function and useability. Not everyone is going to know every tool. No one expects them to, except possibly recruiters, and nor should anyone denigrate one tool in favour if another to another potential user.

It’s a personal choice, unless your org has a specific toolset, but I’m guessing that most larger orgs won’t have one that covers all of the current tech stack (or if they do, it’s so out of date it’s not funny any more).

The choice comes down to whether you continue to eat peas with honey, buy a spoon, borrow a fork, or stop eating peas in the first place.

Back soon….

Embracing chaos

A choice to be made

A long long time ago, in a city far far away, I made a decision that kinda changed my life in a big way.

Being slightly wierd about stuff and wanting to be free of the tyranny of choice, I threw out *all* my socks, and bought 12 pairs of identical black ones.

I was just at one of those stages of life where I thought that I was spending entirely too much time pairing socks after washing them. So, replacing all of them seemed like a good idea. “Any colour, as long as it’s black”, right ? And black goes with pretty much anything, right ? To this day, I only have 2 colours of socks (black and grey), and they are of different styles, so I can’t get them mixed up.

This only kinda changed my life. There was another incident a few years back that changed my perspective quite dramatically.

An epiphany of sorts

It was on a training course – 5 days of Sharepoint 2013 installation and configuration – and, as you might imagine, we tended to have long tangential discussions to relieve the tension and create a human bond in the classroom.

The instructor asked if anyone had any ridiculous rules to live by. I mentioned the sock thing, naturally…

And this is where the game levelled up dramatically. The instructor revealed that *he* had the *same* inclination when it came to socks, but his approach to finding a solution was so different, so radical, that it changed my life.

His theory was that, even with careful planning, socks wear out and need replacing, thereby introducing variation in foot attire that was almost, but not exactly, the same as the original problem – socks that don’t match and need to.

So he bought his socks online, in packs of three, that were *guaranteed* not to match. He was happier for bringing more colour into his life, and was still freed from the tyranny of choice – socks ain’t gonna match, so why waste time worrying about them ?

Life-changing times

Once you accept that there’s always going to be some variation in a given scenario (and also accepting that any variation has the capacity to drive you insane), perhaps embracing chaos is the way to go. It’s quite liberating to realise that there are certain elements you can’t control, but you can influence some elements that you have no control over by putting them in a ‘no control’ bucket. Let me contextualise that a bit more….

We’re rolling out Microsoft Teams to update our collaboration and promote new ways of working. Nothing to do with Skype For Business being sunsetted, no, nothing to do with that at all…

One question that comes up fairly frequently in the forums is the one about being able to delete chats – something that at time of writing we’re not able to do. We can delete individual comments, but the chat lives on. It just disappears off the ‘recents’ list.

If you’re the sort of person who likes a tidy mailbox and keeps everything in apple-pie order, I can see that this might cause some people ‘issues’ in the same way as socks did for me.

However, the persistance of chats and messages in a searchable log is a Very Good Thing. Hands up if you’ve ever searched emails or other electronic conversations for a half-remembered detail or needed to prove how a decision was made ? If the conversation had been deleted, there would be nothing to go search in and personally I’d spend quite a bit of time wondering if I’d just imagined something…

The fact that I can’t delete chats or messages in Teams is therefore in one of those ‘no control’ buckets – I accept that I can’t change it, but I know I can leverage the features that a lack of control actually brings by being able to search the archive. And that has to be a win.

What’s next ?

To be honest, I don’t know what’s next. There’s a lot of choice in the data world at the moment. So much choice that to some it’s daunting, to others completely overwhelming. Have a read of this blog, and tell me that the infographic doesn’t trigger at least *some* anxiety – how are we supposed to make architectural sense of that ?

Not sure, but I’ll be embracing that ‘chaos’ and looking for what it can deliver for me, my colleagues, and our services.

Thanks for reading.

 

 

SELECT asterix

It’s not what you say, it’s how you say it…

 

Roman history

When I was a slip of a lad, I spent waayyy to much time reading Goscinny and Uderzo’s Asterix books. I loved the idea of this little village in Normandy full of larger-than-life characters always getting one over on the Romans.

Of course, I read these in English (although they were written originally in French), but the translators did an excellent job of turning french idioms into relatable jokes.

So much did I admire this skill that I originally intended to be a Translator for the UN, but there just weren’t the right circumstances for that (like having a degree in French, for one). No matter, being a data nerd works for me, too.

What does this have to do with data ?

So, when looking at wierd-ass T/SQL, PowerShell, gnarly execution plans or whatever, it helps if you can visualise the intent of what’s in front of you and then apply your ‘local‘ knowledge to tune, improve and optimise – you know how the platform works.

It’s a skill that all DBAs should have – being able to look at code and feel what’s wrong. Developers (and some DBAs) call this ‘code smell’ – when something’s not quite right and there’s a challenge there to find out what.

Right, so you’re very clever. What next ?

It would be a very sad state of affairs if the DBA just made the changes and released the code to production – it’s happened in the past and is pretty much guaranteed to annoy the developers – and hope that the changes make it back into the source if anyone bothers to ask.

So, we use source control to start the conversation with the team. There are myriad ways of doing this, and I’ll leave the mechanics of that to you. It’s not why I’m writing this, and hopefully not why you’re reading it.

What happens next it the tricky part – the softer skills you need to be able to artiutlate atruicutate articulate your reasons and listen to the responses you get. Being able to have technical conversations at the appropriate level while making (or retaining) good relationships.

There’s something else – what are you not saying ?

OK, this is where I make the connection between Asterix, code, and relationships.

In today’s remote-working environments, we deal with any number of people from different backgrounds and cultures, all with their own back-story and ways of doing things. It’s rare for anyone to see eye-to-eye with someone else immediately (unless they’re also a DBA), so we need to change what has been written in code into something that is readily explainable and, more importantly, alter that message according to the audience. Exactly like the translators of Asterix took the original text and images, changed some of the words, localised the content and delivered it back with the original artwork – message substance unchanged, but more relatable.

When approaching a new project or technology, or talking concepts and architecture, I find it much easier to explain things with pictures (I’m loves me a whiteboard, I doos). There are universal signs for ‘database’ and ‘server’, but I once explained the concept of a data lake using a Fire Engine and a simple sewer system (you might want to talk to me offline about that one).

What ??!!??

I guess what I’m really saying here is that optimising code is hard, but talking about code and concepts is harder, and needs to be very carefully handled. If you’re talking about replicas in MongoDB to a Project Manager or Solution Architect, it’s probably best not to bang on about partitions, surrogate keys, and JSON too much – try to find a concept that’s relatable.

Again, what ??

Replicas in MongoDB is a bit like a supermarket chain. All the products that the supermarket chain sells are delivered to a distribution center, and then identical items are dispatched to each supermarket so that:

  1. Each supermarket has exactly the same products on offer
  2. Customers can go to the local supermarket to get any product they need that that the supermarket has in stock
  3. New products are delivered to a central location and automatically distributed.

That’s probably over simplifying things for a technical audience, but hopefully you get the idea.

Executive Summary

A good DBA knows their platform well, and can achieve performance miracles on an almost daily basis

A great DBA can explain what concepts are important and start to embed ‘best practice’ by advocating for the platform to a wide variety of people with different levels or abilties ablitbe skills.

A superlative DBA can use images and language to take people with them to shape that best practice and sharpen those skills.

I hope one day to be superlative.

Thanks for reading.