I have a lot to say about Hunt's ideas in this book, unfortunately I'm not inclined to go into all the theory, chipping away at it. But I don't want to avoid the theoretical arguments in his book altogether, just for the sake of preserving what's useful about his practical tips for improving memory and creative thinking skills.
Hunt correctly observes what is wrong with the programming discipline, and also understands, I think, why programmers are not encouraged to be experts, let alone competent in their field. But after correctly observing symptoms, and offering you a diagnosis as the causes, the treatment is all wrong. That doesn't mean this book isn't worth a read if you read it for the treatment: practical tips on how to improve your memory and retrieve more potential from creative thinking and problem-solving. Just don't make the mistake of thinking that the treatment attacks the cause of the problem.
Of course, if you actually are closer to being competent or expert in your field, you might ultimately wonder *why* improving your memory and especially why developing your creative side should make you a competent and possibly even expert coder where logic, rationality, and linear thinking are supposed to reign. What does art, rock climbing, music, and tennis have to do with anything? You will wonder these things, at least according to Hunt's theory, because you *are* competent, possibly even expert. You will wonder them because a sign of competence and expertise is looking at the bigger picture. You don't just do things -- like try to improve your artistic side -- because the rules said you should. You do them because you are always thinking in terms of the bigger questions. You wonder *why* you should and you contemplate various answers and arguments. So, if you wonder why, then you have to buy Hunt's theory.
I wasn't always sure I bought it. I could see where Hunt was going, but he seemed to have lacked an in-depth knowledge of certain of the supporting struts for his framework. Otherwise, as a UI/UX developer, I certainly think that creative thinking is often sorely lacking in linear, rational, logical thinking that often dominates the worldviews of coders.
But is it really the case that you can address some of the problems Hunt identifies in his book by doing so. In other words, if one of the problems is that programmers aren't motivated to become competent or experts is because they are beat down by companies that treat them like interchangeable parts, then how will taking art classes or learning how to do mindmaps change anything? If another problem is that coders aren't paid well enough to stay in their jobs as coders and, instead, have to migrate into management, consultancy, or teaching to make increase their salaries, how will any of these practical tips for improving memory and creative problem solving actually address that issue? The answer is: they won't.
Hunt correctly observes problems: lack of competent and expert level coders, lack of organizational infrastructures to attract and nourish such people, a dead end career and pay structure, and the endless reorgnizations, quality assurance programs, metrics-based development initiatives, etc. etc -- in short, the endeless search for the One New Big Thing that Will Change Everything Once And For All. All of this combines to create organizations which do one thing pretty well: they herd race horses as if they were sheep, and race sheep as if they were horses -- to borrow Hunt's memorable and apt metaphor.
But Hunt's antidote only treats the individuals suffering in those organizations -- if it does even that. In fact, I'd argue that if everyone adopted Hunts ideas, it's be a huge distraction from the real problems Hunt identifies. Instead of looking outside yourself, to the organizational imperatives -- pay, lack of career structure, endless search for silver bullets, etc. -- you end up looking at and improving yourself. Which is great, but likely going to make the individual code even more frustrated. After all, the organization is still hearding race horses as if they were sheep.
Still, the fact remains: how can you change an organization, sitting in a cewb with the rank of Software Engineer IV? You can't, really. You can't get your organization to pay software engineers better -- not all by yourself. And even if you could, the problem Hunt thinks he identifies is a problem that exists in the *industry* and not just in your organization. In short, the problem with Hunt is that he comes up with a Grand Theory that explains that the root of the problem existing in very social institutions and organizations; however, he tells us to solve the problem by giving us tools to improve our individual skills.
Which is pragmatic, I guess.
After all, how could we possibly change the pay structure across an industry. Much easier to focus on developing your skills. And it is, which is why I'd recommend this book. I don't think Hunt explains the reasons particularly well, and I don't have the time to write the book he should have written. In the meantime, being of a pragmatic bent, I say: take a look at this book. check out some of the exercises and see if they work. Pick and choose what works for you and discard the rest.