Software Craftsmanship: The New Imperative (Paperback)
- 出版商: Addison Wesley
- 出版日期: 2001-08-23
- 售價: $1,100
- 貴賓價: 9.5 折 $1,045
- 語言: 英文
- 頁數: 208
- 裝訂: Paperback
- ISBN: 0201733862
- ISBN-13: 9780201733860
$1,260A Practical Guide to Testing Object-Oriented Software (Paperback)
$299Enterprise JavaBeans, 4/e (Paperback)
Table of Contents
I. QUESTIONING SOFTWARE ENGINEERING.
1. Understanding Software Engineering.
The Modern Definition of Software Engineering.
Is Software Engineering a Good Choice for Your Project?
2. The Problems with Software Engineering.
The Hazards of the Good Enough Software Approach.
What Is the Alternative to Software Engineering?
3. Understanding Software Development.
Does the Division of Labor Work for Software Development?
One Size Does Not Fit All.
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.
II. SOFTWARE CRAFTSMANSHIP.
5. Putting People Back into Software Development.
Craftsmanship Encourages Developers to Write Great Software.
A Call to Arms.
6. Craftsmanship Is the Opposite of Licensing.
Licensing Is an Illusion.
Craftsmanship Focuses on the Individual.
III. IMPLICATIONS OF SOFTWARE CRAFTSMANSHIP.
7. How Craftsmanship Affects the Users of Systems.
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.
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-off When Choosing Craftsmen.
Customers Have Long Term Relationships with Software Craftsmen.
Customer Interests Are Aligned with the Interests of Software Craftsmen.
9. Managing Craftsmen.
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.
Craftsmanship Requires Dedication.
How Does a Person Become a Software Craftsman?
The Craft Tradition Has Endured for Centuries.
11. Mastering the Craft.
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.
Becoming an Apprentice Is a Significant Step.
Apprenticeship Instills Lifelong Learning.
The Role of Apprentices.
An Apprenticeship Is a Significant Investment of Time and Energy.
13. Journeymen Developers.
Journeymen Are Focused on Delivering Applications.
Journeymen Play a Key Role in Software Craftsmanship.
IV. REPOSITIONING SOFTWARE ENGINEERING.
14. Software Engineering Projects.
Software Engineering Projects Are Diverse and Varied.
15. Hazards of the Software Engineering Metaphor.
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.
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.
V. WHAT TO DO ON MONDAY MORNING.
17. Experience— The Best Indicator of Project Success.
Evaluate Craftsmen Based on Their Reputations and Portfolio.
Auditioning a Software Craftsman.
Let Your Software Craftsman Pick the Rest of the Development Team.
Avoid Bleeding-Edge Technology If At All Possible.
Paying for Experience.
Be Prepared to Be Amazed.
Design for Testing and Maintenance.
Think Applications, Not Projects.
Maintenance Teams Should Refuse to Accept Bad Applications.
18. Design for Maintenance.
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.
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.