“Ultimately, the value of planning isn’t that you execute the plan perfectly, that you catch every detail beforehand, or that you predict the future; it’s that you enforce the self-discipline to think about the project in some depth before diving in and seeing what happens. A degree of forethought, in places where you can reasonably make predictions and plans, is the goal. The plan itself, however accurate it turns out, is less important than spending time on the act of planning.”

做计划本身是一件很有意义的事,并不是要所有进度都完全符合计划,因为现实本身就会有很多一开始考虑不到的因素出现,不断对现有的计划调整,就像不断根据交通状况,地图软件会更新最佳路径一样。和导航不同的事,一般来说导航不太会改目的地,而计划是有可能改目标的。

“We think our management “gets” what we do as technologists. Just “read the code, man!” The software we live and breathe every day ought to seem obvious to anyone working in technology, right? But it is not. Technology managers hire the best people (hopefully), who solve very difficult problems. But they don’t “get” it all. I’ve always been surprised how grateful senior technical managers have been when I can explain some very basic modern ideas (e.g., what’s this NoSQL stuff all about, and why should I care?) to them in a nonthreatening and noncondescending way. Recently, a senior business manager at work asked me privately about why it was important for us to migrate our traditional deployed fat-client architecture to a hosted platform. He was under a lot of internal pressure to fund this effort, but he hadn’t a clue why this was necessary. He was also probably too embarrassed to ask publicly. I spent two very fruitful hours explaining (without PowerPoint!). I never hesitate nowadays to take the opportunity to explain basics and motivation to senior or junior members. It educates them without making them feel small, they learn to trust my judgment and advice, and we bring about change. Taking the time to explain is very important.”

不要自己觉得很基础的东西就假设别人也知道。把这些基础、上下文、内在驱动力一一解释给想了解的人听,是一个非常重要的能力。尤其是要推一个比较重要的项目,越多的人理解项目的原因,需求,能达到的效果,那越容易推动这个项目。

“Project management is the act of breaking a complex end goal down into smaller pieces, putting those pieces in roughly the most effective order they should be done, identifying which pieces can be done in parallel and which must be done in sequence, and attempting to tease out the unknowns of the project that may cause it to slow down or fail completely. You are addressing uncertainty, trying to find the unknowns, and recognizing that you are going to make mistakes in the process and miss some unknowns despite your best efforts.”

这段话聊了项目管理是什么,也呼应了做计划的那一段。把一个不明确的项目拆解成可执行的任务,并判断任务之间的相互依赖,发现一些可能存在的威胁。并在整个项目执行的过程中承认一开始计划的局限性,并及时调整。