Jump to ratings and reviews
Rate this book

人機對決

Rate this book
本書能夠激發你的想像力,並且鼓勵你改進設計、測試和建構軟體系統的方式。

  毫無疑問,我們的世界是靠電腦運行的。從你早晨那杯咖啡的價格到全球匯率,都是電腦說了算。全球各地的政府都在快速地數位化,工作也被演算法取代了。無所不在的自動化以及聰明的行銷手法,讓我們誤以為手機、電視甚至車子都有智慧。但是這些電腦系統都是人類創造的——立意良好,但會出錯、有偏見;聰明但健忘;有遠大的計畫但時間永遠不夠用的——人類。將一項工作數位化並不代表不會出錯,反而保證在錯誤發生時,影響的規模將會十分龐大。

  本書要談的是陷入錯誤預期和二進位邏輯陷阱的人。你會讀到被電腦無視的人類、一組預設密碼如何導致一場浩劫,以及為什麼航空公司有時會送出免費機票。這本書也探討了如何避免、繞開,並降低這些愚蠢錯誤的衝擊。

272 pages, Unknown Binding

32 people are currently reading
459 people want to read

About the author

Gojko Adzic

16 books153 followers
Gojko Adzic is a partner at Neuri Consulting LLP, winner of the 2016 European Software Testing Outstanding Achievement Award, and the 2011 Most Influential Agile Testing Professional Award. Gojko's book Specification by Example won the Jolt Award for the best book of 2012, and his blog won the UK Agile Award for the best online publication in 2010.

Gojko is a frequent keynote speaker at leading software development conferences and one of the authors of MindMup and Narakeet.

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
55 (30%)
4 stars
74 (41%)
3 stars
43 (24%)
2 stars
6 (3%)
1 star
0 (0%)
Displaying 1 - 24 of 24 reviews
Profile Image for Sebastian Gebski.
1,226 reviews1,410 followers
August 28, 2017
First of all, this books reminds me one of my fav software conf talks - it was DevDay 2014 (I think) & the speaker was Jon Skeet. The topic was mainly about the conceptual gaps between the real world & deceptively simple models we use to implement it in our applications. Basically, this book is like Jon's talk on hyper-steroids: several times longer, several times more comprehensive & just as enjoyable.

So, just to be precise - if you've read previous Gojko's books, this one is nothing like them -> different convention, different topic. Which is good, at least IMHO.

What you can expect when starting to read? Very well investigated & documented history of ... fuck-ups :) Not just random ones, but ones that were caused by oversimplifications, insufficient research, surprising border cases, etc. Hats off to Gojko for gathering such great material.

What would be the benefit of reading this book? Clearly it's not only about entertainment, but there's no simple, single lesson to be taught. In my case - it's very well aligned with my thoughts regarding where software engineering (as an industry) is heading: writing code gets easier & easier, threshold to create something gets lower & lower, but the consequences of breaking things get more & more serious. Author doesn't answer what we can do, doesn't propose anything that could deal with the issue (for now & in future), but even increasing the overall awareness seems like a great justification for a book like that.

VERY recommended, good stuff.
Profile Image for Mark Seemann.
Author 3 books490 followers
December 2, 2017
This book contains a collection of stories about software defects (AKA bugs). While I'm a programmer myself, they seem to be written with a broader audience in mind. I don't think that you have to understand technical intricacies in order to be able to follow the stories.

While I was reading, I was wondering whether my (doctor) wife would be able to understand the book. Perhaps, but I'd guess it's just so technically detailed that she'd tune out on it. On the other hand, I'd think that anyone who works professionally with software development should be able to understand and learn from it. Developers, managers, testers, designers, operators, etc.

The stories are light reads, but their messages still carry weight. Lots of things can go wrong when software executes in situations it wasn't designed for, and they're not only stories of lazy or incompetent developers. There are some stories where I think I wouldn't have been able to predict the defect either.

For programmers, the book is a good reminder that the assumptions we make could easily turn out to be wrong, and that that can have real consequences for real people.

From an aesthetic viewpoint, I find the typesetting and the illustrations slightly distracting. Chapter titles and illustrations are comics-like, and while I don't mind comics (I have quite a collection!), it makes the book look like toilet litterature, and I think that's a shame; it deserves to be taken more seriously than that.
Profile Image for Robert Pankowecki.
8 reviews5 followers
September 11, 2017
Fantastic collection of a wast amount of possible programming fuckups. A must read for every developer. Find out how small and funny but also huge and catastrophic bugs cause people to loose time, money or even die.
Profile Image for William Thibodeau.
23 reviews
April 9, 2019
Loved this book. A lot of examples about real world problems with computers and it shows how everything can go wrong with computers software. 4/5 ****.
Profile Image for Alex Fürstenau.
196 reviews14 followers
November 4, 2017
It was very entertaining. A good book for reading during family vacation. It contains several stories about the interaction between humans and computer (systems). A lot of wisdom can be gained about whether something should be automated or how it should be automated.
Profile Image for Nemanja Cedomirovic.
1 review2 followers
August 25, 2017
Odlicne price koje na sjajan nacin pokazuju sta se desava kada racunari odbiju da "slusaju", ili kako ljudske greske i nedovoljno istestiran softver moze da napravi ogromne probleme koje kostaju milione i milijarde.
Profile Image for Radoslava Koleva.
166 reviews17 followers
November 28, 2021
Here's a beautiful combination of practical tips for good product development and really funny stories to make you lol. For that final touch of delight we don't demand but we find so pleasing, you also have great and abundant illustrations that add nice comical value. I enjoyed reading this book very much and I'm giving it a solid 5* rating.

In a nutshell, this is a book about missed requirements, or ones where the creator did not think everything through. Digital systems are often expected to communicate between each other, but that's rarely considered during their creation - mainly because it's hard to predict what applications users will find of the system later, or what other software will be invented after you release yours. Or... how even the best designed systems can't resist when the idiosyncrasies of real life stand against it.

Take the simplest example of name validations. Product & tech people put them in place to prevent fake data entry, however their good intentions end up causing tons of frustration for people with a first name that contains 1 single letter. Or 101 lol.

The names thing escalate when systems assume that names containing "Test"or "Sample" are bound to be test users and refuses to take them seriously. Other dangerous assumption computers make is that "Null" or "Void" means no value. The danger escalates when one system does the assumption and passes the case to another, which in turn finds it perfectly normal to issue a parting ticket to the car with plates "VOID"...

From names to addresses, from automation gone wrong to randomness being not so random, from buying -1 books on Amazon to naming your child Facebook, and from breaking computers by resetting their date to before 1 Jan 1970 to breaking iPhones by trying to send rainbows and flags emojis... This book will tell you a bunch of funny yet instructive stories on how we feel we are the masters of the world and yet we set ourselves for failure all the time when it comes to tech.
613 reviews11 followers
July 7, 2018
A must read for every software developer. Automation helps to get things done faster, not better. Gojko explains all the different ways how automation can go wrong and what consequences this may have. Trivial things like names offer endless opportunities for big failures, the same is for error conditions, test data and many other parts we never think about. Before you automate your next task, read this book and stop yourself from becoming part of the next edition.
Profile Image for Szymon Kulec.
223 reviews123 followers
February 17, 2018
The longest 200 pages that I read in a while. Books is constructed in a very repetitive way, presenting stories and chopping them into paragraphs. It looks almost like it was glued from different pieces. I admit that I truly admire the author as an IT professional. In this book I found nothing from him. It's a generic book about humans' mistakes related to computers. No human touch included.

Topics covered in this book: null, address, dates and a few others. All the things that usually make IT's heads hurt.

On the positive note, the amount of gathered data is quite impressive. You can tell it by reviewing all the sources at the end of the book. This is the only reason why I didn't give it 1/5.
50 reviews14 followers
October 10, 2017
Interesting book, but not as good as I expected. A lot of rather sad stories from computer software history, about how IT made stupid mistakes, which affected people live.

A lot of them are funny, and I'm sure I will use them in "beer" conversations
Profile Image for Isidro López.
154 reviews28 followers
January 10, 2018
Very shocking, funny and interesting real stories about the dangers of "not correctly" tested or monitored software systems :-)

Besides the tones of examples, I found very valuable advices to avoid them (e.g. names, dates, unicode, cultural and ethnic differences, etc).
Profile Image for Dennis.
1 review3 followers
July 22, 2018
Readable and enjoyable short stories on how software behaves in unexpected and unwanted ways. Moreover, Gojko suggests how these bug, flaws and glitches may be avoided. Great holiday read for developers, testers, product owners/managers, project managers, business analysts and auditors.
Profile Image for Peter Eysermans.
25 reviews1 follower
January 25, 2019
Was doubting between a 2 and a 3 star rating. Although the stories are entertaining and the book is well written, I have the feeling this could've just been a blog post. The stories become monotonous and more of the same after a while.
Profile Image for Zebici.
126 reviews3 followers
July 11, 2021
The dirty little secret of the software industry is that automation doesn't make things better, only faster.

Software teams often test upgrades on a small idealistic data sample. But the real world is messy, inconsistent and full of weird cases that fall outside the norm.
21 reviews
December 27, 2023
Good, not too deep, basically a guide of edge cases to watch out for when developing and testing software. Would probably be better formatted as hypertext, with the guidelines in the last chapter as the home page, with each of them linking to the story(s) that prove its point.
Profile Image for Wouter Bos.
22 reviews1 follower
April 21, 2024
It showcases all the various ways in which things can go wrong when processes are automated and assumptions are made on the data. The book is mostly entertaining but the last chapters summarises very well all the various scenarios developers should be aware of.
Profile Image for Rosie.
13 reviews2 followers
February 6, 2018
I loved it, but I did find it funny that a book on this topic would have so many editing errors.
Profile Image for Pedro Santos.
2 reviews5 followers
March 7, 2018
Lots of examples on how some minor software errors generated huge problems. Great book for QAs.
Profile Image for Åsa Svensson.
230 reviews16 followers
April 16, 2018
This is a good collection of anecdotes, but that is not enough to make a good book.
2 reviews
November 19, 2020
Fun anecdotes of computer bugs caused by humans having catastrophic effects.
Profile Image for Jose Antonio.
8 reviews4 followers
December 7, 2020
Great stories. Very easy to read and an amazing set of references for cases where software created real world problems.
Displaying 1 - 24 of 24 reviews

Can't find what you're looking for?

Get help and learn more about the design.