The Shepherd’s Crown

The Shepherd’s Crown is the last book in the Discworld series by Terry Pratchett. I really don’t like the finality of how that sounds, which is probably why I’ve waited a long time to read this book.

Having complained about how the female lead character was used in The Unicorn Project, I figured it was time to read this book and see it done properly again.

I’m not going to include any full-on spoilers, but some things might give the game away, so don’t read this if you’ve not already read the book.

During the first sequence in the book I got a pretty good idea what was coming and I was like, “No. No. Nooooooooo!” I’m not going to say what it was, but it was a major kick in the gonads…

Tiffany Aching is a great character. It would be so easy for a lesser writer to make her a Mary Sue, but Pratchett keeps her multi-dimensional. Sometimes strong, clever, and at times ruthless. Sometimes self-doubting and almost naive.

As you would expect for this part of the disc (world), there are a number of familiar characters. It’s wrong to say any character in Discworld is “my favourite”, as it changes with each book, and sometime several times in a single book. This book contained several of my favourite characters. Some old and some new. 🙂 There was also a brief appearance by Horace, a Blue Lancre cheese made by Tiffany, who was known to eat mice, and as it turns out is capable of fighting alongside the Nac Mac Feegle. I’m ashamed to admit I had forgotten about him until he was mentioned in a scene.

This was quite an emotional roller coaster ride of a story. Partly because of the story itself and the characters involved. Partly because it was the last of a 41 book series, which I loved. Partly because of the reason for why it was the last book.

Oh well. Happy days!



For those that don’t know, here’s a little bit of history…

Despite having a degree and a PhD, I had somehow managed to remain pretty terrible at reading. I suspect a mild case of dyslexia maybe. In 2006, at the tender age of 37, I decided to force myself to start reading in an attempt to improve.

I started by reading The Vampire Chronicles by Anne Rice. In 2007 I started to read the Discworld series and got hooked. I read all of the books (very slowly) that existed until I was done, then kept reading each new one as they arrived. I’ve dipped in and out of other things since then, but by far the majority of the books I’ve read in my life were part of this series. We are fast nearing the end of 2019, and that part of my reading life is now over. 🙁

For those that care, I am substantially better at reading now. Part of that is practice of course. Part of it is not beating myself up about being crap at reading anymore. Part of it is the additional confidence public speaking has given me. I’m still pretty terrible at reading out loud, but I’m less bothered by the mistakes now. 🙂

So for the part you played in that process, thanks Terry!

The Unicorn Project : My Review

The Unicorn Project is a follow-up to The Phoenix Project. Actually, it’s more like the same book again, but written from different person’s perspective.

I loved The Phoenix Project, but absolutely hated The DevOps Handbook, so I was a little reluctant to start reading The Unicorn Project, as I was really worried I would hate it, and it would tarnish the memory of The Phoenix Project.

Overall it was fine, but IMHO it was nowhere near as good as The Phoenix Project.

I’m not going to talk details here, but instead talk about my feelings about the book. You don’t have to agree. 🙂

Let’s talk about Maxine

In The Phoenix Project, Bill was an experienced manager, but he was asked to take over a role that was totally out of his comfort zone. He was mentored by Eric, who helped to develop him in his new role using “The Three Ways” and giving him an understanding of the 4 types of work, and how they affect productivity. Bill was gradually introduced to the three ways, one at a time, and we as the reader went on that journey with him and his colleagues. There was a definite story arc and a clear development of his character.

In The Unicorn Project, Maxine is a super God-mode developer/architect that has done pretty much everything before, and is totally amazing at almost everything. The first two chapters tell us this repeatedly. At the start of the book she is already the finished article. As a result of this there seems little in the way of character development here. Where do you go from amazing? When she does interact with Eric, he basically brain-dumps “The Five Ideals” in one shot to Maxine and friends, and they pretty much run with it. The story arc and development of Maxine as a character, and most of the other characters also, is weak in comparison to Bill’s story from the first book.

You see this problem in reality TV competitions. If a person’s first audition is “too good”, they won’t win the show. The show is built around the journey. The alternative is to craft a back story that fakes a journey, which is why they didn’t mention Kelly Clarkson had already recorded demos and turned down 2 record contracts before she auditioned for American Idol. The character arc is built around the journey from waitress to diva.

The lack of “progress” of the lead character is the biggest problem with this book from my perspective. I know it’s a DevOps book, but it’s not a reference book. It’s meant to be like The Phoenix Project, which uses a story to convey the message.

I like the fact there is a female lead character, and I certainly understand the problem with making her a newbie, mentored by an old white guy :), but I think this situation caused a problem with the story line, and ultimately how “The Five Ideals” were presented to us as the reader. The concepts and meaning of them should have been drip fed to us, like they were in the first book. Almost making us feel like we’ve discovered them for ourselves.

As far as I see it, one of the following would have solved this problem.

  • Leave Maxine as a super God-mode developer, and have her introduce the rest of the characters in the development teams to “The Five Ideals”. Maybe she learnt “The Three Ways” from Eric in the past, and developed them further, giving them a more development focused slant? I guess how you play this depends on how wedded you are to the idea that Eric is involved in this part of the company transformation. She could have just figured this stuff out for herself.
  • Make Maxine less capable, and have a female mentor that teachers her about “The Five Ideals”, allowing her story arc to be similar to Bill’s, and allowing us to go on the journey with her. If you need a link back to Eric, you can always make this mentor one of Eric’s proteges or a former colleague. Hell, make her the person who taught Eric.
  • Make Maxine less capable and let Eric mentor her, like he did with Bill. Yes, people will criticise the fact you showed her as less capable, but the development of her character would have been more interesting.

So the problem isn’t the fact the lead character is a woman. There is no journey!

Why do you care about the story?

The great thing about The Phoenix Project was we learned about The Three Ways and the types of work as part of the story. It was not a technical reference book, but allowed someone new to the concepts to understand them, and see why they were important. I think a lot of people from a less technical background could pick up the book and see exactly why this stuff made sense. It was in itself a good tool to promote change.

The main purpose of The Unicorn Project is to tell us about “The Five Ideals” and how they relate to the three horizons framework. I don’t think it did a good job of that. When I finished the book I found myself asking, “Did they really explain any of this stuff properly?” I Googled some of the concepts to make sure, and learned more in a couple of pages than I did in the whole book.

I feel like you would get more value out of reading The Phoenix Project, then following it up with this interview with Gene Kim.

It’s interesting that in the interview Gene Kim says, “Maxine who is a very talented architect, knows the five ideal patterns.” From where? Just from what Eric said? OK. Is she meant to be relating what Eric tells her to what she already knew? If so, how did she find this stuff for herself? I feel like that journey is a lot more interesting, and likely more informative than what we actually got. After all, that journey is the one we saw Bill make in the first story.

After reading the interview I can see what was actually meant to be happening here was Maxine was just observing what was going wrong, whilst already knowing the solution. Eric was effectively irrelevant to her progress. In fact, her progress was not the point. It was the progress of the project that was the point. I don’t think I got that from the book at all, and if that were the case, why not go with my first suggestion and make her the “Eric” of this book? I think that would have worked a lot better! Maxine is Yoda. That works for me.

As it stands, I don’t think you can give this book to someone and say, “This is why DevOps matters”, in the same way you could with The Phoenix Project. If that’s what it was meant to be, then I think it has probably failed. If it’s a rallying call for people who already know about DevOps, then it’s probably not too bad, but could have made most of the important points in a blog post.

I see some very gushy comments about how “amazing” the book is. That is not the book I read, although you will read the word “amazing” all the time in it…

What really matters I guess

The Five Ideals are pretty much a different take on The Three Ways. The Phoenix Project and The Three Ways probably feel more infrastructure focused, while The Unicorn Project and The Five Ideals are more development focused. At least, that’s what my boss tells me. 🙂 That might make The Five Ideals more attractive to a section of the audience, as they may feel more relevant. Being someone that bridges the infrastructure and development gap, I think they both apply equally well really, but I can see how they might have a different appeal. They are different ways of stating the same thing.

There are some great messages in this book, and I agree with the vast majority of them. If you can focus on “the message”, I think you will enjoy it a lot more than me. Having said that, it feels really badly written compared to The Phoenix Project. To the point where I can hardly believe these two books are by the same author. Better editing, and maybe reducing many chapters to two thirds or half their current size, could have given this more punch and made it much better. Better than The Phoenix Project? I don’t know, but as it stands it feels like a pale imitation of it. I keep wanting to say the word “clumsy”, and everything about it feels that way. Having said all that, there were a couple of chapters towards the end which were quite exciting, so it’s not all bad.

Despite all this, I think it will be a valuable source of quotes, or paraphrased statements, and similar to The Phoenix Project, it will be used to help effect change in stubborn organisations. For that alone I guess we should be grateful.

I wonder how I would have felt if I had read this book first?

I’m interested to know what others felt. Maybe I was just expecting too much, having been such a big fan of The Phoenix Project, which I guess you already figured out. 🙂



Video : Oracle REST Data Services (ORDS) : HTTP Headers and ORDS-Specific Bind Variables

In today’s video we do a quick run through how to use HTTP headers and ORDS-specific bind variables in Oracle REST Data Services.

The video is based on this article.

As always you can see all my ORDS articles here.

There is also a YouTube playlist just for ORDS here.

The star of today’s video is Mark Rittman, who is one of the OGs of the community, and clearly ecstatic at being on video. 🙂



ORDS, SQLcl, SQL Developer and SQL Developer Data Modeler 19.4 Released

If you follow me, Jeff or Kris on Twitter, you will already know ORDS, SQLcl, SQL Developer and SQL Developer Data Modeler version 19.4 have all been released. They became available for download late Friday US time, and I got a DM about it yesterday morning, so fresh from spending 2 days running Data Guard builds, I moved on to running builds of some of this stuff.

Oracle REST Data Services (ORDS)

It was a long day, but this is what I did.

  • Updated all Docker ORDS builds : here
  • Updated all Vagrant database builds that include ORDS: here

As you might expect, the config changes were minimal, but the time spent waiting for all those builds to complete was hellish.

The new version of ORDS has an additional prompt during the installation. You get this question.

Enter a number to select a feature to enable [1] SQL Developer Web [2] REST Enabled SQL [3] None [1]:1

The documentation hasn’t been released yet, so I had to run a manual installation to spot the new parameter which was necessary to make the ORDS builds silent. If you want SQL Developer Web, you have to enable REST Enabled SQL also, which requires these in your parameter file.

You’ll recognise the first if you’ve used REST Enabled SQL before. The second is the new one.

I spent some of the time waiting for builds knocking up a quick run through the SQL Developer Web feature, which you can see here.

If you’ve used Autonomous Data Warehouse (ADW) or Autonomous Transaction Processing (ATP) on Oracle Cloud, you will already know what SQL Developer Web is. I put out the post and told Jeff to take a look. Next thing Kris put it on Twitter. I was going to wait for the docs to arrive before mentioning it in public. It did give me some quick feedback, so I was able to update it on the fly as I was playing with the tool. Kind-of “live blogging” I guess. 🙂

SQL Developer Web is a neat alternative to poking holes in your database firewall for client connections. It’s not going to satisfy hardcore developers, but I think this is going to be great for some users. The administrator functionality is interesting, and it will be interesting to see how this develops over time.


All my ORDS builds include SQLcl, so the latest version is on everything listed above. I also run this on my desktop. It’s my main client for connecting to the database because I’m a command line kid. Nothing scary happened on my desktop or on my Vagrant and Docker builds.

SQL Developer and SQL Developer Data Modeler

This is now on my desktop. I spend most of my time in SQLcl, but if I need an IDE, this is the one I use.

It’s a couple of weeks until I get back to work, so it’s going to be a while before I get to use ORDS 19.4 in production, and I’ll no doubt forget to update my SQLcl and SQL Developer installations on my work PC, then be horror struck when I notice a few weeks down the line. 🙂

Happy upgrading!



Back to the “good old days”, and other cases of denying change!

This is going to be about the technology industry, but I’m going to liken things to what’s going on here in the UK…

Things are pretty depressing at the moment. The latest political fiasco in the UK makes me realise I have little in common with the majority of the British voting public, and I’m starting to think I have little in common with a lot of people working in the technology industry.

I was listening to one of the politicians in a northern constituency that recently elected a conservative MP for the first time in ages. One of the first things she said was, “We need more investment in the north, like a focus on our high streets”. Well, I agree entirely with the first part of the sentence, but the second part reeks of living in the past. This is a classic case of not understanding how the world has changed. I come from a time when going down to the market or the local high street was the way we shopped. Now I buy almost everything off the internet. Judging by my nephews and their friends, this is the norm, but I suspect it’s not so normal for lots of people in in my age bracket and above, who haven’t moved with the times. Unfortunately, those are a big chunk of the voting public, who are looking to the past for inspiration.

I try to surround myself with people who give a crap and are focused on change, so a lot of the time I’m in this echo chamber of “progress”, but I don’t think these values are shared by our industry as a whole. Why? Because I think a lot of people higher up in the chain of command just don’t get it. They either come from a time which was “pre-technology”, or they have not progressed from “their days of technology”. They are the technology equivalent of the people shopping on the high street. With that type of people in control, progress is stalled.

Cloud deniers are the climate change deniers of our industry. We have a big problem with climate change, but people don’t want to change their lives, which is the only way we are going to fix things. Likewise, lots of people are in cloud denial, but the cloud is the only way a lot of medium sized businesses will be able to fix their issues. The cloud was originally marketed as being cheaper. It’s not. It definitely costs more money, but if you embrace it and use it to your advantage it can deliver more value than you well ever get on-prem. Replicating your data centre in the cloud in an Infrastructure as a Service (IaaS) manner is a cloud failure in my opinion. I’m fine with it if this is a stepping stone, but if you think this is the final goal you’ve already failed. You are getting little in the way of benefits and all of the costs and hassles. Instead you need to focus on platforms, which bring something new to the table. Linking services together to bring new opportunities to generate more value from your data. It might cost more, but if you can leverage it to add more value, then you are still winning. If you are being driven by people who are stuck in an infrastructure frame of mind, the potential value is not even recognised, let alone on the road-map.

The “return of the local high street” will only be possible if the local high street offers something new and unique to the consumer. What is that? I guess nobody knows as nobody has been able to do it successfully. I’m not sure a bunch of charity shops is what I consider “the future”. Likewise, those people who are doubling down on their on-prem stuff, or even talking of moving back from the cloud to on-prem need to show the value add of doing that. If you focus purely on numbers, then it’s possible you can move your crappy IaaS from the cloud to on-prem and “save some money”, but at what cost? You will be stuck in the past forever. Many of the interesting services out there will *never* be available on-prem. They just won’t! Even if you were to make the move, you can’t do things the way you used to. Waiting weeks/months for a new service is a thing of the past. If you haven’t already automated that on-prem so it happens in minutes, you have already failed. To automate that yourself will require engineers that come at a price, and the people who are into that stuff are probably not going to be interested in working in your crappy backwater.

I’m not suggesting we completely forget the past, but if you are going to focus on it, or treat it as some utopian goal you are doomed to failure. Humans have to progress or die. We can do that in a way that harms everything around us, or we can we sensitive to our impact, but regardless of which approach we take, forward is the only way!



PS. I’m sorry if this post sounds really negative, but I can’t help thinking people of my generation and older are robbing the future from those who come after us.

Update: Based on comments from Twitter, I thought it was worth addressing some things.

  • When I talk about cloud, I am not talking about a specific provider. I am talking about whoever provides the service you need.
  • When I talk about a move to the cloud, I am not suggesting blindly moving to the cloud without any planning. It’s not magic.
  • I’m not talking about moving to the cloud if that means a degradation in your service or functionality.
  • I am suggesting that for many companies there are services you can simply not build and support on-prem.
  • I do believe that the cloud is *often* an easier place to try things out. I did a POC of something the other day for less that a dollar. That would have cost hundreds of pounds in staffing costs alone on-prem in my company.
  • I think many of the negative cloud comments or demands for additional clarifications when discussing cloud act as a distraction from the message, and are used by others as a convenient excuse not to do anything. I understand, but most people are not willing to change, so giving them an excuse not to do anything is not what we need. 🙂
  • Even when you remain on-prem, you should be aiming to take on the values of the cloud in terms of automation and self-service. I’m not talking about total re-engineering and altering platforms. I’m talking about making the essential operations automatic and/or self-service.

Video : Oracle REST Data Services (ORDS) : RESTful Web Services Handling Media Files

In today’s video we take a look at RESTful web services handling media files built using Oracle REST Data Services (ORDS).

This is based on this article.

There is more information about related stuff here.

The star of today’s video is Katrina Shallahamer, who is one of my favourite people to meet at an event. She’s such a positive person to be around, and makes me wish I was a nicer person. It’s clear she’s the real brains of the OraPub operation, but don’t tell Craig I said so! 🙂



What are you really measuring?

File this under the “Lies, damn lies and statistics” section.

As I walked into the office the other day I looked at a monitor used to display various bits of news and information. One of the things it displayed was the number of service desk calls over the last period. I’m sure my reaction was meant to be, “Wow, the service desk are smashing it by answering all those questions!”, but my actual reaction was, “Wow, our services suck!”

The issue here being you can look at those statistics in a number of ways. If our systems were better and more intuitive we would get less calls, so a statistic showing a large number of answered calls reads as a bad thing to me. We should be aiming to reduce the total number of calls by building better systems. The fact people need to interact with the service desk should be seen as a negative IMHO. That’s not to downplay the work our service desk are doing, but we should be aiming to make it as unnecessary as possible.

So coming back to the title of the post, when people post an assortment of KPIs, it’s worth taking a step back and asking what they mean, or could mean. What is really being measured by these KPIs? Maybe that number you display with pride is actually a sad indictment on your systems. Maybe not. I know what I think. 🙂

If we were discussing a database we might say with pride, “My system processes 10 gazzillion I/O requests per second!”, but if that is because the database design is bad, and the application is terrible, all this proves is you have created a crap solution. There is nothing to be proud of here.

It’s also funny when people post numbers without context. If I say I’m going to invest £1 million into something you might think that’s a lot in isolation. If I were talking about the NHS, which costs over £140 billion per year to finance, then all of a sudden £1 million seems rather trivial. Context matters!

We get these sort of out of context numbers all the time in tech. They might be benchmark results or manufacturer figures. This may sounds rather odd from someone with a science background, but rather than focusing on the numbers, we should probably focus on the feel. Does this feel fast/slow. Does this feel better/worse. Does this service feel good/bad. I’m not talking about throwing science out of the window completely. I’m talking about putting things into context, rather than just falling for the, “A bigger number means we are better!”, mentality.

Just a thought…



Video : SQLcl and Oracle REST Data Services (ORDS)

In today’s video we’ll demonstrate the ORDS functionality built into Oracle SQLcl.

This is based on this article.

There are loads of other ORDS articles here.

The star of today’s video is Arman Sharma, captured at Sangam 2015. Seems like yesterday.