軟件是成長起來的,而不是構(gòu)建出來的

人月神話(The Mythical Man-Month)這本書,歷久彌新,值得反復(fù)閱讀。十多年來,書中的許多理念,像影子一樣,須臾不離,一直影響我。

今天在交流時又提到幾點(diǎn),列舉如下:

構(gòu)思、實(shí)現(xiàn)和交流

Dorothy Sayers在她的“The Mind of the Maker”一書中,將創(chuàng)造性活動分為三個階段:構(gòu)思、實(shí)現(xiàn)和交流(the idea, the implementation, and the interaction)。

實(shí)際上,產(chǎn)品的開發(fā)就是這么一個過程,首先進(jìn)行構(gòu)思、設(shè)計,然后開發(fā)實(shí)現(xiàn),測試發(fā)布后交付用戶使用,和用戶互動,在不斷的迭代中提升產(chǎn)品和服務(wù)質(zhì)量。
摘自:“樂觀主義”一節(jié)。

復(fù)雜性

作者在談到如何應(yīng)對復(fù)雜性,塑造抽象概念結(jié)構(gòu)時,建議:

  • 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.

簡單理解就是:

  • 市場上有的,我們就不構(gòu)建了(篩選、使用第三方庫、組件是一種本領(lǐng))
  • 通過快速原型,不斷迭代,來建立軟件需求。需求本身是在迭代中探索和精化出來的。
  • 像有機(jī)體一樣,軟件是在不斷的運(yùn)行、使用和測試的迭代過程中成長起來的。
  • 在新一代的年輕人中,要識別和培養(yǎng)杰出的概念設(shè)計師。

write -> build -> grow - evolve

軟件是成長起來的,而不是構(gòu)建出來的。

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 進(jìn)化?

沒有銀彈?

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.

摘自:“沒有銀彈-軟件工程中的根本和次要問題”一節(jié)(No Silver Bullet – Essence and Accident in Software Engineering)

poor design -> good design -> great design

低劣設(shè)計,良好設(shè)計,卓越設(shè)計。

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.

偉大的設(shè)計師是極少的,他們是天才,普通人可能修煉一輩子也趕不上,但是我們可以擺脫平庸,做到優(yōu)秀。

創(chuàng)造力來自于人

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.

創(chuàng)造力來自于人,而不是組織結(jié)構(gòu)或者開發(fā)過程,那么軟件管理面對的核心問題是如何設(shè)計結(jié)構(gòu)和過程,以促進(jìn)而不是壓制創(chuàng)造力和主動性。

人月神話的作者:Frederick Phillips Brooks, Jr.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容