Review: Antifragile: How to Live in a World We Don’t Understand

Antifragile: How to Live in a World We Don't Understand
Antifragile: How to Live in a World We Don’t Understand by Nassim Nicholas Taleb
My rating: 3 of 5 stars

Nassim Nicholas Taleb comes off as an asshole. Much of what he asserts as new or original material is simply redefining concepts like resilience or robustness as slightly less than I had learned them, although that may have more to do with my time spent in social work. Nevertheless, there are some decent points in this book. I think I’d give Taleb’s work about as much shrift as Simon Sinek’s, and in much the same way – read (or watch) a summary and you’ll probably come away as enlightened as you would having mauled the corpus entire.

View all my reviews

David Ing on an Architect’s duty, or why the Wayback Machine is awesome

The following quotes have all been taken from The Wayback Machine as David’s post has been removed multiple times from various of his blogs and it’s just easier.

So the architect’s job, and one that does get overlooked from time to time, is to go through the system design from many different perspectives and check that everything is still as good as you think it will be from different viewpoints. Remember that everyone else is busy beavering away on their various ‘next level up or down’ so you had better keep your head above the gopher hole.

[…]

…architects can sometimes be like old army generals at a war college, in that they keep trying to fight the last war even if the battlefield has changed.

The rather tired but still relevant analogy is how an airline pilot does things different from a software architect. The two pilots sit at the front and ticks off a series of mundane sounding items (Flaps 10% – Check, APU standby – Check, Nice Hat at Rakish Angle – Check etc) even though they do this every single day of their lives, while an architect would happily do all this from memory even though they do it every 2 years. The difference isn’t in the brain power of the pilot vs the architect, it’s in the relevance importance of forgetting something. A slow web page hasn’t ever killed 200 people, just annoyed them.

[…]

…nearly always by making an ‘embedding’ decision you are actually changing the systems requirements in a way that might not be obvious at the time. If you don’t have the mandate to make that sort of compromise then the inflexibility of a buy decision can be painful. You can get a lot out of buying components or frameworks but you must quickly shift into the attitude of knowing where the sweet spots are – in other words, ‘Stay On The Path’. There comes a time where you stretch the original metaphor so far with what you bought that you just need to hold you hands up and say ‘enough’. It seems to be a harder decision to drop a bought subsystem or framework that it is to first adopt one.

[…]

For the rest of us that don’t actually day-to-day need to use the systems we develop then need to form some sort of relationship with people that do. I don’t have a table of stats to show you but I personally have a deep feeling that software projects fail in two main ways:

(a). The system doesn’t work that well.

(b). The system works well but doesn’t do what you need it to do.

By and large it’s mainly always (b) in that it missed the need of what is actually useful. But it seems that we as an industry seem to concentrate our collective brain power on solving (a) much more though. The Agile approaches seems to at least attempt swing the game back into admitting that we can’t really go that long before doing the wrong thing, but in my limited experience, it often seems to just accept that this developer-domain gap exists as an unavoidable ‘tax’ to be amortatized over a short set of more rapid releases.

You can go either way with trying to understand the domain problems as a software architecture. You can choose to fully surround yourself with them in an attempt to understand them more, or you can trying to step right back and just call them ‘Widgets’. The danger with not getting involved with the business requirements is that it is tragically easy just to hear what you think are justifications for the architecture you have in mind. This problem is also compounding with the fact that if it takes 6 months to gather the requirements then they are probably not going to be correct in six months time. Requirements are a 4-dimensional problem.

The first part of my tip for the software architecture in terms of the requirements is to at least spend as much time listening to the users as you do your implementation team. Also try to actively look for aspects of the system you know are difficult to implement and go around with active questioning on those early on.

[…]

David himself has complained that he sounds dated, that most of these points have been better made elsewhere, etc., yet each time I read the piece I find new value in it.

More readings on Architecture.

Saying DevOps outside of a conference or meetup

I was watching Damon Edwards yesterday talking about driving horses to drink, and his Rule 1 hit me right in the feels: “This word DevOps, it’s probably working against you.” Of course, years of Agile-washing have demonstrated the major problem with any methodology or school of thought one might care to follow – whether malicious or not, there are people out there only too happy to adopt the terms associated with any buzzworthy movement and apply them to the same old garbage which obscured the bottlenecks in the first place. When trying to work with people outside of the echo chamber, we might come off like rabid street preachers or the ShamWow guy. It’s far better to leave our operational roles behind and spend time sitting in the same space as the coworkers and customers we’re trying to enable, learn their language and workflows as best we can, and try to communicate with them in common terms as much as possible. It’s far more likely that people just don’t know how or why to do any better than that they’re actively trying to drive the business into the ground.

Culture’s the initial problem, communication is key to changing the culture, and of course any optimization that doesn’t address the constraint at the bottleneck is wasted and may exacerbate the problem. None of this is new.

Review: The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn’t

The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn't
The No Asshole Rule: Building a Civilized Workplace and Surviving One That Isn’t by Robert I. Sutton
My rating: 4 of 5 stars

While some won’t look twice at this book due to the name, everyone who survives long enough to enter the workplace probably should read it at least once.

View all my reviews

Review: The King’s Blood

The King's Blood
The King’s Blood by Daniel Abraham
My rating: 2 of 5 stars

I found this book not quite as engaging as the first in The Dagger and the Coin. Of course, I have the next in the series already waiting on the shelf, so it wasn’t enough to persuade me to stop reading the series.

View all my reviews