书中用到的语言:JAVA, C++,UML
(摘要):
Human interactions are complicated and never very crisp and clean in their effects, but they matter more than any other aspect of the work.
人与人之间的交互是复杂的,并且其效果从来都难以预期,但是它们却是工作中最为重要的方面。
Tom DeMarco and Timothy Lister, Peopleware
Tom DeMarco 和 Timothy Lister,《人件》
Principles, patterns, and practices are important, but it's the people who make them work. As Alistair Cockburn says: "[s:9]rocess and technology are a second-order effect on the outcome of a project. The first-order effect is the people."[1]
原则(principle)、模式(pattern)和实践(practice)都是重要的,但是使它们发挥作用的是人。正如 Alistair Cockburn 所说的:“过程和技术对于项目的结果只有次要的影响。首要的影响是人。”[1]
[1] Private communication
[1] 他在与我私人交流中如是说。
We cannot manage teams of programmers as if they were systems made up of components driven by a process. To use Alistair Cockburn's phrase, people are not "plug-replaceable programming units." If our projects are to succeed, we are going to have to build collaborative and self-organizing teams.
如果把程序员团队看作是由过程驱协的组件(component)所组成的系统,那么就无法对他们进行管理。用 Alistair Cockburn 的话来说,人不是“插入即兼容的编程装置。”如果想要项目了得成功,我们就必须构建起具有合作精神的、自组织(self-organizing)的团队。
Those companies that encourage the formation of such teams will have a huge competitive advantage over those that hold the view that a software development organization is nothing more than a pile of twisty little people all alike. A gelled software team is the most powerful software development force there is.
鼓励构建这种团队的公司比认为软件开发组织不过是由无关紧要的、雷同的一群人堆砌起来的公司更具竞争优势。凝聚在一起的软件团队是最强大的软件开发力量。
If agility is about building software in tiny increments, how can you ever design the software? How can you take the time to ensure that the software has a good structure that is flexible, maintainable, and reusable? If you build in tiny increments, aren't you really setting the stage for lots of scrap and rework in the name of refactoring? Aren't you going to miss the big picture?
如果敏捷是指以微小增量的方式构建软件,那么究竟如何设计软件呢?又如何保证软件具有灵活、可维护以及可重用的良好结构呢?如果以微小增量的方式构建软件,难道不是打着重构的旗号,而实际上却导致了许多无用的代码碎片和返工吗?难道不会忽视全局视图吗?
In an agile team, the big picture evolves along with the software. With each iteration, the team improves the design of the system so that it is as good as it can be for the system as it is now. The team does not spend very much time looking ahead to future requirements and needs. Nor does it try to build in today the infrastructure to support the features that may be needed tomorrow. Rather, the team focuses on the current structure of the system, making it as good as it can be.
在敏捷团队中,全局视图和软件一起演化。在每次迭代中,团队改进系统设计,使设计尽可能适合于当前系统。团队不会花费许多时间去预测未来的需求和需要,也不会试图在今天就构建一些基础设施去支撑那些他们认为明天才会需要的特性。他们更愿意关注当前的系统结构,并使它尽可能地好。
This is not an abandonment of architecture and design. Rather, it is a way to incrementally evolve the most appropriate architecture and design for the system. It is also a way to keep that design and architecture appropriate as the system grows and evolves over time. Agile development makes the process of design and architecture continous.
这种做法并不是要放弃构架或者设计,而是一种增量地演化出系统最佳构架和设计的方式。同样也是一种保持设计和构架一直适合于不断增长和演化的系统的方式。在敏捷开发中,设计和构架的过程是持续不断的。
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
11次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
15次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
616.07KB
RAR
22次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
17次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
28次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
11次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
22次下载
Prentice.Hall.PTR.Agile.Principles.Patterns.and.Practices.in.C.Sharp.Jul.2006.rar
1.00MB
RAR
33次下载
200字以内,仅用于支线交流,主线讨论请采用回复功能。