软件工艺:英文版

软件工艺:英文版
作 者: Pete McBreen
出版社: 人民邮电出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《软件工艺:英文版》作者简介

内容简介

《软件工艺》向我们展现了另一种选择——关注“从事商用软件开发的人”的工艺学模型。本书告诉读者:技术人员迫切需要转变观念,技术不仅仅是技术本身,更应该是为客户提供价值的基础。如何培养程序员对技术的精通?如何发展小型开发团队中创造性的协作?如何加强与客户的的沟通?本书作者给了我们一种方法,它将造就技艺精湛的开发者,他们能创造坚固耐用的应用程序,并不断扩展、升级它们。本书针对软件开发,提出了一些相当棘手和敏感的问题,并给出了颇具争议性的结论:从一个数百年来一直兴旺发达的系统——工艺学中获得启示,寻找答案。本书通过5个部分,19章的篇幅系统地阐述作者的观点,并试图回答一直困扰着软件行业的难题——我们应该如何重组软件构造的过程,使其能够如我们所愿地有效运转?第1部分共4章,对传统的观点提出质疑——软件工程真的是解决软件开发问题的灵丹妙药吗?第2部分共2章,这一部分提出了本书的观点,即以软件工艺的视角看待软件开发。第3部分以7章的篇幅,不同的角度全面地展现了软件工艺理论所带来的主要变化,以及如何实践这个观念。第4部分共3章,对比了软件工?沼肴砑こ蹋⑽髯允视玫姆冻胫匦禄私缦蕖5?5部分共3章,分别讨论软件开发中的权宜之计和长期问题。本书荣获2002年度Jolt图书大奖,阅读本书,有助于引发读者在软件开发问题上的独立思考,本书适合软件行业的所有从业人员阅读参考。

图书目录

Preface to Chinese Reader

Foreword

Preface

Part I Questioning Software Engineering

1 Understanding Software Engineering

The Paradox of Software Engineering

The Modem Definition of Software Engineering

Is Software Engineering a Good Choice for Your Project?

2 The Problems with Software Engineering

Can Software Development Be Made Systematic

and Quantified?

The Hazards of the Good Enough Software Approach

What Is the Alternative to Software Engineering?

3 Understanding Software Development

Software as Capital

Does the Division of Labor Work for Software

Development?

One Size Does Not Fit All

Finding a More Applicable Metaphor Than

Software Engineering

4 Finding a Better Metaphor Than Software

Engineering

The Craft of Software Development

Parallels with Traditional Craftsmanship

The Resurgence of the Craft of Software Development

Part 2 Software Craftsmanship

5 Putting People Back into Software Development

Craftsmanship Is About Getting Better at Software

Development

Craftsmanship Encourages Developers to Write Great

Software

A Call to Arms

6 Craftsmanship Is the Opposite of Licensing

Craftsmanship Is Personal

Licensing Is an Illusion

Craftsmanship Focuses on the Individual

Part 3 Implications of Software Craftsmanship

7 How Craftsmanship Affects the Users of Systems

Software Craftsmanship Works Because Software Is

Easy to Copy

Craftsmen Have a Different Relationship with Their Users

Great Software Deserves to Be Signed

Craftsmen Need Demanding Users

Software Craftsmanship Leads to Collaborative

Development

8 Customers Have a Different Relationship

with Craftsmen

Setting Realistic Delivery Dates

Exposing the Fallacy of Good Enough Software

Allowing Software Craftsmen to Take Credit for Their Work

Start Exploiting the Difference in Productivity Between

Developers

But How Do We Know How Good a Developer Really Is?

Customers Make a Cost/Quality Trade-offWhen

Choosing Craftsmen

Customers Have Long Term Relationships with

Software Craftsmen

Customer Interests Are Aligned with the Interests of

Software Craftsmen

9 Managing Craftsmen

Software Craftsmen Are Not Hired Hands

Good Developers Are More Valuable Than Their Managers

Software Craftsmen Have a Different Relationship with

Their Managers

Managing Great Developers Is a Pleasure and a Privilege

Software Craftsmen Like Creating Applications

Managing Software Craftsmen Is Different

Software Craftsmen Push for What They Need

10 Becoming a Software Craftsman

Software Craftsmanship Is a Rejection of Narrow

Specialization

Craftsmanship Requires Dedication

How Does a Person Become a Software Craftsman?

The Craft Tradition Has Endured for Centuries

11 Mastering the Craft

What Does a Master Software Craftsman Look Like?

Use Your Old-timers

Mastery Implies the Use of Stable Technologies

Developing Mastery Takes Time

Mastery Implies Taking Responsibility for Passing on

the Craft

12 Apprentice Developers

We Must Reverse the Decline in the Quality of Developer

Training

Becoming an Apprentice Is a Significant Step

Apprenticeship Instills Lifelong Learning

The Role of Apprentices

An Apprentice.ship Is a Significant Investment of Time

and Energy

13 Journeymen Developers

Where Journeymen Fit in the Craft Tradition

Journeymen Developers

Journeymen Are Focused on Delivering Applications

Journeymen Play a Key Role in Software Craftsmanship

Part 4 Repositioning Software Engineering

14 Software Engineering Projects

Software Engineering Is Designed for Large Systems

Projects

Software Engineering Projects Are Diverse and Varied

15 Hazards of the Software Engineering Metaphor

You Cannot Do Software Engineering on a Low Budget

Software Engineering Encourages Scientific Management

Software Factories: The Production Line for Software

Reuse over Time Is Hazardous

The Myth of the Standardized Software Development

Process

Software Engineering Forces Us to Forget the Individual

We Need More Variety in Our Development Processes,

Not Less

16 Learning from Software Engineering

Size and Complexity Matter

Applications Need to Be Well Structured

Change Can Be Expensive Unless You Allow for It

Communication Inside the Team and with Users Is Crucial

Producing Accurate Estimates Is Very Expensive

Part 5 What to Do on Monday Morning

17 Experience--The Best Indicator of Project Success

Choose Software Craftsmen Based on Their Reputations

Evaluate Craftsmen Based on Their Reputations

and Portfolio

Auditioning a Software Craftsman

Let Your Software Craftsman Pick the Rest of the

Development Team

Collaborative Development

Avoid Bleeding-Edge Technology If At All Possible

Paying for Experience

Be Prepared to Be Amazed

18 Design for Testing and Maintenance

Think Applications, Not Projects

Maintenance Teams Should Refuse to Accept Bad

Applications

Design for Maintenance

Software Craftsmen Prefer Nonproprietary, Open

Source Tools

Great Software Is Global

Software Craftsmen Need to Fight Back Against

Planned Obsolescence

Great Software Needs to Be Given a Great User Interface

Maintainable Software Is Easy to Diagnose

The Hazards of Outsourcing

You Can Still Use Outside Craftsmen to Create Your

Application

Maintenance Is the Most Important' Part of the Life of

Any Application

Not All Software Has to Be Maintainable

Design for Testing and Maintenance Is Not Rocket Science

19 Perpetual Learning

Creating a Learning Environment

Mastering the Craft of Software Development

Choose Training Courses Very Carefully

Encourage Your People to Be Visible in the Software

Development Community

Becoming a Reflective Practitioner

Epilogue

Acknowledgments

Index