人月神话(The Mythical Man-Month)这本书,历久弥新,值得反复阅读。十多年来,书中的许多理念,像影子一样,须臾不离,一直影响我。
今天在交流时又提到几点,列举如下:
构思、实现和交流
Dorothy Sayers在她的“The Mind of the Maker”一书中,将创造性活动分为三个阶段:构思、实现和交流(the idea, the implementation, and the interaction)。
实际上,产品的开发就是这么一个过程,首先进行构思、设计,然后开发实现,测试发布后交付用户使用,和用户互动,在不断的迭代中提升产品和服务质量。
摘自:“乐观主义”一节。
复杂性
作者在谈到如何应对复杂性,塑造抽象概念结构时,建议:
- Exploiting the mass market to avoid constructing what can be bought.
- Using rapid prototyping as part of a planned iteration in establishing software requirements.
- Growing software organically, adding more and more function to systems as they are run, used, and tested.
- Identifying and developing the great conceptual designers of the rising generation.
简单理解就是:
- 市场上有的,我们就不构建了(筛选、使用第三方库、组件是一种本领)
- 通过快速原型,不断迭代,来建立软件需求。需求本身是在迭代中探索和精化出来的。
- 像有机体一样,软件是在不断的运行、使用和测试的迭代过程中成长起来的。
- 在新一代的年轻人中,要识别和培养杰出的概念设计师。
write -> build -> grow - evolve
软件是成长起来的,而不是构建出来的。
Incremental development—grow, not build, software.
I still remember the jolt I felt in 1958 when I first heard a friend talk about building a program, as opposed to writing one.
In a flash he broadened my whole view of the software process.
The metaphor shift was powerful, and accurate.
Today we understand how like other building processes the construction of software is, and we freely use other elements of the metaphor, such as specifications, assembly of components, and scaffolding.
- Evolve 进化?
没有银弹?
there is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.
摘自:“没有银弹-软件工程中的根本和次要问题”一节(No Silver Bullet – Essence and Accident in Software Engineering)
poor design -> good design -> great design
低劣设计,良好设计,卓越设计。
Great designs come from great designers.
Software construction is a creative process.
Sound methodology can empower and liberate the creative mind; it cannot enflame or inspire the drudge.The differences are not minor—it is rather like Salieri and Mozart, Study after study shows that the very best designers produce structures that are faster, smaller, simpler, cleaner, and produced with less effort. The differences between the great and the average approach an order of magnitude.
伟大的设计师是极少的,他们是天才,普通人可能修炼一辈子也赶不上,但是我们可以摆脱平庸,做到优秀。
创造力来自于人
creativity comes from individuals and not from structures or processes, then a central question facing the software manager is how to design structure and process so as to enhance, rather than inhibit, creativity and initiative.
创造力来自于人,而不是组织结构或者开发过程,那么软件管理面对的核心问题是如何设计结构和过程,以促进而不是压制创造力和主动性。