It’s the end of 2015, and in the tradition of 2013 and 2014, here’s my reading list, clocking in at 36 books I’ve read this year. I’ve been enjoying reading more and more with every year, and I’ll set the bar at reading at least 40 books in 2016.

A lot of these books are focused on leadership and organizational topics, which have become more and more interesting to me, so there’s not a lot of technical books in the list, they’re more focused at management, people, growth, organizational health and business.

Good Boss, Bad Boss: How to Be the Best…and Learn from the Worst

This book is a follow-up to “The No-Asshole Rule”, a book I read in 2014, and it’s a great collection of examples from good bosses and bad bosses (big surprise!)

It’s usually not easy to come by honest and real world examples like these in a book, so if you want to learn what it takes to be a good boss, and how not to be a bad boss, this is a good book to read.

There are quite a few essence pieces in here that point to Rob Sutton’s later work “Scaling Up Excellence”, but I found “Good Boss, Bad Boss” to be a lot more useful and less pretentious than “Scaling Up Excellence.”

Snow Crash

I’ve read Stephenson’s Cryptonomicon years ago, and this was recommended to me as another of his books to read. The story paints quite an amazing and futuristic picture, given that this book is from 1984. Pictures of the internet, and something like Second Life pop up in what appears like some post-apocalyptic world.

I didn’t get much out of reading this book, though, it felt more like a chore than it felt enticing. Your mileage may vary.

Packing for Mars: The Curious Science of Life in the Void

Mary Roach has an incredible skill when it comes to dissecting scientific topics in a humorous ways. Just like when reading “Gulp” last year, I found myself chuckling and laughing at topics that would appear pretty dry an empty (pun intended) in any other context.

Moneyball: The Art of Winning an Unfair Game

I’ve enjoyed reading Michael Lewis’ “Flash Boys” in 2014, so I gave Moneyball a shot. He has a good writing style that keeps you engaged, even when the topic is something mundane as baseball and using metrics and data to make business decisions, especially to a European like myself, who doesn’t have anything on baseball.

Still, the story is a really interesting one, and it’s at times hard to believe how reluctant baseball as a whole is to changing the way it measures success in the game.

Fahrenheit 451

I was browsing through some classics in the Kindle store, and this came up, so I thought, why not? Turns out it’s a thought-provoking read to boot, definitely among the books one should be reading in a lifetime.

Omnivore’s Dilemma: A Natural History of Four Meals

The book has gotten me to appreciate the food I eat every day a lot more, and the path it’s taken to where we are right now, both the good and the bad.

It’s an inspiring story to look after what you eat and look beyond just eating healthy, but also considering where your food is coming from.

Reading the book had me wanting to make my own salami and grow more of our food ourselves, so that’s something.

It’s an inspiring and thought-provoking read.

The Girl on the Train

This was one of the few novels I’ve read this year, and it turned out to be a great one. It only took me two days to read the entire book, and it was really hard to put down. It’s a mystery thriller kind of book with a well laid out and gripping story.

If you’re looking for any kind of novel to read, go for this one, I’ve thoroughly enjoyed it.

Startup CEO: How to Build a Company to Success

There are only few books that focus on what a CEO in a startup or relatively young but fast-growing company does. It focuses a lot on the every day in and outs of a CEO, and it helped me quite a lot in getting a grip on what I should be focusing on as a CEO, what I can and should delegate, what roles to hire into, and so on.

If you find yourself in the rare position of being the CEO of a startup, this is one of the books to get. It’s right up there with “The Hard Thing About Hard Things”, and I have both on my desk in print for good reason.

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

I’ve had this book on my reading list for two or three years, and it was about time to finally read it. It was time well spent. The Phoenix Project is very well written, outlining organizational dysfunctions and the path to improvement as a novel rather than a collection of practices or things you could or should be doing.

Having worked in similar organizations as outlined in the book and having seen what can help improve them, I could relate to a lot of what’s in the book.

The good part is that it’s not just a book for ops or development folks. DevOps is about more than that, it’s about customer focus and organizational health.

It quickly made it on our company-internal book recommendation list for everyone.

Mindset: How You Can Fulfil Your Potential

“Mindset” looks at two different states of mind. One is the fixed and the other the growth mindset.

The book looks at both from different angles, work, sports, personal life, marriage, children, making the case that the fixed mindset will keep you from becoming a better person, from learning, from growing into something rather than relying on superfluous (or non-existent) things like talent, being born with a certain trait, and so on.

With the right mindset (spoiler: it’s the growth mindset), you can learn pretty much anything.

It’s a rather motivational book, which got me to rethink a lot of my approaches to life, both personally and at work, so it was worth the read.

The Five Dysfunctions of a Team

This book is written in a similar way as “The Phoenix Project” (though I’d wager that it’s the other way around). It’s the story of a new CEO joining a struggling company and trying to find out what’s broken in the leadership team and working towards fixing it.

I’ve found myself slapping my forehead quite a few times reading this book, and I’d recommend it to anyone in a leadership position, though it makes for great and revelatory reading for everyone working in a team.

Intercom on Product Management

A handy little guide from the folks at Intercom on the how and why of product management, on figuring out what to build and what not to build.


This novel-ish book gets a mention here mostly because I read it, and that’s it. It’s neither particularly thrilling nor is it exciting or humorous. I just found it sad to read, but maybe that’s what the author intended, who knows?

The Advantage: Why Organizational Health Trumps Everything Else in Business

This book picks up where “The Five Dysfunctions of a Team” left off. It outlines clear advice on how to get a team to focus and to fix its dysfunctions. The fixes outlined in this book are surprisingly simple, and I can confirm that I’ve tried a few of them out already, to great success.

If you’re reading “The Five Dysfunctions”, you should be reading this too.

Making It Right: Product Management for a Startup World

Another relatively short and approachable book on product management, and very much focused on the practical side of it, and how it might work in an engineering organization.

Rather helpful if you want to figure out what product management is, how to approach it and where it might sit in your organization.

The Wind-up Bird Chronicle

I’m a big fan of Murakami’s books and his writing style, and this one was a great read, as to be expected. One of the few novels I’ve read in 2015, and I thoroughly enjoyed it.

My Life and Work

You could say this was an out-of-the-ordinary book with the others mentioned in this list, but it really wasn’t. This is Henry Ford’s auto-biography with a heavy focus on how he’s built his business building and selling cars.

Some noteworthy key points: instead of taking funding, he built his business brick by brick, building and selling several different car models until he’s finally reached the infamous Model T, which he turned into multiple revenue streams, being able to turn the base structure of the car into cars, convertibles, trucks, tractors, and so on.

While he’s considered the father of integrated factories that build cars on an assembly line, I found some of his views on building a business rather surprising, positively so.

He hired people no matter their background, assuming that everyone wanted to come to work to do a great job. He restricted work to a reasonable set of hours. He built factories that, while compact, made sure that there’s enough room for people to move about without feeling crammed and that have enough natural light rather than feeling closed off.

This was a surprisingly good book to read.

Not everything that Ford valued made it into the future, though. His prediction was that cities would vanish, and that people would favor a lifestyle of living in the countryside, where they could grow their own crops in summer and work in factories like Ford’s in winter. Not really that bad of an idea, if you ask me.

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

This book was recommended to me when looking for books on management, so I gave it a read. I’ve been an avid reader of Michael Lopp’s blog, so this seemed like a useful book to read.

Unfortunately I didn’t really get much out of it. The book reads exactly like what it is, a collection of blog posts, loosely grouped around similar topics.

I find some entertainment in Lopp’s writing style on his blog, though I do find it a bit glorified (both when talking about engineers and engineering managers) and pretentious at times.

The collected blog post content doesn’t really jell, it doesn’t flow well from one chapter to the next. It’s like reading a collection of blog posts, which you might as well do on his blog.

Zero to One: Notes on Startups and How to Build the Future

This was one of the celebrated books on startups coming out in 2014, so I thought, why not? Let’s see what Peter Thiel has to say. Given the companies he’s been involved and invested in, he probably knows a thing or two on the topic.

As someone who’s been rather critical of the funding-heavy startup culture of San Francisco and Silicon Valley, I tried to approach this book with an open mind.

Unfortunately the Thielian Reality (you heard it here first) conflicts deeply with how I view building a business. His focus is on building monopolies, unicorns, companies that dominate markets, and therefore determine the future.

The entire book talks about companies that have grown very fast, that have captured huge markets, companies that have broken or build monopolies. They do exist, there’s no denying that.

I find Thiel’s advice as a whole to be rather toxic. His reality is a perfect outline of how I perceive Silicon Valley, which is good when you’re part of that culture. It’s repelling to me as someone so removed from that culture.

The book finishes by describing that founders need to be on the extreme end with their personal trait. He brings in Kurt Cobain, Amy Winehouse, and other pop culture heroes to make his case.

Thiel’s Reality is a very one-side one, and I want as little part of it as I can.

Hot Seat: The Startup CEO Guidebook

This book came fresh off the press, and it was recommended to me by a friend. As books on being a startup CEO are rare, I had to read this one.

It’s really well written, and it’s full of good advice when you’re starting up a company. The first part focuses heavily on topics like founding and how to split up the company, approaching funding, getting investors on board, pitching, and so on. I found this part very interesting to read as someone who’s so removed from all of that. On the other hand, this topic makes up almost half of the book, and it’s heavily leaning towards setting up your company in the US.

With so much content focused on founding and funding, I felt like the rest fell a bit short. Management and leadership get their due pages, and so does the topic of acquisition, but they do feel unfinished, especially compared to how dense the part on founding and funding is.

From my perception, the book is great for when you’re just starting out. There are a few things in there, especially from the early stages, and the end bits about going through an acquisition, that I found rather interesting and that got me to dive into other books the author mentioned to learn more. They’re stories that you don’t hear about very often.

Bonus points for this book focusing so much on the importance of diversity in a startup!

Read this if you’re just starting out setting up a company. At later stages, go for “The Hard Thing About Hard Things” and “Startup CEO”.

Slack: Getting Past Burnout, Busywork, and the Myth of Total Efficiency

This turned out to be one of the best and most insightful books I’ve read in 2015, recommended by a friend. I’ve read Tom DeMarco’s “Peopleware”, a project management and software engineering classic, years ago, and it was already a very insightful book, so reading this one seemed like a no-brainer.

It’s wonderfully short, and it’s easy to read the entire thing in an afternoon.

The core of the book is that it’s important not to keep yourself (as a manager) and your team busy and working at full capacity. Doing that restricts your team and company in experimenting and innovating, leaving little room to find new ways of doing things, exploring new features or even new products.

If you’re a manager or leader, this is a must-read book. And when I say must-read, I mean must-read.

Startupland: How Three Guys Risked Everything to Turn an Idea Into a Global Business

Startupland is the story of how Zendesk, a widely respected company in customer support, grew from three guys in a Copenhagen apartment to going public on the New York Stock Exchange.

It’s a pleasant story to read, and it’s an honest one too. It touches on struggles in the founding team just as much as the struggles of scaling out a company, working with investors, moving countries as a company, and finally, about going public.

There’s not much in terms of advice in here, it’s just a nice story to read on how you can grow a company from the very small to the very big.

The Founder’s Dilemmas: Anticipating and Avoiding the Pitfalls That Can Sink a Startup

This was one of the books recommended in “Hot Seat”, and it was one of the few books that I devoured and thoroughly enjoyed reading, having many facepalm and lightbulb moments.

It’s one of the few (maybe the only?) books that dives into real world data on startups. The data set feels a bit outdated (at least speaking in terms of internet time), but it still gives you good indicators on what you need to focus on and keep in mind when you start a company.

It touches on topics like splitting up equity, balancing (or rather, choosing one or the other), keeping control of the company versus building wealth, taking on investors, challenges and struggles of a founding team, and heaps more.

This book is a treasure trove, and I wish I’d read it years ago (or at least in 2012, when it came out).

If you’re planning on setting up a company, if you’re just setting one up, or even if you’re years into building it, this book is a must-read for an entrepreneur.

It’s helped me gain some clarity on topics that I couldn’t quite put my finger on before or argue for against, and that’s true for every topic it touches on. Quite a few of the problems outlined are familiar to me, and it was interesting to learn how this has panned out at hundreds or thousands of other companies in similar situations.

A couple of years ago, an investor asked me “Do you want to be rich or do you want to be the king?” Back then, I didn’t really understand what he’d meant. Thanks to this book, I have a much better understanding about it now.

Venture Deals: Be Smarter Than Your Lawyer and Venture Capitalist

Another book coming out of “Hot Seat” that I decided to read on a whim. I’m a critical person of the prevailing funding culture, but I still wanted to learn more about what’s happening inside that other reality, so I can at least understand it better, maybe open up my mind along the way.

It sure helped to read this book. It’s straight to the point, and if you’re looking into getting funding for your company, you’d probably be well-advised to read it. Though you shouldn’t really take that from me, as I have very little experience looking for let alone going through the process of getting funding.

It definitely helped me get some more insight into funding from an investor’s perspective, which was helpful after getting the founder’s perspective in “Hot Seat”.

What if?: Serious Scientific Answers to Absurd Hypothetical Questions

Not being an avid read of xkcd, it took me a while to get to the point of wanting to read this book. I’m glad that I did, because it’s hilarious. It starts out by explaining what it would look like if a baseball was pitched at near light speed, and it just goes from one hysterical and outrageously impossible topic to the next.

I laughed a lot reading this book, so you should probably read it.

Beyond Blame: Learning from Failure and Success

I had the pleasure of reviewing this book as it was written by my friend Dave Zwieback. It follows the footsteps of “Five Dysfunctions of a Team” and “The Phoenix Project”, using a novel-like narrative to explain the importance of a blameless organizational culture and trusting your team.

It’s a wonderful and short read, so you should probably read it. If you’re new to the topics of blameless culture, normalization of deviance, practical drift, the ETTO principle, and the like, you’ll find plenty of inspiration and starting points in this book.

The Road to Little Dribbling

I’ve been a big fan of Bill Bryson’s books, having racked up quite the stack over the years. “The Road to Little Dribbling” picks up where “Notes from a Small Island” left off, revisiting Britain 20 years later.

I found the book rather disappointing. While it still has heaps of Bryson’s witty and humorous writing style, a big part of it reads like the ramblings of an old man who’s mad at how things have changed since he was last in the country. Maybe he’s right in being mad, but there are so many complaints in the book, it’s been a bit dreadful to read at times.

It’s not the same as “Notes from a Small Island”, or any of his other, previous books. If there’s one thing I appreciate out of this book as much as his earlier works, it’s that he walks around so much to explore. I can certainly relate to and appreciate that.

The Martian

I saw posters of some movie called “The Martian” feat. Matt Damon, so I did the only thing I could think of and bought the book so I don’t have to go to the movies.

It’s a great novel, both for the geek in me (and you!), and for the hopeful person, and you should probably read it. It’s interspersed with scientific detail, and you can tell that the author did their homework.

Marissa Mayer and the Fight to Save Yahoo!

I read the introduction to this book earlier this year, and that got me hooked on wanting to read more.

The book is part a history of Google and part a history of Yahoo!, both sides with a focus on Mayer’s role in them.

It’s incredibly well written, and I had a hard time putting it down (so I didn’t!) It’s odd to call a book like this gripping, but that’s exactly what it was.

Looking at recent news out of and around Yahoo!, the story isn’t finished yet, but it’s a great introduction to where Yahoo!, Google and Mayer came from.


A friend recommended this to me to find some inspiration on how to approach our company offsite.

Inceptions is a workshop method to plan a product, or the next quarter of it, working through features, their motivations, goals and so on.

While it was not the kind of thing I’d planned on doing at our company offsite, this is sure to be helpful in the future.

A Walk in the Woods: Rediscovering America on the Appalachian Trail

I saw a movie poster that had Robert Redford on it, and I thought “Hey, I’ve heard that movie title before!” Once again, I did the only thing I could think of and bought the book.

The book is from 1998, and it does read like it at times, but it’s written by the wonderfully humorous and witty Bill Bryson that I’ve come to enjoy a couple of years ago.

It’s a story to indulge in without clinging to any of the detail, just living through what Bryson has experienced walking the Appalachian Trail, making you dream about maybe doing that Trail yourself one day.

Stir: My Broken Brain and the Meals That Brought Me Home

This book was written by my friend Jessica Fechtor, and it’s a mix of personal story interspersed with food and recipes.

I do enjoy reading these kinds of books, and even more so when I know the author personally, as the stories here share so much more about their personal lives, bits that I didn’t know of. It makes me appreciate them as friends even more.

If you like these kinds of books, may I also recommend Luisa Weiss’ “My Berlin Kitchen” and Molly Wizenberg’s “A Homemade Life”?

Girl in a Band

This is Kim Gordon’s memoir. She was a founding member of Sonic Youth, she directed heaps of music videos, is an artist, and so much more.

In my grunge days, I didn’t really listen to Sonic Youth, which maybe helped me appreciate this book and Kim’s many talents a lot more.

A big part of this book is about feminism, being the girl in a band, being a rock mother, and the struggles going along with it.

This was an inspiring book to read and has gotten me wanting to read more biographies and more personal stories.

The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution

I came across this book often enough that I figured I might as well.

First things first, there’s very little in terms of technical details in here. The story starts at Ada Lovelace and follows the path towards computing and computers as we know it to do.

The path is fascinating, and it’s filled with amazing and smart people building on top of each other’s work, triggering innovation after innovation, to get us to where we are now with computers.

The most inspiring part of the book was to me that it only talks about people and how they work together. The innovations that have lead us to where we are now in computers were more team work than they were an individual’s achievements, even if some of the individuals involved would like to tell a different tale. It tells the stories of unlikely couples working together, playing off each other’s strength to build transistors, computers, microchips and so much more.

I found the first part to be the one I enjoyed the most, because I knew very little about Ada Lovelace and her involvement in defining computing today, and I was happy to have that fixed.

If computers and how they came about are your thing, this is a good book to read.

Managing Oneself

This book was my first contact with Peter Drucker, and it got me hooked on reading more. It’s really, really short, really. You can read it in half an hour. It’s still full of great advice on the importance of managing yourself, figuring out your values, your strengths, what you’re not good at, and how you can measure your own success.

The title suggest it’s aimed at managers, but he’s talking to anyone who can be considered a knowledge worker.

The core of the book is that it’s just as important to reflect on yourself as it is to reflect on the bigger picture you’re a part of. That message I’ll gladly sign off on.

How We Got to Now

I came across this book on Brain Pickings and, having an appreciation for learning about how things came about that we consider part of our everyday life now.

Steven Johnson talks about six innovations, some of them arguably under-appreciated, that have lead us to where we are now.

The innovations he talks about are glass, cold, sound, clean, time and light. If you think about it, at the surface, all of them sound so minuscule, hardly worth calling innovations, let alone innovations that have had a key part in getting us to where we are now.

Sometimes the book reads like it suffers from outcome bias, but on the other hand, Johnson is probably right that our civilization wouldn’t be exactly where it is right now without the innovations he introduces.

I found this a fascinating book to read. If you’d like to learn more about sleep and time in particular, I have two book recommendations for you: ”Dreamland” and “In Search of Time”

What books did you read in 2015? Make sure to share your list, so the rest of us can make sure we never run out of interesting things to read.

See you in 2016! I already got my reading list for the first couple of weeks sorted.

Disclaimer: All links are Amazon Associates links, the earnings of which I solely use to buy more books. I appreciate your using them and feeding my unhealthy reading habit, thank you!

Tags: books

2014 has been a good year of reading for me, and below is the list of books I've read and a bit of commentary on each. As you'll notice, I've been focusing on leadership, management and the likes a lot, the area where I still have so much to learn and where I'm thankful for some of the books that shed light on how other companies have handled the hard bits of building and growing a business.

Thinking, Fast and Slow

One of the best books I've read in 2014. Consider it an introduction to our hidden biases and how they influence our behaviour and our analysis of high-stress situations. Very relevant when you're working on high resiliency systems in web operations.

Distributed Systems for Fun and Profit

This book is a great little primer on the challenges of building and running distributed systems, with lots of references to dig deeper into algorithms, books and papers. Plus, it's free, so how can you not?

Flash Boys

This book was recommended to me by way of John Allspaw with the hint that it mentions a blog post on human error I'd published in 2013. It's a book about high-frequency trading and about a little company that's trying to build an ethical exchange for high-frequency traders. It's a great read and sheds a whole new light on challenges like front-running orders and gaining competitive advantages by cutting response times just by one millisecond.

No Exit: Struggling to Survive a Modern Gold Rush

I came across a Wired article on a team of founders and their challenges of raising money for their financially struggling startup in San Francisco. This book is the extended version, and a good read. I can relate to the struggles, but I'm also glad that our company is neither in the Valley nor is it pursuing funding as a means of growing.

In Search of Certainty

This book came on my radar as it's relevant to web operations, and it's been hailed as a great book on the theoretical aspects of it. Theoretical the book is indeed. It's hard to figure out where it's going most of the time. Most of what's mentioned in the book seems much more relevant than say, Nassim Taleb's work, but it's hard to grasp the relevance until you reach the last chapter.

I'm not sure if I'd recommend this book. The last chapter, which brings everything together, was the only thing that made sense to me. It's not like the rest of the book doesn't make any sense, but it's struggling to bring out the relevance in what it's trying to say.

This book feels like the scientific antidote of Nassim Taleb's Antifragile. Where Taleb uses big words, dishes out on people and makes up his own vocabulary, "In Search of Certainty" appears much more logically sound.

Start With Why

I came across a talk by Simon Sinek, which relates to his newer book (see below), and figured I might as well start with his earlier works.

Turns out this is a great read, and has been very relevant to what our last year at Travis CI has been about, trying to figure out what our purpose is and why we do what we do. We're still working on figuring it out, but this book has kicked off a lot of my strategic thinking recently. Highly recommended.

Leading Snowflakes

I came across this book looking for introduction resources on how to be a manager, as that was my transition in 2014. "Leading Snowflakes" is a very practical book, giving you actionable things to improve your management and leadership skill set, I highly recommend it to anyone moving into a leadership position.

The Year Without Pants

Scott Berkun writes about his time working for Automattic, the company behind This turns out to be a great read on how to manage teams of engineers, give them direction, and how to function in a remote team.

A highly recommended read.

Mature Optimization Handbook

Optimization is one of the harder parts of engineering. It's easy to do wrong, and it's easy to do in the wrong places and with the wrong investment. This book is a great call for sanity and a very good guide in how to approach optimization in larger (and smaller) systems. Plus, it's free!

Leaders Eat Last

This is sort of the sequel to "Start With Why" (see above), a great book on leadership, empathy and great teams. Sinek has a very anecdotal writing style, which is compelling at the same time. Will definitely read this book again. This book also brings together how people feel with the hormones that drive stress and happiness.

If you're uncertain, go watch his talk on what's in the book.

Creativity, Inc.

One of the greatest books of 2014, this one goes through the entire history of Pixar from the leadership perspective. It tells a lot of great stories, both good and bad, making it a rare breed among books on leadership, which isn't just about how to make people great, it's also about going through rough times, which in turn can mean making tough decisions or having to deal with situations you've never seen before.

A very highly super recommended read, whether you're in a leadership position or not. On top of that, you get a whole new level of appreciation for how the Pixar movies like Toy Story came about.

Turing: Pioneer of the Information Age

I picked this one up from Brain Pickings as my vacation reading. I hadn't known a lot about Turing beyond what I'd learned in university, and this turned out to be a great read to learn more about his life.

If you're remotely interested in computer science, this book is a must read, as we owe so much of what we now take for granted to Alan Turing.

Dreamland: Adventures in the Strange Science of Sleep

From my vacation reading list, the first thing this book has taught me was that we used to have very different sleep patterns before artificial light became a common part of our daily lives.

I very much enjoyed reading this book, which makes you painfully aware of how little we still know about sleep, dreaming and all that. One thing's for sure, it got me to care more for my sleep, going to bed earlier, not spending too much time in front of computers at night, so that's good.

Essentialism: The Disciplined Pursuit of Less

This book is making a very simple point, one I can very much agree with. It encourages you to say no. Saying no is something that's very hard for me, but saying no allows you to focus on what's important to you rather than what other people want from you. It also encourages you to cut out unnecessary distractions from your daily life to focus on the essentials, on what's truly important.

Unfortunately it quite a few questionable examples to make its case, and it's also overly long at that. It's an okay-ish read, but you won't miss out on too much.

Failure Is Not An Option

A great story of how the Apollo program came about from one of their controllers. Putting aside the continual references to god, this book is a great read for anyone interested in space travels, but also in complex systems and their failure modes.

Looking back, it's amazing that Apollo was so successful. It feels like so much involved Duct tape and good luck, but digging deeper, you realize that they have been very thorough about testing. Even in the sixties, they had fully automated systems that allowed them to emulate all kinds of problems that astronauts could run into when in space.

Gulp: Adventures on the Alimentary Canal

Mary Roach has a knack for turning a topic like the digestive system into something hilarious. I've chuckled a lot reading this book, and it's given me a lot of great dinner conversation starters to boot.

In Search of Time: The Science of a Curious Dimension

If this book has done anything, it has peaked my interest on quantum theory and mechanics, and on string theory, which definitely surprised my mom, a retired physics teacher, when I brought up these topics over a family brunch.

Beyond that, though, I've been only vaguely aware of how artificial and imprecise of a measurement time is. This book is definitely one to make you think about what time is, how we experience it, and why it's a flawed concept.

The Checklist Manifesto: How to Get Things Right

This book introduces a simple concept, but it's one that has changed how surgeons approach their daily work, checklists. Checklists are such an amazingly great concept, but they can help not only save lives, they can help you be more productive and more careful about work that you assume to be normal.

A great and short read, highly recommended for people interested in complex systems as much as people starting and running companies.

Stumbling on Happiness

This book looks at all the facets of what makes us happy. It comes with a scientific background, so what it's talking about seems to have good merit.

What it boils down to is a simple question: How can be know if something is going to make us happy or not?

In the words of Buzzfeed, the answers may surprise you (after you've read the book of course, which you should).

Manage Your Day-To-Day: Build Your Routine, Find Your Focus, and Sharpen Your Creative Mind

This book is filled with great and concise advice on how to be more productive in your every day work. It's so good that you should buy and read it right now.

Startup Growth Engines

The authors claim that this book is filled with case studies on how successful companies have managed to grow to what they are now.

What this book turns out to be is a random collection of blog posts filled with hearsay "research" based on press releases and blog posts from said companies.

Reading this book is a waste of time, as it won't teach you anything interesting or that you can apply yourself.

Just Culture

The new view on human error brings up an interesting question. When it's not humans who are at fault when something goes wrong, or when human lives are lost, who do you hold accountable? Can you even hold anyone accountable?

This book is an exploration of the legal issues and challenges involved in the balance of accountability and a just culture.

If you have any interest in the new view on human error, this book is a thought-provoking read on how to manage accountability in your company.

Engineering a Safer World: Systems Thinking Applied to Safety

In one of the few books that looks for practical applications of complex systems thinking in engineering. Nancy Leveson combines the ideas of complex systems and also a new view on human error to find a better way of building resilient systems.

While the book is dry at times, it's a great rundown of the current thinking on complex systems in engineering, and in the end offers a surprising simple solution to build better systems.

Hint: premortems.

The book is also available as a free PDF. It's a long read, but if you're interested in the topic, a relevant one.

Scaling up Excellence

This book is filled with anecdotes on how great companies have manage to scale up their business while keeping true to their ideals of excellency. A lot in the book is claimed to stem from research, but reading it, I couldn't help but notice the mixed nature of the anecdotes. In the end, the book doesn't really include any useful advice on how to scale up excellence in my opinion, and it focuses a hell lot on IDEO.

I don't doubt that the authors have insight into many great companies, but I found previous works (see below) to be much more useful and on point. It's a noble cause trying to extract patterns from other companies' experiences, but in the end, the book read like there are many ways to get to the finish line, for every single pattern they identified. Which is exactly what you'd expect, as there's no one true way to scale up excellence.

Your mileage may vary.

Quiet: The Power of Introverts in a World That Can't Stop Talking

I got curious about this book because my friend Daniel Schauenberg mentioned it. I've never looked at myself as an introvert, but reading through some of the review and book summary, I recognized some of the attributes in myself, so I started reading it.

Based on the book, I wouldn't call myself a full blown introvert, but I do value alone time to recharge, I feel awkward with small talk and in bigger groups. I've had my fair share of stage fright and still do.

The book was an interesting read, as I've been wrestling with my introvert side and being part of the leadership team of a small company, which seems to be a common challenge, all the more so in engineering-driven companies.

Tribal Leadership

If this book has taught me anything, it's to move my own narrative from "I" to "we" when it comes to talking about work, the company, and the team.

It's introducing the concept of five stages that people go through, basically from "everything sucks" to "we're great", and how you can get from one stage to another.

A lot of what it's talking about resonated with me, and I'd recommend it for anyone in a leading position.

The Hard Thing About Hard Things

Most of the books on leadership and management I've read this year focus on positive things or only on the surface area of certain problems. Building a company is a struggle that involves things you've never had to do before, like hiring and firing people, going through periods of close to bankruptcy and other things that you feel alone with as the CEO of a company.

"The Hard Thing About Hard Things" is one of the few real talk books out there. It doesn't just brush on the really hard things, it puts a big focus on them.

The book talks a lot about the hustle of quickly growing a startup, but putting that aside, the problems you'll have even in a bootstrapped company are very similar. You'll be faced with tough decisions, and you'll have to make them alone.

Even though I just finished this book, I've been coming back to parts of it already, re-reading certain parts of it.

Next to "Creativity, Inc.", a similar book that focuses on the hard parts of building a company, this is one of the greatest books on building and leading a company of 2014.

The No Asshole Rule

From the authors of "Scaling Up Excellence", this book is much more helpful, even though it uses the a-word a lot. I've been enamored with building and fostering company culture for the last 12 months, and this book hits right home. No one wants to work in a place where assholes rule, and I'm trying my best not to be one. Whether I succeed, I can't say with 100% confidence, but I can try my best.

I'd almost say that this book is required reading for anyone trying to build a healthy team environment. While it might use strong language, it's straight to the point. You don't want to be someone who's draining people's energy, you want to give them energy. And to do that, don't be an asshole and read this book.

Bonus: Antifragile

This book is a bonus because it's the only one I stopped reading like 100 pages in. I liked Taleb's "The Black Swan", as I agree with its core message. But Taleb's writing style is full of vile, he likes to dish out, he likes to make up his own vocabulary (antifragile) all the while ignoring scientific research. He calls resilience a wuss concept, trying to sell you on antifragility (Warning: not a real word) instead.

I couldn't bear his tone for hundreds of pages a second time around, after already barely making it through "The Black Swan" the previous year.

People have said good things about this book, but I found a lot more insight reading books like "The Field Guide to Human Error" or other work relevant to resilience and human error.

Read Taleb at your own risk, his resolve might be swaying, but I've gotten very doubtful of how he's trying to sell it.

Read more books

I've read 28 books in 2014, and I aim to read more in 2015. I've been setting regular time aside every day to read, and it's been working well. One thing I need to get better at is taking notes and keeping track of my highlights from Kindle books.

If you're looking for even more stuff to read, make sure to check out last year's reading list.

Go read, kids!

Tags: books

I got to read a lot of great books in 2013, shaping a lot of my current thinking both in terms of business and web operations. If you're looking for something to read, follow along!

Effective Monitoring and Alerting

I've developed an interest in improving our monitoring, and this book delivered some good insight. The book is a quick read, and it ends up delivering a great idea for how a monitoring system could be structured, without going too much into implementation details.

There's a distinct lack of books on this topic, so this one is good to start with.

The Signal and the Noise: Why So Many Predictions Fail — but Some Don't

From the guy who predicted the 2012 election results, a great introduction on statistics, probability, written in an entertaining style (i.e. not boring you with too much math). Gives lots of examples from Nate's personal history of getting into numbers and probabilities. Very entertaining read and will definitely make you think about these topics some more.

The Black Swan: The Impact of the Highly Improbable

Nassim Taleb has an interesting writing style, to say the least. Among slews of bashing other people and polishing his own ego, you'll find streaks of genius.

The Black Swan is a great read on managing risk, or the inability of managing certain risks. If you're running any kind of application in production and are actively involved in operations, this book is a must-read.

The book's point could be made in a significantly shorter version of it, but that would of course deprive you from the joys of reading about Taleb's personal feelings.

The Art of Capacity Planning

This book is a classic, and I only got around to reading it this year, shame on me.

It's wonderfully short and to the point, dealing a lot with monitoring and making your capacity planning work in the best ways possible.

If you haven't read this book yet, start right now. It's timeless for anyone working in web operations.

Friendly Fire: The Accidental Shootdown of U.S. Black Hawks over Northern Iraq

A book describing in great detail the shootdown of two helicopters over the no-fly zone in Iraq in the early nineties.

Why is this relevant and interesting? It's pretty terrible that people have died during this incident.

The fascinating parts of this incident and the book are in what happened in all the parties involved in the incidents and in the organizations as a whole, for years leading up to the event.

This book was an eye-opener for me on how I think about production incidents. It covers in great, great detail the events in a socio-technological organization, the US military.

There's so much to learn in this book that can be applied to web operations.

The Field Guide to Understanding Human Error

Sidney Dekker is a great writer on topics are very relevant to web operations: humans.

Human error is a common excuse for production incidents, all the more so when a plane crashed or other bad things happen.

Dekker puts these things in perspective, and he's helped shape my thinking a lot. What a human does in a particular situation, why he does it and how the organization and the work environment have shaped his understanding of a particular situation.

A great and highly recommended read, goes nicely with Snook's "Friendly Fire."

Managing the Unexpected: Resilient Performance in an Age of Uncertainty

I didn't know what to expect from this book, I bought it on a hunch.

It turns out it's an important read when it comes to managing risk and achieving organizational resilience. Fits in perfectly with the books mentioned just before.

It looks at a slew of different industries and on how they handle risk and risky situations. Fire departments, air travel, and lots more.

It introduces the concept of a high resilience organization and a lot of great ideas, which are picked up by Dekker in a book introduced below.

Thinking in Systems

The book on complex systems and systems theory.

I was amazed, only in hindsight, how important this book is. It introduces the idea of complex systems and how parts in a complex system interact with each other, how they influence each other, how even just small changes in one can have long and delayed effects on others.

The book introduces these concepts in ways not directly related to web operations and software, but you'll notice the relationships right away.

This is the book to read. Read this one first, read it now. The most influential book I've read in 2013.

After reading "Thinking in Systems", you'll see systems and complex interactions between systems everywhere. You know why? Because there are systems everywhere.

Small Giants: Companies That Chose to Be Great Instead of Big

Running a small little business myself, I strive to get as much inspiration and insight on how others running their companies as possible.

This book has been a big inspiration for me. It covers a dozen or so companies that did everything they could to build a balanced workplace with happy employees and a long-lasting legacy rather than go for the big buck or for outside funding.

Lots of great stories in this book. If you're running any kind of business, this is a great read.

The Challenger Launch Decision: Risky Technology, Culture, and Deviance at NASA

This book is so chock full of insight on behaviors and interactions in socio-technical organization, it kept blewing my mind over and over.

It's about the Challenger incident in 1986, and everything contributing to this incident over years leading up to it.

The level of detail extracted by Diane Vaughan is amazing. She introduces the term "normalization of deviance" in the book, a term that stuck with me, and that I'm now seeing everywhere. It provides a description for something that naturally happens, whether we want it or not, but that seems unavoidable.

Again, this book isn't directly related to software, but it's so very relevant to what we do in web operations. Humans, human interaction, organizations and culture. I found these bits to be the most interesting and fascinating bits when it comes to running anything in production.

If you're curious about these bits too, then this book is for you. Together with "Friendly Fire", it provides amazing insights and learnings for running your own operations team or how to improve human interaction and culture at your company overall.

These books are very relevant to the ideas of DevOps.

Drift Into Failure

Now that you've read "Thinking in Systems", "Managing the Unexpected", "Friendly Fire", and "The Challenger Launch Decision", here comes Dekker putting all of them together, quite literally.

I was quite amazed to find references to all of them in this book.

The books left me wondering a bit on how you can detect normalization of deviance, what you can learn from the Challenger and Iraq incidents, from high-resilience organizations.

This book is Dekker helping you find answers.

Read "Thinking in Systems" first, then "Friendly Fire", "Managing the Unexpected" and "The Challenger Launch Decision", and then read "Drift Into Failure" to find more practical applications of what's been introduced in the other books.

I've had my mind blown several times by all of them. They're pretty amazing eye-openers.

Thinking, Fast and Slow

Just started reading this, but it seems relevant to the topics of biases. Had it on my reading list for a while now, so it's about time to read it.

Will have to report back on this soon.

Free Bonus Reads

If you need more business-related reading, I posted a list of the books that influenced how we run our company over at Travis CI.

Here's to more reading in 2014!

Tags: books

Been a while since the last reading list (here's a handy link, in case you're looking for more to read). Time to remedy that. Disclaimer: All links below are Amazon affiliate links. You'll be feeding my reading habit. Thank you in advance!

Pricing With Confidence by Reed Holden

I know I already mentioned this on the previous list, but it's just so good. A must read for pricing products or even your time as a freelancer. Must. Read.

Poke the Box by Seth Godin

A nice and short manifesto about starting (and finishing) things. If you don't finish, technically you never really started, right? Pretty delightful read and a nice kick in the pants about starting something, anything, about making things happen. Because if you don't, who else is there?

Fool's Gold by Gillian Tett

An excellent rundown of how the 2008 financial crisis came about and how derivatives and collateralized debt obligations came about. The interesting bit is that they were created with good intentions originally, but as with a lot of things, the short-sightedness and greed of investors and banks turned it into a mind-boggling web that was bound to end up as a cataclysmic and cascading failure across the entire financial system.

Start Small, Stay Small by Rob Walling

If you're interested in running a small business, built around profitable products, marketing and building them yourself, this is a great little introduction on everything you need to know. I got quite a few ideas from this book for my next ventures.

After you're done with it, and you want to keep going, Amy Hoy's 30x500 class is highly recommended.

Architecture of Open Source Applications Vol. 2

The second edition of this great compilation is upon us, and it's great. I loved the chapter on ZeroMQ in particular, but there's still a lot I need to read, e.g. the chapter on nginx or the one on PyPy

How To Win Friends and Influence People by Dale Carnegie

This book is now 80 years old yet its content is pretty much timeless. The title might be a bit misleading about what it's really about. If you're interested in improving your people skills, how to make people want something you have to offer and how you can turn them over to your side, this book is for you. If you're running a business of any kind, this is a must read. The single most revealing book I've read in a while.

It turns out, people and how we interact have barely changed at all. Still so much to learn.

Predictably Irrational by Dan Ariely

A delightful and pretty revealing book about how irrational yet predictable human behaviour is. Driven by scientific experiments, this book is also rather revealing when it comes to marketing products, for example. I'd call this another must-read if you run a business of sorts or sell something for a living.

It Will Be Exilirating by Dan Provost

A very short but nice read about how Studio Neat, makers of the Glif and the Cosmonaut, came about. Talks a bit about successfully running a Kickstarter campaign, but also about running their small business in general. A few bits and pieces to pick up in this one. Most importantly, it's another inspiration to start something.

Happy reading!

Tags: reading, books

I've been on vacation in France for most of June, and that means lots of time to read. Originally I planned on reading more on distributed systems, but I had a decent backlog of books on my Kindle, so this was just the right time to plow through them. By the way, if you don't have a Kindle yet, you should get one. It's a great little device. I've been reading so much more since I got it. Anyhoo, here's the list of books I've been reading in June.

Java Concurrency in Practice by Brian Goetz. This is a classic on programming for concurrency in Java. While all the code examples are Java, they're just as easy to understand, and should be easily applicable to your programming language of choice. Given, of course, that there are libraries offering similar data structures.

The book goes through great length discussing what's wrong with just using threads and synchronizing access to data and how newer concurrent APIs in Java can help you avoid the hassle. It covers a mind-boggling number of details and data structures. Concurrent collections, designing thread-safe code, latches, barriers, queues, atomic data types, locks, semaphores, deadlocks, thread liveness, execution pools and so on. The part that really surprised me was the insight on the JVM's memory model, and why you need to protect data structures when it's shared across threads and multiple cores and processors. A must-read when it comes to programming for concurrency, and not just on the JVM. This book is a true gem.

Designing With Data by Brian Suda. A great, short introduction to visualizing data. The book is for everyone new to the area of graphing and exploring data. Don't expect a thorough introduction on statistics and everything around the numbers. The book focuses more on introducing the reader to the different types of graphs, why and when they work and also why some of them don't work.

Scalable Internet Architectures by Theo Schlossnagle. This book was written in 2007 and was way ahead of its time. Never mind the examples being mostly in Perl, this book covers all the little details on what it takes to build scalable web applications. Heck, it even shows you how you can build your own cross-vendor database replicator. A highly recommended read. It's right up there with Release It! by Micheal Nygard, which you should read too.

Small Is The New Big by Seth Godin. I gotta admit, I haven't read anything by Seth so far, but this was a great start. It's a collection of 183 posts from his blog, carefully selected to represent little stories on why big companies fail and how small companies can succeed. It's a great read, I'm amazed how well Seth can take small examples like chucking a large pile of jewel cases and extrapolate them into a big picture to examplify why the music industry is doomed. Looking forward to reading more of his books.

Drive: The Surprising Truth About What Motivates Us by Daniel Pink. The title says it all, the book explores, through scientific (but not at all boring) analysis, why money is not our sole motivator. We have an inner drive to expand our personal horizons, to master what we do every day and to work towards a purpose bigger than ourselves. Tom Preston-Werner (of GitHub) recommended the book at a conference, and you can see how it reflects the work culture at GitHub. Fits in very well with the aforementioned book.

Programming Concurrency on the JVM by Venkat Subramaniam. This book picks up where "Java Concurrency in Practice" left off. To recap things in terms of more traditional synchronization and concurrency APIs it builds on several simple examples that are being rebuilt constantly using new tools as the book progresses. The interesting bits are the part that covers software transactional memory and actors, both mostly focusing on Akka.

As the title suggests this book is very code-heavy, which sometimes, at least on the Kindle, is a bit unreadable. It takes you through all the details of using STM and actors, both in Java and Scala, but also with examples in Groovy, JRuby and Clojure. This is pretty neat, because you pick up some new things along the way. I'd wish for some more depth here and there but I feel much better informed on STM and actors after reading it.

Knack by Norm Brodsky and Bo Burlingham. A book focused around founding, running and growing a business, this one is full of stories from the author's experiences with his businesses, beginning as start-ups, growing into big yet still customer-focused and in their own right still small companies.

Added to the mix are stories from people and companies the Norm has advised over the years. You don't have to believe or take for granted everything he has to say and recommends doing or not doing, but this one is a great read either way, very much so because it is full of stories. If you read "Drive" and "Small Is The New Big", you'll find similar patterns occurring in all of them.

As days go by this book keeps coming back to me. Lots of little details that I want to apply to my own business practices. The more I think about it the more I think you should read this book.

Clojure Programming by Chas Emerick, Brian Carper and Christophe Grande. Clojure pushes all the right buttons for me as a language, and this book so far has helped me grasp more and more of it. While some of the code examples aren't very practical and introduce new concepts without discussing them here and there, the book is still a great introduction to the language. I just wish it wasn't > 600 pages, but still, lots of contents to plow through.

Pricing with Confidence by Reed Holden. I came across this book by way of Amy Hoy's blog posts on pricing. The book deserved an emergency spot on my reading list because it's very relevant for the product I'm currently working on. The book's focus is on basing the price of a product on its value to the customer. Granted, I just started reading it, but so far it reads well and the points make a lot of sense. If you're looking to dive deeper into pricing your products, there's also Don't Just Roll The Dice, whose PDF version is available as a free download.

Now go read!

Tags: reading, books

A couple of months ago I set out to write a book on NoSQL. It's about time I give an update on how it's been going, and when you can expect a book in your hands, or rather, on your screen.

After an initial burst of writing, I took somewhat of a break, so please excuse the delay in general. I spent the last weeks writing (a lot), and I'm currently trying to polish and finish up the existing content so that I can throw something out there for the world to peek at. Currently, the book covers MongoDB, Riak and Redis in varying detail, and I'm working to finish up loose ends to get into a good shape, before I'm starting work on more chapters.

A lot of people have asked me about pricing, distribution model, updates, and so on, so I'm following up with an FAQ section. In general, I'm as keen to get something out there as people have expressed their interest in reading it, believe me.

Turns out though: writing a book is hard. It takes a lot of work, a lot of discipline and creativity to come up with the right words and code examples. I'm not complaining, it's just something you don't realize from writing even slightly longer blog posts. It's still an incredible learning experience too, because I (and you) get to play with pretty much all of the features the databases covered have to offer.

So bear with me, I'm on it.

The book is not built around the idea that a big application is to be built with each database. I'm not a fan of that approach myself, as it makes it too easy to lose track of details. It's full of small examples, focused on specific features.

How many pages does it have?

As the book is still growing, and I'm still playing with layouting details, I can't give you an exact number, but the final book is probably going to have more than 200 pages.

What's the pricing going to be?

I haven't decided yet. It's not going to be in the single digits pricing range, and as the book is pretty dense with content, I don't want to undercharge. I'll keep you posted.

Will there be early access to the book?

Yes, there will be. You'll be able to buy the beta of the book for a reduced price, and follow the updates. Maybe even the commits on GitHub? I don't know. Let me know if that's something you're interested in.

Do you have some samples I can peek at?

Not yet. Layout is still far from final, but I'll throw something out as soon as an early access will be available.

What databases are being covered?

To reach my goal for a final release, I'm covering Redis, MongoDB, CouchDB, Riak, and Cassandra, all in varying detail. For some it makes more sense to go deeper than for others.

Are future updates included?

Yes, as content gets added, typos get fixed, and new databases pop up, I'll send updates to everyone buying the book. The updates are free. Consider buying the book a subscription for more chapters on other databases.

Are you extending the book with more databases over time?

Yes, I have an insatiable thirst to play with more databases, and I don't want to deprive you of experiencing that too.

Are you covering database SomeDB? I hear it's the next big thing!

For now, the list of databases is fixed. What's coming after that, on the other hand, is not. I'm open to suggestions, but I'd prefer some non-exotic over a very domain-specific database you wrote for a recent project. I'll set up some sort of voting when the final release is done.

What formats will be available?

I'm currently working on PDF and ePub, with Kindle to follow. Gotta have my priorities. A good-looking and readable PDF is my first priority, an ePub after that. Buying the book includes access to all formats.

Is there going to be a print edition?

Print is not a priority right now.

What are you using to write and generate the book?

The book is written in Markdown (I hate LaTeX), converted to HTML using Redcarpet, using Albino for syntax-highlighting, and converted to PDF using the awesome Prince XML library, I hope to eventually use DocRaptor to create the final result, as a Prince license is slightly out of budget, but DocRaptor is pretty affordable.

Where can I get updates on progress?

Mostly be following me or the handbook itself on Twitter.

Tags: nosql, books

There are some interesting books on Ruby and Rails related entering the fierce market, let's have a quick look.

The first worth mentioning is "Enterprise Recipes with Ruby and Rails" by Maik Schmidt, author of "Enterprise Integration with Ruby" (also highly recommended). Why should you read it? The book introduction answers that question short and painfully:

"Every web site project is really an enterprise integration project in disguise."

Though it's still in Beta it seems pretty complete already.

The next one is "Refactoring: Ruby Edition". It's not secret that Martin Fowler is a Ruby fan, so he teamed up with Jay Fields to bring the refactoring classic up to par, and port it to Ruby.

After "Design Patterns in Ruby" this is the next classic to be coming to Ruby. If you loved the original "Refactoring" book, this is a must. It's available as a Rough Cut, and is likely to come out in February.

Tags: books

Jenifer Altman did it. She finished the book for our Polaroid project. 25 Polaroid photographers from all over the world say farewell to a piece of photographic history. Here's a sneaky peek at the cover:

the book

The book is available for pre-order, and will ship in the first weeks of July. It's strictly limited to 500 copies, so get it while you can.

Did I mention I'm in it? I can't wait to hold it in my hands, and browse through all the photos.

If you're living in Berlin, there's currently an exhibition on Polaroids called "The Last Ten" at the Bongout showroom.


"Working Effectively With Legacy Code" by Michael C. Feathers starts off with a bang, and probably the best and shortest definition of legacy code: "Legacy code is simply code without tests." I couldn't agree more.

The book is for all of us who have to deal with all kinds of code that is tangled, caught in a web of endless dependencies, or methods and classes that are simply too long, and/or do too much. Of course, said code usually comes along without unit tests. Now there you are, having to add a new feature or fix a bug. Where do you start? What's that scary piece code over there doing? Why is it staring at you?

That's where this book comes in. It's split into three parts. The first will give a general introduction to the subject, introducing the mechanics of change, the need for testing, the seam model and the tools you need.

The second part is where the dirt is thrown right at you. In a style of "I need to do this" or "How can I do that?", this part will shock you to your very core. No, probably not, but it will give you a lot of good advise on how to deal with a particular legacy-type situation. This part is where the book really shines. The examples given might be simple sometimes compared to real-world legacy code, but they give you a very good idea how to handle a particular situation.

In the last part Michael lists techniques for breaking dependencies. I'm not sure if I'd recommend reading these before the second part, but you should be aware that all of these techniques are regularly referenced in the first parts of the book. So be prepared to skim to this part if you need to know what a particular technique is about.

Consider "Working Effectively With Legacy Code" a companion to "Refactoring" by Martin Fowler. And while Fowler's book taught you all about refactoring and the things you can do with it, this book will teach you how to put these things into practice, how to get code untangled, so that you can finally write tests for it, and add those new features.

This book will not solve all your problems, but it will give you an excellent head start, and guide you through the process of handling legacy code. I found this book to be of great value, and I couldn't believe it took me so long to finally read it. Michael Feathers' writing style is most excellent and thankfully, entertaining. Even if you're not having the pleasure of working with legacy code right now, the time will come. You'll be glad to have this book on your side.

Tags: books

There's a lot of complaining, especially from people coming to Ruby from the Java world, about the lack of a language specification. And while a lot of effort is put into the RubySpec project to at least have a test-driven specification, the written word has been silently ignored for a long time. At least in terms of information technology.

There used to be a book called "Ruby in a Nutshell", written by Matz himself, but it mainly dealt with Ruby 1.6, and is therefore seriously outdated.

David Flanagan (author of several great books on JavaScript and Java) set out to fix that problem. With the help of Matz he dove deep into Ruby and wrote what I can only describe as its only valid written language specification. The result is "The Ruby Programming Language".

The book doesn't take any unusual path when it comes to its structure. It deals with the basic structure of a Ruby program, datatypes and objects, expressions, operators, control flow, methods, procs, lambdas, classes, modules and finally, reflection and metaprogramming.

Whatever you consider part of the Ruby language, you'll be sure to find it in one of those chapters. David manages to get the whole of the language into a mere 300 pages. Both a testament to the compactness of Ruby and David's skill to explain each part as simple as possible.

You'd expect something like a language specification to be boring (if you don't, you obviously haven't read the Java Language Specification or The C++ Programming Language), but I'm happy to report that is not the case. While you shouldn't expect an entertaining read, you can expect to learn all the little details you somehow have not yet grokked about Ruby. The book finally opened my eyes on the difference of proc and lambda. The book ends with a discussion of the core classes of Ruby, including API changes between 1.8 and 1.9.

It is up-to-date with Ruby 1.8, and includes most of the features of Ruby 1.9 including of course, fibers.

My verdict is simple: If you work with Ruby, buy this book. It's pretty much the most complete book on Ruby you'll find. While "The Ruby Way" is an excellent reference "The Ruby Programming Language" is meant as a guide through the language. You can read it once, and get back to it when you need to. And seriously: You should read it. There's very likely some parts of Ruby you haven't worked with in all detail yet. This book does a good job in helping you uncover them.

Disclaimer: O'Reilly provided me with a copy of the book for reviewing purposes. My excitement about it is real.

Tags: books, ruby

I bought a nice stack of books recently, and I'm planning on buying some more. There's a lot of good stuff, not only new books, but also some older books (as in from 2004, I'm not talking about the C++ books on my shelf).

Currently reading:

On the stack (in no particular order):

Yet to arrive or to be bought:

Books I'm considering to buy:

  • xUnit Test Patterns. More than 800 on refactoring tests. The website already offers a lot of material, but also states that it might've been outdated by the book already.

There's also the occasional novel to be squeezed in. Oh well, lots of stuff to read I reckon. Thank goodness that the weekend is near. Time to read.

Tags: books, links

I've been a fan and user of continuous integration for quite a while now, yet I've been keen to pick up the book "Continuous Integration: Improving Software Quality and Reducing Risk" by Paul M. Duvall et. al. to see, if it can live up to be the first book dealing exclusively with the topic. They don't have to sell me on the idea anymore, but still, there's always something to learn.

The book is separated into two parts. The first one introduces the basic principles of continuous integration, and how it could/should work for you and your project. For me, this is the valuable part of the book. It introduces what CI can do for you, and the practices usually surrounding a project using CI are. If you didn't know that CI is more than just using CruiseControl or a similar CI server, I suggest you go out and pick up this book right away.

The second part describes five parts of a continuous integration system in detail. It deals with database integration, testing, inspection, deployment and feedback. A collection of recipes accompany each section to help you structure your project, code, configurations to make continuous integration a "non-event", as Martin Fowler put it.

Just as it should, the book emphasizes the importance of a good test suite to really find value in continuous integration. Without each other, continuous integration and testing can't unfold their full potential. The book is full of examples including configurations, code and build scripts, so you're not left standing in the rain, wondering how you can get that continuous integration magic to work for you.

Though I wouldn't say I'm the target audience for it, I still think there's a lot to learn from this book. Say, you just read Martin Fowler's original essay on the topic (which you should, anyway), and want to get more into detail, this book is for you. You'll find a good reference that'll help you introduce continuous integration into your project step by step.

The book focuses a lot on Java and its tools for examples, but you can easily apply the techniques in similar ways for, say Ruby/Rails projects or any other language. Database integration luckily is a topic you don't have to worry about that much in Rails projects.

It ends with a nice collection of tools that can be used for or with continuous integration, and an evaluation of CI servers and automated build tools.

My main gripe with this books is that when it comes to whys the book falls short from time to time. For someone who can make her own conclusions this shouldn't be a problem, but I think there would've been more in it. Two examples:

  • The book uses short dialogues to explain how a specific technique would work in a team, or how a line of reasoning could come about. In my opinion they're too short. What they want to emphasize could've just as well been written in a paragraph and would've had the same result. They're missing a bigger picture, and personally, I never had conversations like that.

  • The book states on two occasions that continuous integration should happen on the baseline of your project, and seems to imply that using it on branches is not a good idea. Why that is the case it doesn't explain. That the mainline is always the integration point of a project is pretty clear, but why that doesn't mean you can't integrate important branches remains unclear.

What struck me as odd was the constant mentioning of code inspection as part of continuous integration. I value code metrics for what they are (in fact, I used to be a big fan of them), and for what they can tell you about your code base, especially code coverage, but I have mixed feelings about including all of them in an integration build, because I have seen what time waster code metrics can be. But that might just be a matter of personal experience.

All that said, I still think this book is well worth the money, if you want to see what continuous integration can do for you and your project, and how you can apply the principles to your team. Paul M. Duvall did a great job compiling his experiences of applying and using continuous integrations, most of which I also had in one way or the other. In any way, I suggest reading Fowler's article firsthand, since it will give you a big picture about continuous integration, and then you can delve into the glory details with Duvall's book.

The book also has an accompanying website, where you can find a growing stack of videos explaining a lot of the principles of continuous integration in practice. If you're living in Germany, the book is currently on sale at Lehmanns.

Still a classic on the topic is Mike Clark's "Pragmatic Project Automation", one of the first books by the Pragmatic Programmers and, though slightly outdated, still a good reference. This book got me hooked onto the ideas of continuous integration and push-button builds in the first place.

The book market is being swamped with new books. It seems like every day I discover a new announcement for an upcoming book on Ruby or Rails. Let's see what's currently in stock, and what's waiting for us next year.

The first ones to start are, obviously, the Pragmatic Programmers.

Apparently some of the authors of RSpec are also writing a book about Behavior-Driven Development for them.

Apress quickly became big on the Ruby/Rails bandwagon, and speaking of RSpec, they also have a book on it due in February, though it's not officially in their catalogue yet.

Just recently they put out several books:

  • Pro Active Record. I'm still wondering how it's possible to write an entire book on Active Record, but apparently it's possible.

  • Practical JRuby on Rails Web 2.0 Projects. I don't fancy the title, but I ordered this book anyway, since it's pretty much the only one on the topic of JRuby.

  • Practical Rails Projects. Shows different aspects of Rails by using them in very different project. A nice approach compared to just developing one or two applications over the course of a book.

Upcoming books from Apress:

O'Reilly already put out their share of Ruby and Rails books, but right now the queue looks rather slim.

  • Advanced Rails. Seems to cover several topics of Rails that are, well, advanced, covering topics like Meta Programming, REST, developing plug-ins, etc.

  • The Ruby Programming Language. Mats itself is writing this one together with David Flanagan (who wrote a lot of books on JavaScript). I'm not sure if it can replace the PickAxe as the most valuable Ruby book for me, but that might just be for strictly melancholic reasons, what with it being my first Ruby book.

Manning has only put out one book on Rails yet, the excellent "Ruby for Rails" by David Black. But they have some interesting stuff in the queue for 2008.

  • Ruby in Practice. This could become the mother of books on advanced Ruby topics. The topics include testing, integration, indexing, asychronous messaging and much more.

  • Flexible Rails. I can't say much on that topic, but maybe this book will change that. Flex and Rails. Nuff said.

Addison-Wesley recently released kind of the companion book to "The Ruby Way", a most excellent book.

  • The Rails Way. Just been released, covers a lot of Rails grounds, from basic to advanced. Should make for a nice desktop reference.

  • Design Patterns in Ruby. Though I have mixed feelings about design patterns and their overuse in the Java world, it should be interesting to read about how they can be useful in the Ruby world.

There, lots of new stuff to read for the new year. I'm sure there's more to come, as it naturally happens with a technology on the rise. The downside is that the quality of the books becomes more and more average over time, but there's a lot of talented people writing on these, so hopefully the Ruby/Rails book market will see more and more great books coming out in the near future.

Tags: books, rails, ruby