Hello RSS readers!
Update: I’ll be darned. A month later, I’ve been able to actually change my thinking and fix this problem! Was writing this post the solution? Impossible to say. :-)
I’ve just shelved another great software engineering book: Designing Data-Intensive Applications by Martin Kleppmann. It caused me immense anguish.
Because it’s just as good as I’d been lead to believe.
The same is true of A Philosophy of Software Design by John Ousterhout.
Before that was Site Reliability Engineering by Betsy Beyer, et al.
All amazing books. All incredibly painful to read.
There they are: the three aforementioned books with my bookmarks. You might notice the head of Chewbacca sticking out of the Ousterhout book.
The thing these three books have in common is that regardless of length, I only get 10-20% of the way into them before the pain becomes too intense and I put them down never to pick them up again.
What the hell is going on? Where is this pain coming from?
Can’t apply the information
This is related to the Phenomena of the Game Manual (in which I don’t care about video game information until I’ve actually played that game - and then I care a lot). But the difference here is that I already care a lot.
I care a lot, but I can’t apply it. The challenges these books address are not challenges that come up in my hobby programming (generally). These are work-scale problems. And at work, I’m not in a position to apply them.
Oh, I’ve brought all of these things up before and I’ve gotten some nods and thumbs up. Dishearteningly few, but at least I know I’m not completely alone.
Yet mumbled agreement from peers is not enough to implement the large-scale changes required to apply the golden knowledge in these books. No, these things require a significant investment and that has to come from the top. A philosophical shift, really. I’m not in a leadership position and I don’t want to be in a leadership position. I want to write software.
So I agree with what’s in these books. I love what’s in these books. But I know it’s not going to happen soon and it’s disheartening. Beyond disheartening, it’s painful.
I get sarcastic or even angry while reading: "Oh, must be great to live in fantasy land!" Or, "Damn, that’s nice…but it will never happen."
I’ve shelved the books. It’s healthier that way.
What I need to do is focus my attention where I can actually make a difference. Make quality software where I can and make the right decisions when I have that leeway to choose.
If I can’t apply it in code, I don’t want to think about it.
And yet, I think it’s inevitable that changes will have to be made. Maybe not soon, but eventually.
And when that happens, it would be nice to be part of the solution. And I can’t do that unless I’ve got ideas and insights. And since I don’t build large-scale business applications in my spare time, the only realistic way to gain this information is reading about it. And I’ve got these great books just chock full of great ideas and insights.
I know from experience that when the change does come and there’s a call for ideas, I’m not going to have any warning. I won’t be able to press a Pause button while I go read these books. Nor does anyone want to hear me say, "I’ve got these great books on the subject."
No, I’ll need to have already internalized this information and be able to readily recall it (or at least reference it).
So if I want to be part of the solution when the time does come, I do need to read these books now and know what’s in them.
Change how it feels
But I don’t want to be in pain while I read. Pain sucks.
So I have to change how I think about this information. If I can somehow think of this process as Storing Up Cool Knowledge to increase my personal abilities, that will feel good.
Because Trying to Fix Problems at Work and not being able to apply what I learn doesn’t feel good at all.
Okay, DDIA is off the shelf again.