The Thoughtworks Anthology: Essays on Software Technology and Innovation

The Thoughtworks Anthology: Essays on Software Technology and Innovation


3 New & Used Starting at $6.49


ThoughtWorks is a well-known global consulting firm; ThoughtWorkers are leaders in areas of design, architecture, SOA, testing, and agile methodologies. This collection of essays brings together contributions from well-known ThoughtWorkers such as Martin Fowler, along with other authors you may not know yet. While ThoughtWorks is perhaps best known for their work in the Agile community, this anthology confronts issues throughout the software development life cycle. From technology issues that transcend methodology, to issues of realizing business value from applications, you'll find it here.

Product Details

ISBN-13: 9781934356142
Publisher: Pragmatic Programmers, LLC, The
Publication date: 03/28/2008
Series: Pragmatic Programmers Series
Pages: 248
Product dimensions: 7.46(w) x 8.94(h) x 0.72(d)

About the Author

Fowler is an independent consultant who specializes in implementing object based solutions to mission critical business problems.

Neal Ford is the chief technology officer at DSW Group, Ltd. He is an architect, designer, and developer of applications, instructional materials, and video presentations. He is the author of Developing with Delphi: Object-Oriented Techniques and JBuilder 3 Unleashed. He lives in Atlanta, Georgia.

Michael Robinson is Associate Professor of Korean History at Indiana University.

Table of Contents

Introduction     1
Solving the Business Software "Last Mile"   Roy Singham   Michael Robinson     5
The Source of the "Last Mile" Problem     5
Understanding the Problem     6
Solving the "Last Mile" Problem     8
People     8
Automation     9
Design for Automated Testing of Nonfunctional Requirements     10
Decouple Design from Production Environment     12
Versionless Software     13
One Lair and Twenty Ruby DSLs   Martin Fowler     15
My Lair Example     15
Using Global Functions     18
Using Objects     21
Using Closures     27
Evaluation Context     28
Literal Collections     31
Dynamic Reception     36
Final Thoughts     38
The Lush Landscape of Languages   Rebecca J. Parsons     39
Introduction     39
The Specimens     39
The Variety of Varieties     43
The Tree of Life for Languages     47
That's All Very Interesting, But Why Should You Care?     49
Polyglot Programming   Neal Ford     51
Polyglot Programming     52
Reading Files the Groovy Way     52
JRuby and isBlank     54
Jaskell and Functional Programming     55
Testing Java     58
Polyglot Programming the Future     60
Object Calisthenics   Jeff Bay     61
Nine Steps to Better Software Design Today     61
The Exercise     62
Conclusion     70
What Is an Iteration Manager Anyway?   Tiffany Lentz     73
What Is an Iteration Manager?     73
What Makes a Good Iteration Manager?     74
What an Iteration Manager Is Not     75
The Iteration Manager and the Team     76
The Iteration Manager and the Customer     77
The Iteration Manager and the Iteration     78
The Iteration Manager and the Project     79
Conclusion     80
Project Vital Signs   Stelios Pantazopoulos     81
Project Vital Signs     81
Project Vital Signs vs. Project Health     82
Project Vital Signs vs. Information Radiator     82
Project Vital Sign: Scope Burn-Up     83
Project Vital Sign: Delivery Quality     86
Project Vital Sign: Budget Burn-Down     87
Project Vital Sign: Current State of Implementation     89
Project Vital Sign: Team Perceptions     92
Consumer-Driven Contracts: A Service Evolution Pattern   Ian Robinson     93
Evolving a Service: An Example     95
Schema Versioning     96
Breaking Changes     101
Consumer-Driven Contracts     103
Domain Annotations   Erik Doernenburg     113
Domain-Driven Design Meets Annotations     113
Case Study: Leroy's Lorries     118
Summary     132
Refactoring Ant Build Files   Julian Simpson     135
Introduction     135
Ant Refactoring Catalog     137
Summary     164
References     164
Resources     164
Single-Click Software Release   Dave Farley     165
Continuous Build     165
Beyond Continuous Build     166
Full Lifecycle Continuous Integration     167
The Check-in Gate     168
The Acceptance Test Gate     170
Preparing to Deploy     170
Subsequent Test Stages     173
Automating the Process      174
Conclusion     174
Agile vs. Waterfall Testing for Enterprise Web Apps   Kristan Vingrys     177
Introduction     177
Testing Life Cycle     178
Types of Testing     181
Environments     187
Issue Management     190
Tools     191
Reports and Metrics     192
Testing Roles     193
References     195
Pragmatic Performance Testing   James Bull     197
What Is Performance Testing?     197
Requirements Gathering     198
Running the Tests     203
Communication     209
Process     211
Summary     213
Bibliography     215
Index     217

Customer Reviews

Most Helpful Customer Reviews

See All Customer Reviews