Tuesday, 24 January 2023

The Agility Angst

First of all: let me start by showing my age. I was born in 1973, and yes, that does mean that there's a big, and I mean BIG, party coming later this year. Big Five Oh looming around the corner - and to be honest I am very, very fine with that. I am happy with my age - except when I am being dropped like a baby at the back of the cycling bunch. Then not so much - dammit.

What does my age have to do with anything? Well - it basically means that I grew up with a very, very different type of software development practice. OO was still young. The mythical man-month was still a thing. And methodologies all depended on strict, rigid waterfall development models.

Nothing wrong with the odd waterfall, of course, but with the emergence of more and more, and better and better, software tools, libraries and frameworks - this whole idea of the time consuming waterfall process has kind of become irrelevant. Who would still go through this entire process and ask their users to wait for months before they would be able to give any feedback? What users would accept that type of arrogance on behalf of their IT department? Seriously?

Wednesday, 18 January 2023

The modeling mismatch


After having spent 10+ years in the wonderful world of Neo4j, I have been reflecting a bit about what it was that really attracted me personally, and many - MANY - customers as well, to the graph. And I thought back to a really nice little #soundcloud playlist that I made back in the day: I basically went through dozens of #graphistania #podcasts that I had recorded, and specifically went back to the standard question that I was asking my interviewees on the podcast: WHY do you like graphs??? WHY, for god's sake!!!

Unsurprisingly, people very often came back with the same answer: it's the DATA MODEL. The intuitive, connected, associative, visual, understandable structure that we humans love interacting with: the labeled property graph (LPG). Have a listen to what people were saying:


Thursday, 12 January 2023

Pastures wide and green

Dear friends

a few weeks ago, I sent out this tweet:


Since that time, a lot has happened: a new year has started, a lot of fun was had with family and friends, a lot of bike rides were done -  and a lot of personal and professional conversations have been had. Obviously, it will take more time to move on from the wonderful world of graphs, but I feel increasingly positive about the journey behind me, and the journey ahead of me. 

With time, it's also starting to get clearer and clearer for me that I have learned so much about the world in the decade that I spent with Neo4j. Here are some bullets of what I learned:

  • Building great companies is hard. Period. It takes hard work and persistence to get to any kind of success.
  • Making people work together towards a valuable vision makes a world of a difference. Graphs are incredibly good at helping the world make sense of data - and there is not a shatter of a doubt about that in my mind. 
  • You can't build a process that beats the efficiency of organic collaboration of groups of people aiming for a common goal. 
  • The intrinsic motivation that you get from that goal will make people walk through fires. I voluntarily worked  my ass off for Neo4j for many years - because I believed in it. Still do.
  • Practitioners slash developers are ah-may-zing. They are the fuel that drives IT innovation - not the CIO up there in the boardroom. Pampering practitioners and making them love your software makes a world of sense, as they will sow the seeds of commercial success. The days of wining and dining your way to a deal are gone. Forever.
  • Helping practitioners be more effective inside their organisations is what I think a salesperson is supposed to do. Not selling TO them, but with them, building the technical and the value case for the investment - together. 
  • Selling with them means overcoming the inherent inertia that any complex system/organisation will thrive on. People don't like new things, because they don't like the uncertainty that comes with that novelty.
  • Overcoming uncertainty is at the core of selling high-tech software. The only way to do that is to focus on maximising the quantifiable value of the software, and minimizing the perceived risk of its adoption.
  • Honesty, authenticity and empathy are core to long term success. Anyone can get a quick hack success. In the long run, that never pays off.
That's just a small sample of some of the great lessons that I learned over the past decade. Going forward, I am going think through the different options that I have, and figure out where I can apply my experience most effectively. I want to find a company in a domain that I love, with a mission that I can get behind, and a team that I can fit into. 

I know I will find that place - but it may take some time. I am going to give myself that time, and in the mean while have lots of great conversations with lots of fun and interesting people. With time, that will lead me to pastures wide and green.

So: if you want to have a chat - please hit me up! You can reach me through this blog, or on the usual social media (Twitter, LinkedIn). 

All the best

Rik

Tuesday, 15 November 2022

A 2nd, better way to WorldCupGraph

Hours after publishing my previous blogpost about the WorldCup Graph, I actually found a better, and more up to date dataset that contained all the data of the actual squads that are going to play in the actual World Cup in Qatar. I found it on this wikipedia page, which lists all the tables with the actual squads, some player details, coaches etc. as they were announced on 10th/11th of November.

So: I figured it would be nice to revisit the WorldcupGraph, and show a simpler and faster way to achieve the results of the previous exercise. So: I have actually put this data in this spreadsheet, and then downloaded a .csv version:

These two files are super nice and simple, and therefore we can actually use the Neo4j Data Importer toolset to import these really easily.

Monday, 14 November 2022

No WorldCup without a WorldCupGraph!

Last week I was having a conversation with one of my dear Neo4j colleagues, and we were talking about the fact that Graphs are simply so much fun to play around with, and that there's nothing like a great interesting dataset to have people really experiment and acquaint themselves with the technology. I know that to be extremely true, and I think I have demonstrated this elaborately over the years on this runaway blog of mine.

Then the conversation turned to a topic that I know very little about: the FIFA World Cup in Qatar that is starting next week. Now, reading this blog you may know that I am a little addicated to my 2 wheeled #mentalhealthmachine, and that chasing a ball across a field seems like a little bit of a game to me - but hey, that's ok! And with this conversation it actually dawned on me that at Neo4j, we had done "Worldcup Graphs" both in 2014 and in 2018: our friend and former colleague Mark Needham was the driving force behind both of those efforts.

You can still see some of the work that Mark did at the time on Github and Medium. It was truly another example of how a cool and timely dataset would get people to explore the wonderful world of graphs and get to know the technology in a fun and interesting way.

So: I decide that it would be nice to do that again. With all the new tech that is coming out of Neo4j with the release of Neo4j 5, that could not be very difficult, right? Let's take a look.

Thursday, 6 October 2022

A Graph Database and a Dadjoke walk into a bar...


I just publised a blogpost series with 6 different articles about me having fun with Dadjokes, in an unusual sort of way. Here are the links to the articles:

All of the queries etc are put together in this markdown document. I plan to make a Neo4j Guide out of this as well in the next few days so that it would become easier to use. 

Hope you will have as much fun with it as I did. 

Rik

DadjokeGraph Part 6/6: Closing: some cool Dadjoke Queries

A Graph Database and a Dadjoke walk into a bar...

Now that we have a disambiguated graph of dadjokes, let's have some fun and explore it.

How many times does a joke get tweeted?

MATCH ()-[r:REFERENCES_DADJOKE]->(dj:Dadjoke)
WITH dj.Text AS Joke, count(r) AS NrOfTimesTweeted
RETURN Joke, NrOfTimesTweeted
ORDER BY NrOfTimesTweeted DESC
LIMIT 10;

How many times does a joke get favorited?

MATCH ()-[r:REFERENCES_DADJOKE]->(dj:Dadjoke)
RETURN dj.Text AS Joke, dj.SumOfFavorites AS NrOfTimesFavorited, dj.SumOfRetweets AS NrOfTimesRetweeted
ORDER BY NrOfTimesFavorited DESC
LIMIT 10;