软件工艺 Software Craftsmanship

>>>  讀書—連接古今充實信仰  >>> 簡體     傳統

软件工艺 Software Craftsmanship [美] Pete McBreen着 熊节译


如果某个导演在一部电影中看到或听到什么喜欢的东西,他总能够很容易地找到它的创造者。

将失去已久的职业荣誉感重新带回软件开发行业。

工艺学力图在人、机器和知识之间找到微妙的平衡,从而创造有用的产品,这正是工艺学的目标所在——全面而深入地掌握科学和工程学,从而不断地以工艺进行精炼。

“建立良好声望还有另一方面的含义:软件工匠应该花一些时间来考察他的客户。”

很明显,在大多数项目中,这种控制权的转移一般都是要大张旗鼓地宣布的。

在现代软件企业的管理中,指挥已经不再适用,交流才是有效的方法。

激情洋溢的年轻人与见识广博的老手之间的交流迸出了炫目的火花。

软件工艺拒绝软件工程犟加给开发者的这些精细的角色分工,而是颂扬能够从头到尾完成工作的工匠。

“技师”在英语中的单词汇是“journeyman”,这个由“journey(旅行)”衍生而来的词形象地描绘出了他们周游四海学习技术的生活方式。

软件工艺认为软件开发者应该是“经验丰富的专业人士”,他们会提出很多问题,然后把用户真正需要的东西(而不是用户要求的东西)交给用户。

建立这样的声望需要相当长的时间,但这是值得的,因为软件工匠开发的应用程序将历久弥新。

“掌握”意味着承担起传递工艺的责任。

学徒模式小心地避免了学校模式中常出现的“习惯性失助”的心态。

没有反馈的实践只会强化错误。

在一个软件工艺团队中,凡是工艺学的文化和规范,对背景知识的深刻理解。

将软件工程的实践缩小规模以应对小型项目中的问题,就跟将软件工艺的实践放大规模一样困难,这两种做法都是不恰当的。

人们内心深处依然坚信:哪怕是司空见惯的日常用品,也只有工艺大师才能做出精品。

软件开发不仅仅是一项技术工作,同时也是一项人文工作。

理解软件开发与学业相关,一定技术实力基础上良好的企业人际。

对于绝大多数项目,人的天赋比使用过程更重要。

软件工艺带来了另一种隐喻:拥有技术的软件开发者抱定决心要掌握自己所从事的工艺,对自己的蔻成果负责并以之为荣。

现在,软件工艺将把软件开发过程中的乐趣和激动重新还给软件开发者。

编程是一门手艺。

自动化构建还是来自一张安全网:每当项目的核心源码被修改时,整个应用程序就会被重新构建,随后自动运行回归测试,以确保这些修改没有造成任何破坏。

从用户群提取需求,学习发布一个系统所必须的实用主义的思维方式,项目结束后使系统继续发展的后续工作。

那些认证组织,暗示“通过考试就意味着你是一个优秀的开发者,那就完全是在混淆视听。”并不证明这个人拥有开发能力,仅证明他学会了如何通过考试。

如果想在科技领域获得成功,就必须把事实摆在公共关系之前,因为自然是无法愚弄的。

敏捷联盟:www.agilealliance.org

真正可复用的组件也是存在的,但它们不是项目内部开发的组件。

软件工程的另一个贻害是:它把文档搞得声名狼籍。

很多时候,最佳实践存在的意义只是让员工固守本分,不致越雷池半步。

使用渐进过程时,在开发过程中的系个阶段,总有可运行的系统。我发现在4个月的时间里,开发团队所能培育(grow)的系统比起他们所能搭建(build)的要复杂得多。

如果你看到小型团队在实施瀑布过程时陷入“分析瘫痪”(analysis paralysis)一点都不用感到惊讶。

软件开发者不但要博问强记,而且要善于遗忘。

遗忘是开发最重要的能力,因为它是不断学习的关键。

让你最好的开发着组织一次技术研讨会,向团队的其他成员传授立竿见影的技术。

讲座也使得开发者更有功力深入研究自己感兴趣的技术,因为没有人愿意在知之未深的时候就走上讲台。

开发部门的所有人(包括管理者)都应该参与到学习时间中,因为“对学习的态度”是软件工艺与软件工程最大的差异。如果包括管理者在内的所有人都参与,就能向整个企业发出一个强有力的信号:企业领导层向开发者作出了承诺,允许他们努力学习以掌握软件开发的技艺。
 


Pete McBreen着 熊节译 2011-02-22 19:24:20

[新一篇] 《行者無疆》精彩句子摘選

[舊一篇] 《軟件觀念革命》句摘
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表