For me it harks back to a lot of things I have recently read and done, in particular the design process for good (for some definition of the word) object-oriented software, as Practical Object-Oriented Design in Ruby: An Agile Primer covers really well. Sandi talks about OO being all about the messages, and you end up with well put together clusters of objects if you start from there.
DDD comes at the problem from a different direction, instead starting out at a higher level of abstraction in the problem domain, rather than creating objects and seeing how they work together. It has some tools for uncovering what the business wants. It starts by looking for a ubiquitous language and making sure that the development and testing silos are speaking the same language as the business.
Of course, it's more complicated than this. Vernon gives the example of a book publisher. The people commissioning a book need different language to describe setting up their relationship with an author and paying them, the people creating the book and illustrating it again have different needs, and distributing and stocking the final physical product is different again. So, if you were trying to create some kind of master book object that met all of these needs you may well end up with conflicting terms, and indeed needs expressed by those terms.
To get round this you break your problem space into bounded contexts, and these become functional areas which each have the own ubiquitous language. This gets around the weird mashing together of functionality that quite often makes large systems a complete pain to maintain. Each area manages its own needs and translates, as and when required, if it needs to talk to another. I believe that a pretty reasonable SOA architecture will fall out of this in the end.
I think I've understood this process after a hundred pages or so, but I don't want to read any more of the book. I had the same problem with the original DDD book as well. The core concepts are pure gold, but the presentation is extremely repetitive, wordy and really hard to read for useful content. Both books needed more pictures and a catalogue of the concepts, organised rather like Martin Fowler's Patterns of Enterprise Application Architecture - with about 100 pages of well-written and illustrated chat with the remainder of the book taken up with a list of the patterns in detail once you know how to use them. In fact, both books need a damn good edit.
The other thing that I find really annoying is things like bounded context, once introduced, are always capitalised Bounded Context. Maybe it's just me, but the constant capitalisation of a concept really breaks the text up and interrupts the flow. The original DDD book does this as well. This capitalising thing is a disease caught from an old-fashioned style of writing, common to people who read the King James Bible, which was written at a time when you would capitalise nouns. Myself, I use italics when I introduce a concept and then either abbreviate it to, say, BC, or just use it as normal. This capitalisation reads like the old pompous religious tracts handed out by slightly demented people going door to door when I was a kid, and I didn't like it then either.
So I would like a list of all of the Ideas Expressed With Capitalisation and how to use them, and about half the amount of text without all the waffle. I gave up because I got the concepts and the rest of the signal to noise was too low.
The cartoons of the cowboys make no sense to me either, and there was a weirdly old-fashioned feel to the one offering your stakeholder a cup of coffee to talk to them. You could probably put each chapter into about three paragraphs and not lose a lot of information.
So, I gave the book four stars because the ideas are incredibly useful, but be prepared to struggle with keeping awake between the useful nuggets.
I think this is an important book, and I also think its message might be difficult for some people to reconcile their world view with. Ormerod sets hi...moreI think this is an important book, and I also think its message might be difficult for some people to reconcile their world view with. Ormerod sets his stall out to show that economists have presumed that the economy (and lots of other systems we think of all day every day) actually is a steady state, that markets exist as a relationship between buyers and sellers, with supply and demand following perfect curves that come from perfect knowledge.
Of course, as he points out, this is nonsense. Markets don't exist in a steady state, there are too many factors that cause change. Ormerod cites work done that shows even if the steady state were to occur any kind of shock to it could take as long as a hundred years before it would stabilise again.
The classical view that comes all the way from Adam Smith assumes perfect knowledge, actors in the system need to know what every other actor is doing. This doesn't happen, the textbook view that makes assumptions around marginal costs is bogus, a lot of the time businesses don't know what they are, a lot of the time they don't know what their competitors are doing, and as you can't see into the future, even if they did it probably wouldn't help because you still don't know what your customers may want that you don't do. Most businesses of any size or complexity tend to work using rules of thumb, and the MBA spreadsheets don't help because they assume perfect information. Also, your customers might just not like what you have to offer this season.
He looks at work done on evolution. In particular work done by Raup shows that there is a power series relationship between the frequency of extinction events and their size. Other people have discovered that you can draw almost exactly the same curve if you look at business failures. This has some interesting consequences - if you play with these models and look at an arbitrary measure of 'fitness' in the Darwinian sense then a degree of cooperation is actually good for the long term viability of the system as a whole. Ultra competition forces prices down and isn't good in the long run - neither is cost cutting.
The problem of perfect information is also addressed by looking at simple games, such as the Prisoner's dilemma, played over many iterations and looking at what strategies win over the long term. As well as an arbitrary game involving where on a line you might place your ice cream stand to get the most customers. As soon as you have more than two players, and more than one time of entry into an existing market it becomes almost impossible to do more than work out what the graph of possible solutions to the problem is and understand the shape of it. If you are one of the players it's hard to work out what to do.
Interestingly we have two extinction models - one is external shocks (the asteroid of dyno extinction fame), another is that a niche closes because of some other factor in the competition and a species dies out. Species are competing and cooperating (predators stop prey eating all of the available food and destroying the environment which means both species survive), so there could be a cascade from what looks like a relatively small cause. In fact, both happen, there is no either/or. But modelling this, predicting the future, becomes impossible. All you can do is look at the shape and work out how to cope with what may happen.
Ormerod concludes by giving an overview of the work of Schumpter and Hayek, that is often ignored.
The visions of the world articulated by orthodox economists and by Hayek are fundamentally different. Conventional theory describes a highly structured mechanical system. Both the economy and society are in essence gigantic machines, whose behaviour can be controlled and predicted. Hayek's view is much more rooted in biology. Individual behaviour is not fixed, like a screw or cog in a machine is, but evolves in response to the behaviour of others. Control and prediction of the system as a whole is simply not possible.
Ormerod quotes several examples of systems coming up with robust solutions to problems (even the origins of the mighty US dollar) that weren't obvious until they were left alone to find solutions themselves. A good example of this is the hub and spoke architecture of US domestic airlines that appeared after deregulation. It serves customer needs but no-one could have foreseen it at the time.
The central argument is that central planning doesn't work and solutions that are workable and human come from creating environments where the actors can work together on solutions that benefit them. Essentially.
... it is innovation, evolution and competition which are the hallmarks of a successful system ... Schumpter coined the phrase 'gales of creative destruction'. He argued that innovation led to such gales that the caused old ideas, technologies, skills and equipment to become obsolete. The question ... was not 'how capitalism administers existing structures ... [but] how it creates and destroys them'. Creative destruction, he believed, caused continuous progress and improved standards of living for everyone.
This has serious and interesting consequences for policy makers - the models show that forcing too much competition between actors hurts the overall fitness of the system, and also protection does too. So most of the time they must resist the urge to exhort and fiddle - this comes right back to the work that Deming did all those years ago that no-one remembers and everyone should read. Four days with Doctor Deming
But if they resist the temptation to exhort and fiddle without enough information, if they don't listen to lobbyists and make sure decisions are made locally by the people who know what's needed. If they do all these things, we don't need that many them and they don't need to do much to keep things steady.
I've just started reading Antifragile, which addresses the other side of this equation, given that the world is very unpredictable isn't it better to create institutions and systems that aren't brittle from so much command and control mania and even benefit from small shocks and changes. I will return to this subject again in my next review. I think that I have accidentally stumbled on two books that complement each other. Ormerod's work gives a mathematical, scientific background that looks across many disciplines to say some very similar things.
So, read this book, it will surprise you and leave you thinking about how we should do things so that failure is part of what happens but isn't a catastrophe.(less)
I have enjoyed the Game of Thrones series right from the beginning, but this book was very disappointing. The writing was very laboured in places, wit...moreI have enjoyed the Game of Thrones series right from the beginning, but this book was very disappointing. The writing was very laboured in places, with characters repeating themselves, and there weren't enough dragons in it for me. It also seemed to take far too long for anything interesting to happen, and when something happened it took a long time to actually effect anything.
The title is a reference to the various bits of royalty that have connections with the original Dragon Throne, but the dragons that Dany is bringing up don't do much for 90% of the book.
I was also really interested in what was going to happen to Arya, but the answer was - "not much".
And we finally meet the three eyed raven but again what happens? "not much".
The book could have been 25% shorter and not lost anything, it needed an edit. Rather like the Harry Potter "Order of the Phoenix" it felt like it had been rushed and then left.
The cliff hanger ending was really laboured, and I'm not sure I can be bothered reading book 6. I also thought it was possibly the last book in the series and was irritated that a good number of plot lines are still dangling.
Not sure I care enough to read the last book, assuming there aren't books 7 and 8 after it.(less)
This book is an easy read but very thought provoking.
One of the most interesting bits was where he examines the difference between the average Cystic...moreThis book is an easy read but very thought provoking.
One of the most interesting bits was where he examines the difference between the average Cystic Fibrosis centres and the best ones. All human activity has a bell curve attached to it, but CF treatment is very well understood and systematic. So why does one centre have startlingly better results than another?
In essence the better centre didn't compromise, they didn't think that (for example) 80% lung function was good enough, the patients under their care were expected to have 100% or better.
It's the difference between 99.99% and 99.5% - we'd all be happy with 99.5, but excellence is in the remaining fraction of a percent, because when you add this up over several years this tiny difference means a lot. The sums are simple 99.5 over 5 years will give 97%, 99.99 will still be 99.99 or thereabouts. If you take this up over a patient's life of 30 or 50 years the difference would be even more apparent.
I've hit this in other walks of life, for example project management, where you maybe have a 0.9 chance of finishing on time every iteration. This means that the chances of still being on track are as low as 0.6 after 5 iterations - it's just mathematics. When building software having a fire break every so often to deal down the technical debt and reset the projects is perfectly doable, but if you're looking for excellence in medical care or some other industry that could kill people then you have to become fanatical about getting higher scores
There are plenty of other excellent articles in the book, the fight to eradicate polio and the crazy situation faced by doctors in India are really great articles, and I learned a lot about how we could really help the people in poor countries. I admire Gawande's honesty about his own shortcomings, this gives the writing a validity that it would otherwise lack. And the nutty unjust system that is the law based compensation for medical errors, that wrecks the chances of the poor to get help and helps no-one but the lawyers.(less)
Seriously, if you want to know why your children's school seems to not be teaching them to think, if you want to know why you hate your job, read this...moreSeriously, if you want to know why your children's school seems to not be teaching them to think, if you want to know why you hate your job, read this book.
Our entire education system is built around creating good factory workers, who have no initiative and do what they're told. You may sit in a call centre or push numbers into a computer all day - but it's still a factory, think about it. Guess what - the factories are all gone or on their way, and cost-cutting means that you can't compete with folk from other countries. The race to the cheapest is one you can't win. The race to the most useful, caring, innovative - well, you're competing with the cheapest, they're going to lose.
Enter the linchpin - someone who adds value, who cares about doing a good job, who *thinks* about how to get things done more quickly and to a higher standard, a game changer. Your boss will employ a competent drone if no-one else is available, but would prefer a linchpin. Someone who is difficult to replace. If you don't want to be easy to replace then read this book and follow Seth's advice.
The latter half of the book gives a whistle-stop tour of the human brain and goes into some detail about how the "lizard brain" tends to sabotage the thinking brain and choose short term comfort over long term success. It needs to be tricked to get out of the way and allow you to succeed. Godin talks about how the lizard brain made him stop writing the book several times, because it was hard work. The paradox is the lizard brain likes comfort, but is scared of success.
Read this book if you want to escape the whole post-industrial "my job went to India" fear and find your way to a future where you enjoy what you do.
Had this book on tape and listened to it many times back in the early noughties. I was writing a blog post about "The Agile Heart" (http://goo.gl/aBCa...moreHad this book on tape and listened to it many times back in the early noughties. I was writing a blog post about "The Agile Heart" (http://goo.gl/aBCae) and quoted from it, so I got a second-hand copy from Amazon to verify the quote, my tape player having gone the way of all flesh a while ago. Still need to change the quote, but there you go.
Thing is, even now, nearly 15 years after it was first published, it's a gem. The style is designed to look like his presentations, with a slide-like set of images setting up a proposition and then some discussion about the ideas. I've also been reading Linchpin: Are You Indispensable? and they cover a lot of similar ground. Peters' take is more based on subverting the traditional workplace, "brand you", "making everything a project", "making where you work into a company in its own right". Godin talks about the kinds of behaviour and attitude you need to make what Peters talks about become a reality. The two books complement each other. I think Linchpin is an essential read for anyone who cares about where we are today, but Peters' book gives some historical context.
The subtitle you can't shrink your way to greatness is a polemic with the late 90's obsession with the bottom line: how big corporations were doing a slash and burn on their workforce and their working conditions to drive profit up. But if you race to the bottom you end up competing with people who are much poorer than you are and will do the same low-value work for less in a different country. You lose, the whole enterprise loses, and that's it. This is also the theme of Linchpin. Two recessions later we are still learning the same lessons, funny that. Those lessons being that creativity and what Peters terms "emotional labour" (as in giving it some heart and caring about it) will keep you fed, but charging to the bottom won't.
Both authors say that if you're stuck somewhere you can't do "emotional labour" or become a Linchpin - move on. Good advice.(less)
In essence we are contradictory beasts, you can get people to do simple things with simple rewards, e.g money and a bit of carrot and stick. More complex tasks need a sense of flow and eventual mastery. If you try to use carrot and stick when people need to think they do less well - spectacularly so. There is a whole science of this that has been discovered over the last 20 years or so. But if you look at really successful, innovative companies and organisations I think you'll find they would say that most of this is blindingly obvious.
The old style motivational tools Pink calls Motivation 2.0 (1.0 is getting warm, comfortable and fed - basic drives). This works when most people do repetitive, boring jobs that don't require a lot of thinking once learned. Motivation 3.0 is what we need now - the harder you push someone who needs to think the harder they find it is to do their job. If they can get into the mental state of autonomy, flow and personal validation with a route to what he calls mastery (unachievable but the journey is emotionally stimulating and satisfying), they will perform really well and enjoy what they do.
As someone who cares passionately about doing software right and a staunch advocate of Agile methods I was re-reading The Art of Agile Development. The word that jumps out of the page is trust, plus there's an imaginary team that a developer called Pat is introduced to. The team are all switched on, having fun, doing something worthwhile that will help the business. Motivation 3.0, Agile software development is based on an empirical discovery of Motivation 3.0. Pink's book gives the theoretical underpinning as to why Agile, done properly, is so powerful. It also explains why some projects just fail, too much control, too little autonomy, and some succeed anyway - people were allowed to shine, so they did.
In fact, one of the failure modes is Big Design Up Front (BDUF) - what is this but sucking the autonomy and the contribution of the talents and skills of the people actually delivering the software, of devaluing what they can give? Anyone who has been handed one of these 400 page architecture plans full of drivel will know whereof I speak. Deferring decisions to the last possible moment means they will be made by people who have enough information to make the best decision possible allows them to blossom.
So, the obvious thing: treating people like responsible adults - giving them good, sharp, tools and a framework that helps them get better at what they do. There is a ton of empirical evidence that Pink quotes to show that this doesn't just make you feel good, it's the best way to proceed.
I think I might present the headmaster of my son's school with a copy, but I doubt he'd read it. This makes me sad.(less)
The book's intention is to help jobbing programmers get more productive by remembering what the command line is for - the GUI's and IDE's we use every...moreThe book's intention is to help jobbing programmers get more productive by remembering what the command line is for - the GUI's and IDE's we use every day have put us far away from the power of this, and a lot of younger people only know the world of the mouse. In essence it passes on the knowledge that's being lost to make you more productive.
The Mechanics section talks about simple tricks and tools to accelerate your use of the keyboard and repetitive tasks. I have installed a number of useful bits and pieces on my Mac because of this and can definitely speak of some improvement!
The Practice section is more about fixing the whole process you are confronted with and how to do OO projects properly, plus use tools to find common bugs and why having a canonical build is a good idea, plus standard tools etc. etc.
If you are fresh out of college and working as a developer to you should read this book. I've been doing this for over 20 years and got a lot from the war stories and simple suggestions, so even the fogies will benefit.
The first half of this book is well worth a read. Then I was reminded of Martin Fowler's (I think) comment that the original Design Patterns Elements...moreThe first half of this book is well worth a read. Then I was reminded of Martin Fowler's (I think) comment that the original Design Patterns Elements of Reusable Software book was a response to the limitations of C++. It dovetailed so well into Java because Java has a lot of the same annoying limitations, and in some ways is even harder.
The latter section of the book contains some worked examples that I didn't always agree with because they seemed to be totally over done. A lot of the refactorings came from limitations in the language and even then felt arbitrary and not that "clean", more like differences of opinion.
In light of this I think the book would have been better titled Clean Java, and then we'd all know where we stand. Have to say I was disappointed by the case studies. I think if you're a jobbing Java programmer you will get a real benefit from this book. I use dynamic languages like Ruby and most of the problems described in need of refactoring just never happen.(less)
Furedi tries to work out how, after an inordinate amount of money and talent has been thrown at the problem, educational standards do not seem to have...moreFuredi tries to work out how, after an inordinate amount of money and talent has been thrown at the problem, educational standards do not seem to have improved one jot and lots of young people leave school demotivated and passive.
His central thesis is that education is a contract between the young and the old, where the old give the young the tools to understand and run the society they live in and carry it the contract forward to their children in turn.
What's happened is that education has been hijacked for all kinds of other purposes like propagandising health messages and reverse socialising parents not to smoke (for example). Crude social engineering and political correctness have replaced the more balanced curricula of yore, which weren't perfect but did engage the mind. The money has been spent on ensuring that these schemes, and all the data collection and top-down nagging and checking needed to enforce them, have been implemented. Not on education itself.
There has also been the perception that the old Liberal Arts education (which most of the governing elite have been recipients of, by the way) is too hard, so it has been broken down into bite sized tasks that can be taught monkey-see-monkey-do to anybody who can repeat the chunks back to an examiner. This has been done as a kind of reverse-snobbery exercise against "elitism", and has disengaged the minds of the children. They know how to do things but not why.
As a personal aside, it's no wonder kids are not engaged, it must be really boring to be on the receiving end of this, and it must also be quite upsetting to be condescended to in this way by people who obviously know far better than you do what you are capable of. It occurred to me that chunking things down like this allows bigger class sizes and is much cheaper than doing it properly, and I suspect that that is the real reason. They are training people to be better factory workers, following tedious processes all day and not having to show any initiative, in a world where all the factories are gone and no initiative means no food. This is the tragedy.
I can't comment on the veracity of the facts and figures he quotes because I am not an academic and have not studied the area in any detail. Some of the leading pedagogues he quotes condemn themselves out of their own mouths and seem unable to see that they have done so. It's quite shocking that they show such a lack of rigour, and then see fit to say how our children should be educated.(less)