Showing posts with label Book. Show all posts
Showing posts with label Book. Show all posts

Saturday, May 10, 2008

Book - Release It!: Design and Deploy Production-Ready Software

I came across the book from the announcement of 2008 Jolt Productivity Award. This book talks about what could go wrong (antipatterns) once a system go into production and what we could do about it (patterns). The focus of the book is not about what's in the spec but about what's not in the spec. There are 4 parts in the book, stability, capacipity, general design issues and operations. I listed below several points which impressed me most.

  • Timeout - "Any resource pool that blocks threads must have a
    timeout to ensure threads are eventually unblocked whether resources become available or not
    ".
  • Conway's law - "Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations." It's communication structure that matters, not hierarchical structure.
  • Multiplier effect - For a webpage containing only 40kb of useless data, if that page is hit 1000 times a day, it means 40mb of bandwidth is wasted per day.
  • Multihomed Servers - Server sockets of an application should bind to the networks they listen to. For a server socket handling administrative requests, it should bind to the administration network, not backup network or production network.
  • Protocol Versioning - No matter what protocol systems use to interact, it will change. So having the version be part of the message exchange will help ease the chage of protocols.

Tuesday, August 14, 2007

"Why Not?" Book Review


I finished the book over the weekend. Compared with other creativity books I've read, this one has many examples in the public sector, like how to be innovative in the legislation or in managing a library. The authors propose 2 sets of tools for generating ideas.
  • Thinking outside the box
    1. What would Croesus do? - Assumed you have unlimited resources, what would you do?
    2. Why don't you feel my pain? - Internalize the external effects in problem solving.
    3. Where else would it work? - Apply solutions in one context to other contexts.
    4. Would flipping it work? - Look for symmetry and/or asymmetry in the problems.
  • Thinking inside the box - Identify the boundary of the box, that is, look for principles or properties of problems or solutions as guides while searching for the solutions.
Another area which differentiates the book from other creativity books I've read is the emphasis on implementation. The authors talked about how to pitch ideas in the last chapter. However, not every new idea can create new business. So following the spirit of open-source movement in the software industry, the authors built a website for readers to share ideas. Publishing your ideas might bring in big rewards as people might ask you to help them implement your ideas.