Book Review: Books: Small Things Considered: Why There Is No Perfect Design: "Design can be easy and difficult at the same time, but in the end, it is mostly difficult.' So writes engineering professor Petroski (The Evolution of Useful Things, etc.) in his latest effort, a wide-ranging exploration of the history and design of the everyday technologies like supermarket aisles and telephone keypads that are practically invisible in their ubiquity. Petroski emphasizes that these 'small things' aren't in fact the results of a smooth and simple design process, but are rather the products of a constellation of oft-conflicting constraints, frequently with unintended consequences (consider the recently redesigned, fat-handled toothbrushes that, while more ergonomic, have rendered millions of traditional toothbrush holders useless). The book meanders through this world of design, less concerned with making a direct argument than with reveling in the complexities of the ever-changing design of everyday things, such as Brita water pitchers and freeway tollbooths. The writing is engaging and approachable, and reading the book feels like sitting down for a long chat with that favorite uncle who seems to know a bit about everything and never hesitates to throw in his own take on matters. Petroski's histories of, among others, paper cups and duct tape are fascinating, and this book leaves us a little more conscious of the never-ending design process of our modern world"
What makes programming so difficult - and can we make it easier? By Karsten Wagner I read this great article by Karsten Wagner and couldn't stop myself from reproducing it here... I often thought about the reasons why programming seems to be so difficult and also so different to many other professions. And to what degree it's possible to simplify and quicken the process. Inspired by this blog post , I want to share my view of the topic here. What's the 'process' behind programming? How do we do it? I think that we can break down the process of programming info three steps: Step 1: Analyse the problem you want to write a program for and create a model of the problem which can be implemented as a program. This step has do be done no matter which programming language you use for implementation. It requires both domain specific knowledge as implementation specific knowledge. It also requires knowledge how people interact with computers, about which things are solvable ...
Comments