Tag: pragmatic programmers

Pragmatic Thinking & Learning by Andy Hunt

“Pragmatic Thinking & Learning” is a book full of knowledge, and that is also what it is about: knowledge. More precisely it is about your knowledge, how you can improve your skills and how to fully leverage your brain. The book is the easily understandable round-up of knowledge about the brain, learning and other interesting information of high interest to knowledge workers, that I always wanted to read. And don’t be afraid – the book isn’t just dumping knowledge on you. As it is common for books of the pragmatic bookshelf, it does so in a very understandable way and is spiced up with a lot of good humour.

This book is really good. How good? When I studied at Mendicant University I recommended this book to a fellow student on the mailing list, as we were discussing about stepping away from the computer in order to solve problems. Within some hours 3 other people agreed that is a great book and definitely worth the read. It was a small course with a handful of participants and some mentors (I’ll write a post about Mendicant University soon) so the “return rate” really impressed me, but to me the book deserves all the praise.

So who wrote this book? It was Andrew (Andy) Hunt, one of the founders of my favourite bookshelf, one of the authors of the Manifesto for Agile Software Development and author/co-author of other great books like the famous “The Pragmatic Programmer”.

Content

The book starts with a chapter mainly about the Dreyfus Model, a model that helps you assess your own skills explaining the differences between a beginner and an expert. Andy also explains this model shortly in a free PragPub article.

The next chapter is all about the brain, it explains how your brain works, what L-Mode and R-Mode are and why it would be a good idea to use the latter one more.

The following chapter was the most interesting chapter of the book to me. This chapter explains how to really leverage your brain and activate all its computational power. It is elaborated why you should try to involve as many senses as possible when trying to solve a hard problem, why metaphors and humour greatly help and why sometimes all you need to do is take a walk.

The chapter after this one is called “Debug your mind” and talks about things that basically can go wrong or in your way, like cognitive biases, generational affinity, the bad effect of pressure or how humans sometimes use reptilian approaches in order to deal with life’s challenges. The main point here is to be aware of those “bugs” in your mind so you can fix them.

The next chapter is about learning, how you learn best, why teaching greatly helps, the different learner types, mind maps and how you should really read books.

The following chapter is about gaining experience, an important part of learning. For me the biggest takeaway was “Build to learn, not learn to build.”- but there is so much more in this chapter.

The last “real” chapter is concerned with managing focus, it contains a lot of tips and tricks on how to maintain your focus and how to focus better. It also explains exactly how bad loosing your focus is for your productivity. The book wraps up nicely with some pages that nicely recapitulate the book and help you where to get started now and what to do with all these new ideas.

What makes this book special?

This book is special to me as it is a very good summary of interesting facts and methodologies concerning thinking and learning for knowledge workers. It introduces you to all these concepts in a highly comprehensive way. I feel like this book gave me the basic knowledge of this topic. Moreover I believe that, if it wasn’t for this book, I would have had to read at least 5 other books in order to get this level of knowledge. Furthermore it is a really enjoyable read, as the author himself highlights the importance of humour. It really lightens it up quite a bit. And I just love things like: “you’ve read The Pragmatic Programmer.” With a footnote that says: “If you haven’t, run, don’t walk, to the bookstore and buy a copy. Seriously.”

Choice Bits

Choice Bits is about briefly introducing my favourite ideas from the book, but with this book it is extra difficult as it contains so many ideas, that I’ll really have to pull myself together.

Build to learn, not learn to build

Have you ever read a whole book about a new programming language without using it? I have. I read a whole book and then I wanted to start to program in that new language. I didn’t get very far, I couldn’t remember much. I was making little stupid mistakes all over the place. In order to really learn how to use a technology you have got to start using that technology – reading a book will help but not make you an expert.

L-Mode and R-Mode

Those are the 2 “operation modes” of your brain, L-Mode stands for linear mode and R-Mode stands for rich mode. Linear mode is used for logical thinking, speaking and is mostly used. R-Mode on the other hand isn’t rational and verbal, however it has more “processing power” and is under used. Unfortunately only one of those 2 modes can be active at a time.

A good example is when you try to remember something but you just can’t come up with it. But hours later, without thinking about it, you suddenly remember it but the thought is very hard to verbalise. That’s your R-Mode that has digged up the information you desired.

Another story, taken from the book, I always tell when explaining this concept to friends is the story of Elias Howe, who tried to invent a lockstitch sewing machine. One night he had a terrible nightmare, where cannibals were about to eat him. They poked him with their spears. However these spears looked a bit odd… they had holes close to the tip of the spear. Holes like with normal sewing needles, just at the other end. When thinking about the dream he realised, that this was exactly what he needed to do in order to make his lockstitch sewing machine work. And whom does he have to thank for this? His R-Mode, it had the answer all along but didn’t know how to verbalise it, so it tried to get some attention with a cruel nightmare.

Context is king

Context is always king, at least when you are more than a beginner. It is suggested that beginners in a particular skill need context-free rules, whereas on your way to expert you get to value the context more and more. This is also part of the Dreyfus model.

Attractive Works Better

The book relates to a study where people are presented two user interfaces. Both have the same functionality and workflow, but one looks good whereas the other one looks ugly. The subjects found the beautiful interface much easier to work with. Being happy (or visually pleased) actually allows you to bring more of your brain processing power online – which (of course) facilitates learning and working.

Personal Impact

This book has helped me a great deal in being more effective when working and knowing about the fact that I still “work” even when I’m not sitting in front of my keyboard. I really began to value a good walk when working on a hard problem – often times my R-Mode helped me with a great solution.

Also I feel a lot smarter after I read this book, because now I can explain many things and I have numerous new ways of solving problems. Not just stepping away from the keyboard. I now know that I should try to make of as many senses as possible when trying to solve a difficult problem. And of course it feels good to know why teaching helps so much when learning something. I have noticed this effect many times, but now I can explain it.

I now recognise how bad losing my focus is, I am more aware of cognitive biases, I have started to effectively using my virtual desktops and now I think twice about interrupting someone’s work or letting someone  interrupt my work as I know that I will use a lot of context and a lot of time.

Conclusion

I am highly recommending this book to everyone, who makes a living with thinking. If you want to be more effective at your job and learn new technologies faster and better, this book is for you. It also helps you understand why somebody might have a total different view of a situation, as somebody else might have different cognitive biases or a different generational affinity.

As sometimes computer terms are used to describe concepts I mostly recommend this book to Software Engineers/Programmers or people who are at least familiar with the concept of programming. However I believe that the book is written well enough and doesn’t rely to heavily on these terms that people completely unfamiliar with programming may also benefit from it.

Most of all this books helps you understand how thinking and learning really works, which is a good thing because there is a good chance that you can improve both your thinking and your learning. The book gives you all the knowledge, techniques and tips in order to do this, but you have to do this yourself. Personally, I am looking forward to re-reading the book using the techniques the book taught me, in order to leverage the power of the book and my brain even more. So what are you waiting for? Head on over to the pragmatic bookshelf and buy this book!

Feedback

As I am still new to writing reviews I would gladly enjoy some feedback on what was good about this review, what was bad, what you felt was missing and what you felt should have been left out. Comments on what would make you come back to this blog are also appreciated. You can do so via the comments section or check out the About section for other ways to contact me.

The Agile Samurai by Jonathan Rasmusson

“The Agile Samurai” is an awesome book about agile software development by Jonathan Rasmusson. I read it this march so my memory isn’t the freshest but I wanted to get this up either way since I want as many people to read this book as possible.

It is a really good introduction into agile Software Development, starting with the very basics. However I believe that people more experienced with agile development should also read it since it includes many good to brilliant ideas which I have failed to find elsewhere. Personally I attended two good lecture series before reading this book and I still learned a lot.

The book is also a really good read as it is spiced up with humour, stories from the work of the author and awesome illustrations.

Content

The book starts with a simple introduction to agile, featuring the core concepts and how an agile team should generally be composed. It continues with Agile Project Inception which is mainly about how to get everyone in on an agile project and my favorite part of the book: The agile inception deck! The book then continues with Agile Project Planning covering the topics of how to gather user stories, how to give good estimations and finally how agile planning works and why the plan will always change. Then the book turns toe Agile Project Execution where it is examined what exactly happens during an iteration, how to communicate and, what I found especially interesting, how to set up a comfortable and functional workspace. The last chapter briefly introduces agile methodologies such as Test Driven Development and continuous integration.

What makes this book special?

To me this book is special thanks to its unique style. Everything is written pretty clear and in a familiar language. Not only does it feature some good humor but also some special sections which I really liked:

  • Master Sensei and the aspiring warrior: Here you find a conversation between the aspiring warrior (you) and the Sensei. Usually the aspiring warrior asks questions, which you might have flying around in your head as well, and gets bits of wisdom as answers from the sensei. I really enjoy this kind of conversations in books as it is a welcome change from just text.
  • War stories: Here you can find stories Jonathan has experienced himself or he knows about. Those are usually more than worth the read, as they are examples straight from the real industry. To me they were the proof that what this book tries to teach me really is important and it helped me to see these problems, which really motivated me. I can very well remember a story where they were having a meeting about a software system that is meant to replace the old mainframe system. Then the guy financially in charge of the project asks how the new system would integrate into the old mainframe system. Ouch!
  • Illustrations: Last but surely not least the book features many awesome illustrations. They are often used to explain or emphasis a point. But, at least for me, sometimes they were just there to be pure funny and I am totally ok with that as I love this (for instance the chapter “Meet your agile team” starts with a picture of some ninjas – priceless.). For me the illustrations really helped me to remember the things better, as I am a visual learner.
Illustration from the agile Samurai by Jonathan Rasmusson (taken from his blog)

Choice bits

Here I want to briefly introduce what bits of wisdom impressed me the most with this book. Those are the first things that come to my mind when I think about this book.

The Agile Inception Deck

The inception deck is a real awesome technique to make sure that everyone is on board and everybody has the same vision of the product that is going to be built. It is lightweight, meaning that is not a heavy analysis that drags on forever but rather some exercises that can be finished very quickly while yielding a good knowledge of the product to be built. It’s not an original idea of Jonathan Rasmusson as the book states that it is rather an idea of his former coworker at Thoughtworks Robin Gibbons.

These exercises include creating an elevator pitch (“What would you say about your product, if you had just 30 seconds?”) and creating a NOT-List, so a list of what you are clearly not going to do during the project (so everybody is on the same page).

I don’t want to summarize the whole inception deck, since Jonathan has an excellent blog post up that does just this. Thanks Jonathan!

Personally I know how important this is and I wished that I had read this book 6 months earlier. I worked on my bachelor project which was about building a process engine (or workflow engine, if you will) which would run in the cloud – or so we thought. We contacted external partners, attended a Cloud Computing seminar, set up an Ubuntu cloud on iMacs (:P) and did a ton of research on Cloud Computing and how process execution might work there. Roughly two months later during a presentation the one ultimately in charge of the project stated that he doesn’t want such heavy focus on Cloud Computing, multicore support would be enough and we should focus more on human tasks (which we didn’t give much attention before)! You might suspect how we felt after this experience…

An agile warrior asks the tough questions first!

He really does. In my memory this is kind of a recurring theme of the book, to ask the tough questions first. Because from waiting situations rarely get better. If you point a problem out right when you notice it you might be able to fix it. Changing something later on is always more expensive and sometimes outright impossible. So this is a really good habit to adopt, although it takes a lot of guts from time to time.

The visual workplace

It’s about a workplace where everyone immediately sees the current status of the project and the core values of the projects. So you not only have your big storyboard with your user stories that are available, currently work in progress or done but also burn down charts and the agile inception deck you created right on the wall where everyone can see them. It is suggested that you might also put up a set of working agreements (for instance the time everybody should be in the office and the time the daily standup meeting takes place) and a list of shared values (for instance “asking the tough questions first”). This chapter made me especially recognize that I want to work in an environment like this.

Personal Impact

In this section I like to write about the impact this book had on me personally. Because I think if you read a good about your profession it should impact the way you think about your profession and/or the way you work.

The impact for myself has been pretty huge. Before reading this book I was interested in agile methodologies but my main focus of interest has been IT-Security in every way. While I still maintain this interest it has diminished a bit in the favor of agile methodologies and Software Engineering as a whole. This book not only made me realize that this is a very exciting and challenging topic but also that this highly collaborative environment, where you work together to achieve a common goal and always close to the customer, is an environment I’d enjoy to work in.

The cherry on the cake was just that I wrote Jonathan an email and he was quick to reply, genuinely offered me help and pointed me to some good knowledge resources during the course of our conversation. He even wrote an article about it and my software engineering course in his blog. It is a very different mentality than the pure “try harder!”-mentality often found when it comes to IT-Security. I prefer nice and helpful.

Conclusion

If you don’t already own this book and are interested in agile methodologies you should absolutely read this book. No matter if you are a beginner or somebody who has been doing agile development for quite some time now. You know if you really want to be agile, you are always looking for ways to improve and I am sure this book surely can accomplish this. I would even recommend reading this book to executives who wants to get to know this “agile”-thing, what it is about and whether or not the company should adopt it. But then again I don’t know too much about executives.

I would only not recommend this book to people who don’t enjoy a good amount of fun, illustrations in books or slight references to Samurais and Senseis.

If you want to get this book you can easily get it from Amazon or straight from the pragmatic bookshelf. What I recommend anyway is checking out Jonathan’s blog every once in a while, since he shares much great information (including parts of the book) there.

Feedback

As this is my first book review I would gladly enjoy some feedback on what was good about this review, what was bad, what you felt was missing and what you felt should have been left out. Comments on what would make you come back to this blog are also appreciated. You can do so via the comments section or check out the About section for other ways to contact me.