一年看五十本书

去年年底的时候给自己定了一个2014年的目标:一年看五十本书。

当时订这个目标的时候参考了自己在大学本科时候的阅读量。大四毕业的时候在图书馆退借书证的时候我数过一下,大学三年半,差不多从学校图书馆借了两百本书的样子。去掉其中一小部分的专业书(我很少借专业书......),加上从宿舍里其他人那里蹭着看的,加上从上海图书馆借的一些,基本上是每周一到两本的样子。现在的空闲时间不比当年大学里的时候,所以就暂且按照一周一本的量来订目标吧。

现在差不多四分之一的时间过掉了,目标完成了一半:已经看了26本书了。除了其中的三本英文书,剩下的都是在Kindle上看的。Kindle真的好方便,出去的时候也不用在行李箱里塞厚厚的书,又重又占地方。要是没有Kindle,去年去意大利的时候怎么可能把七本《明朝那点事儿》和四本《绝代双骄》都给看了。

有人问我怎么能看这么多书。其实主要原因有两个。第一,我看书快。最快的时候是在大学里的时候,有些书(比如《围城》)一个小时可以看一百页左右。第二,有了Kindle,各种碎片时间都能利用起来了:坐在车里等小胖子睡醒的时候,晚上看着小胖子洗澡的时候,陪小胖子睡觉的时候,周末出去朱苹果开车的时候,还有去dealer给车子做oil change的时候。从amazon.cn买中文版的电子书也挺方便的,而且价格也很便宜,便宜得让人觉得没有必要费尽心机搞免费版的了。

我看的这些书统统都是non-fiction(非小说类)。我倒是想看《冰与火之歌》来着,但是amazon.cn没有中文版的。英文版的就算了,看着还是累。等到现在买了的那些看得差不多了,倒可以把莫言的搞来看两本。其他的fiction就算了,我不喜欢看fiction,对编出来的故事兴趣不大。主要还是看一些文史哲、经济、名人传记之类的。

今年到目前为止看过的书:



富兰克林自传


NoSQL Distilled


I. M. Wright's "Hard Code"


一头猪在普罗旺斯


旧制度与大革命


山河岁月


经典普洱


拾年


中国的经济制度


民国的角落


一个:很高兴见到你


战国日本


江村经济


墙·呼啸


哲学家们都干了些什么?


美国种族简史


给理想一点时间3


货币的教训


工作颂歌


我们的国家公园


Longitude


你一定爱读的极简欧洲史


两宋文化史


一网打尽


美国最高法院通识读本


青春

Firefighting vs. Fire Prevention

One of my team members shared this article with me: Treat bugs as fires. The author said,

"There are software devs who follow a different approach. They focus on fire prevention, not fire cure. Sure, they have to put out fires. But they use each fire as an opportunity to learn how to prevent fires, and then they build new parts of the city in a way that prevents the fires they have seen. Over time, these teams live in cities that don’t burn down. They go weeks and months between alarms going off. They rarely even have building code violations (risks found by QA or build verification tools)."

There are very few number of such teams. It's because balancing between firefighting vs. fire prevention is hard:

1. Firefighting is heroic and many managements reward such heroic behavior. If they don’t do so, there will be no fire fighters. The dilemma is: then, preventing fire is less rewarded than firefighting and it’s human nature to go after bigger rewards. So fewer people will do fire prevention and more people will do firefighting.

2. Few people stay in the same place long enough to start to harvest from their investments in fire prevention. To optimize for the outcome in 18 months, I would rather to cut a lot corners in order to ship a lot of shining features, get a promotion, and move on. The corner-cutting will hurt us after 2-3 years, but why would I care if I am not here anymore?

Both need to be address by the managements:

For (1), the managements have to first be conscious about how he/she is rewarding firefighting vs. fire prevention. Then find out a balanced way to encourage fire prevention while keep firefighters a desired job.

For (2), attrition is natural, but the managements can keep people stay a bit longer and can make ownership stable. It also depends on the management’s judgment. Management needs to point it out when people cut corner and punish people if it's too much.

That’s why the management is so critical (especially the first line as well as middle management). If the management fails to steer the team toward the right balance between firefighting vs. fire prevention, or the management themselves only plan to be here for 18 months, the team/product has little chance to thrive.

Where we are in the history of software

I have been always thinking that we are very early in the history of software. Using timepiece as a metaphor:

  • The software in the 50’s and 60’s were like the sundial.
  • The software in the 80’s are like the clock made in 16th century: need to be wound daily, and off by a couple minutes daily.
  • The software today are somewhat like the first generation of pocket watch, such as those made by John Harrison: they are pretty sophisticated and works really well, but each of them took John a dozen years to make.

Today there are very few number of watches are handmade. Most of them are hand-assembled, or purely machine made. When we look at the craftsmanship a few centuries ago, we don’t think their techniques are too impressive. A teenage today probably knows everything that the greatest mathematics and physicists knows in the 17-18th century. I believe, in maybe 50 years from now, when people look back at us and how we make software today, they will have similar feeling.

Today, all software are handmade. It has been talked for a decade or two about producing software in the way how today’s plants produce cars. But I believe there will be another several decades when that become true. By the time we retire, I believe most of the software will be written by software. There will be very few of software engineers at that moment. Their main job is to write the “seed” software or component, to kick-start the whole software-writing-software chain. When software is written by software, bugs will be like the fires.