Saturday, 19 December 2009

Book reviews

I 'ate' a lot of Jerry-books lately. I decided to write something about them.

They are all recommendable and in the following I will tell you why. Overall I enjoyed reading them very much.

Becoming a Technical Leader, by Gerald Weinberg

This is a great book because it tells the reader a lot about what leadership is, how to work towards it and what to be observant about on that road. It's clearly closely connected to the PSL workshop, though being on PSL greatly enhances the experience of reading this book.
As in most of Jerry's books there's some questions for the reader along the way, some of them quite hard. One of the toughest is to start a personal log, a diary. I'm personally succeeding (this far) in my third attempt. It's a book which will dig into the reader and reveal things you either weren't aware of, or don't want to know about. It easily becomes very personal, but I like that. As a professional guide to elaborating on your own self, I think it's a must. As a nice, interesting read, I would say: yes. As something to read and toss away and forget all about, I'd say: I wonder if you can do that. Somethings are bound to touch you.

Introduction to General Systems Thinking, by Gerald Weinberg

This is, I think, the most referred-to book of Jerry's. A lot of people praise it. I found it perhaps the most difficult of his books to read this far. I crashed after the first few chapters in my first attempt, and left it on the shelf for months. Not that I didn't like what I read, but somehow I found it hard to concentrate and perhaps find all the time needed to really work with the text. The second attempt was better, knowing that I should put some effort into it and taking the time to do it.
One of the things I particular like is how it asks questions like 'it's an XXX - how do you know ? what do you understand by "XXX" '. So it sort of starts off from the basics and put things into perspective.

Often it works on the english semantics and words and I at least really feels that english is not my first language. I think I do well on average, but some of the stuff in this book is over my abilities.

Upon finishing the book I have to admit to myself: maybe I didn't quite grasp it all. I intend to give it a second (third) try next year.

Are your lights on ?, by Don Gause and Gerald Weinberg

This is quite a different book. It's smaller and has fewer words per page than the other books. But the content is in top. Everybody can readily identify themselves with the 'hero' in each situation and probably also the villain(s). It takes you through some very ordinary situations and asks simple questions like: whose problem is it ? Questions, which are simple to ask, but very difficult sometimes to answer. And isn't that so in most situations we get ourselves into.

I enjoyed this book a lot, perhaps mostly because it made me think a lot.

Exploring Requirements, by Don Gause and Gerald Weinberg

I actually avoided this book for some time, thinking that 'requirements' - I know that and anyway, isn't it a bit boring ? Well, - no. This is a wonderful read, which gives you a lot of tools, hints and tricks when you try to describe to yourself or others what you want done. It's obviously really applicable if you're writing requirements, but also if you just want to be very clear about what you tell people.
I found lots of gems in this book (and thank you for the recommendation, Leo).

Secrets of Consulting, by Jerry Weinberg

This is a book full of Jerry-stories. If you have ever met Jerry, you'll know that he thinks it's always time for a story. And he's got so many of them. Some got written down in this perl of a book, which tells you important stuff in a nice, informal way. Things to do, consider and remember if you're 'consulting' - which we all are from time to time.
I'm looking forward to start on 'More secrets of consulting', which is one of the new ones in my collection (although none of these books were very recently published...)

Mistress of Molecules, by Gerald Weinberg

This is a fiction book. However, I was fortunate (and fast) enough to buy it as a real book at AYE, which Jerry himself had ordered printed, because, as I heard Jerry mumble: people want real books. I agree.
It's available for a few bucks as a pdf on Jerry's online shop (try google a bit and you'll find it within minutes).
It's a fascinating story, set on distant planets in a future which seems not only foreign and strange, but also strangely familiar. Admitted, it's not completely realistic on some points, but hey, it's fiction and the story works!

I enjoyed reading it for the story, the characters, the science and the many surprises I got along the way.

All good books - get them for x-mas, birthdays or just to fill up on your shelf - but make sure you get to read them too ;-)

Tuesday, 1 December 2009

Cooking and software testing

In this blog post I will explore the similarities between cooking and testing software.

Speaking as one, who considers my cooking a success, when people do not rise from the table to spit out the food in the garbage-bin during dinner, I some time ago decided to do something about it.

I know a little about cooking now, thanks to two thing: inspiration (hugely by a popular, danish television show using abusive amounts of butter, cream and other good stuff) and - rehearsing. Yes, if you try things just for trying them, you eventually get better at them. Something lots of people forget in the daily treadmill.

If I try to sum my experience up, there's a beginning where the result is not digestible, perhaps dis-appetizing or simply ruined. Then we start to pay attention to the recipe and consequently get a better result - a result close to what was 'predicted' or perhaps 'expected'. We begin to trust our skills. Learning more recipes means that we gain the insight needed to try adding garments, combining dishes or ingredients. We also learn that a lot of dishes are almost identical up until a certain point. There are 'standard ways', but if you really want to make good food, there's always some hints and tricks.
For instance: Sauce BĂ©arnaise can be made as something you buy and just heat. A beginners choice. Then you can get it in various half-made versions (just add milk - just add milk AND butter). You can get the essence and start it from the beginning. But to actually start it from the VERY beginning: you can make your own essence (which, btw, takes around 10 minutes and is really worth it...)

The point is, that the more you do yourself, the more control you've got over the result - and the more fun you have too.

Contrasting to software testing: new testers has to start somewhere. A wise place to start would be to test something. If that's too difficult: test something as someone tells you to. Perhaps get a book on testing. We all started there somehow. We all wondered what this testing really was about. And we all made enormous mistakes (overlooking obvious bugs, not reporting bugs for various reasons, didn't document what we did, forgot to test in this way and that, missed testing because we spend all the time preparing our test, etc etc). But without mistakes: no learning.

As experience grows, we start combining tests, add new ways of testing, starting to think differently. All up to the point where we become 'chiefs of testing', finally. And at last we will avoid having people throw up on our test reports... ;-) (okay, might have skipped that analogy).

We keep cookbooks with recipes. We also keep test cases and scenario descriptions and so on. In cooking we sometimes find that two books have different recipes for the same dish. I think we need to acknowledge that more in testing: any book is not necessarily right. That means, that any book (=any standard, =any method, =any technique) isn't always right - other ways may lead to better results. But it takes a 'chief' to see it. Newbies will just look through the books to find the one recipe variation that doesn't look too hard.

So if you know of such a tester - perhaps yourself ? - then it might help to spit out the latest test he/she made, and suggest a new 'cookbook' - one that contains new and untried 'dishes' - and add that you're hungry still ;-)

Thanks for reading this far. Please give a 'michelin star'-comment if you like ;-)