ThoughtWorks
Site Navigation:

My Books

I have both written books as the primary (or sole author) and contributed to several anthologies. I also editted the two No Fluff, Just Stuff Antology books, as well as contributing to them. The books on this page are arranged chronologically, with the most recent at the top.

Every book project seems like an endless nightmare while it is occurring, with lots of swears of "I'll never do this again!". After the project is over, I breathe a sigh of relief. Six months later, I look back on the process and say "Well, that wasn't so bad". Three years later, I'm stupid enough to do it again.

97 Things Every Software Architect Should Know: Collective Wisdom from the Experts

Compiled by Richard Monson-Haefel

Paperback: 220 pages
Publisher: O'Reilly (February 2009)
ISBN: 059652269X

From the Amazon Description: In this truly unique technical book, today's leading software architects present valuable principles on key development issues that go way beyond technology. More than four dozen architects -- including Neal Ford, Michael Nygard, and Bill de h ra -- offer advice for communicating with stakeholders, eliminating complexity, empowering developers, and many more practical lessons they've learned from years of experience. Among the 97 principles in this book, you'll find useful advice such as:

  • Don't Put Your Resume Ahead of the Requirements (Nitin Borwankar)
  • Chances Are, Your Biggest Problem Isn't Technical (Mark Ramm)
  • Communication Is King; Clarity and Leadership, Its Humble Servants (Mark Richards)
  • Simplicity Before Generality, Use Before Reuse (Kevlin Henney)
  • For the End User, the Interface Is the System (Vinayak Hegde)
  • It's Never Too Early to Think About Performance (Rebecca Parsons)

To be successful as a software architect, you need to master both business and technology. This book tells you what top software architects think is important and how they approach a project. If you want to enhance your career, 97 Things Every Software Architect Should Know is essential reading.

The Productive Programmer

Neal Ford

Paperback: 222 pages
Publisher: O'Reilly (July 2008)
Series: Theory in Practice ISBN: 0-596-51978-8

Anyone who develops software for a living needs a proven way to produce it better, faster, and cheaper. The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away, no matter what platform you use. Master developer Neal Ford not only offers advice on the mechanics of productivity-how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition-he also details valuable practices that will help you elude common traps, improve your code, and become more valuable to your team. You'll learn to:

  • Write the test before you write the code
  • Manage the lifecycle of your objects fastidiously
  • Build only what you need now, not what you might need later
  • Apply ancient philosophies to software development
  • Question authority, rather than blindly adhere to standards
  • Make hard things easier and impossible things possible through meta-programming
  • Be sure all code within a method is at the same level of abstraction
  • Pick the right editor and assemble the best tools for the job

This isn't theory, but the fruits of Ford's real-world experience as an Application Architect at the global IT consultancy ThoughtWorks. Whether you're a beginner or a pro with years of experience, you'll improve your work and your career with the simple and straightforward principles in The Productive Programmer.

ThoughtWorks Anthology

Edited by Rebecca Parsons

Paperback: 240 pages
Publisher: Pragmatic Press (March 2008)
ISBN: 9781934356142

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.

  • Solving the Business Software Last Mile by Roy Singahm and Michael Robinson
  • One Lair and Twenty Ruby DSLs by Martin Fowler
  • The Lush Landscape of Languages by Rebecca J. Parsons
  • Polyglot Programming by Neal Ford
  • Object Calisthenics by Jeff Bay
  • What Is an Iteration Manager Anyway? by Tiffany Lentz
  • Project Vital Signs by Stelios Pantazopoulos
  • Consumer-Driven Contracts: A Service Evolution Pattern by Ian Robinson
  • Domain Annotations by Erik Coernenburg
  • Refactoring Ant Build Files by Julian Simpson
  • Single-Click Software Release by Dave Farley
  • Agile vs. Waterfall Testing for Enterprise Web Apps by Kristan Vingrys
  • Pragmatic Performance Testing by James Bull

  • No Fluff, Just Stuff Anthology, Volume II
    What Every Software Developer Shound Know

    Compiled by Neal Ford

    Paperback: 320 pages
    Publisher: Pragmatic Press (April 2007)
    ISBN: 9780978739287

    These essays are a summary of the latest thinking in the industry, and range from the philosophical to the tutorial, covering the topics that the writers felt were the most important for readers today. If you feel like the neatest technology and latest ideas are passing you by, this book can help bring you back you to speed.

    It’s all good stuff, without any fluffy filler, as these essays are based on pre sentations given at the incredibly popular "No Fluff, Just Stuff" symposium series. Twenty-six times a year, the symposium visits a city and the speakers and attendees share ideas and perspectives. The speakers are all internationally known experts in their field.

    Twenty-seven weekends a year, the No Fluff, Just Stuff conference rolls into another town, featuring the world's best technical speakers and writers. Up until now, you had to go to one of the shows to soak up their collective wisdom. Now, you can hold it in the palm of your hand. The No Fluff, Just Stuff Anthology represents topics presented on the tour, written by the speakers who created it. This book allows the authors the chance to go more in depth on the subjects for which they are passionate. It is guaranteed to surprise, enlighten, and broaden your understanding of the technical world in which you live.

    The No Fluff, Just Stuff Symposium Series is a traveling conference series for software developers visiting 27 cities a year. No Fluff has put on over 75 symposia throughout the U.S. and Canada, with more than 12,000 attendees so far. Its success has been a result of focusing on high quality technical presentations, great speakers, and no marketing hype. Now this world-class material is available to you in print for the first time.

    • Learn to Love JavaScript by Glenn Vanderburg
    • The Joys of Continuations and Asynchronous Architectures by Rebecca Parsons
    • The Case for Groovy by Scott Davis
    • Give it a REST by Brian Sletten
    • Guerilla Testing with Cobertura, TestNG, and EasyMock by Howard Lewis Shipp
    • An Introduction to the Google Web Toolkit by Davie Geary
    • Web Testing with Selenium by Neal Ford
    • IntelliJ Tips, Tricks, and Techniques
    • Pragmatic Tips, Tricks, and Techniques: Eclipse
    • Improving Code Quality using Automation by Paul M. Duvall
    • Capistrano: Application Deployment and More by David Bock
    • Bootstraping Agility by Venkat Subramaniam
    • The Software Engineer's Guide to Usability by Nathaniel T. Schutta
    • Integrating Ruby with Your Legacy Code by Jared Richardson
    • Executable Documentation with FIT and FitNesse by David Hussman
    • Introducing the iBATIS Persistence Framework by Mark Richards
    • Data Access Using Spring, Hibernate, and JDBC by Scott Leberknight

    No Fluff, Just Stuff Anthology, Volume I
    The 2006 Edition

    Compiled by Neal Ford

    Paperback: 256 pages
    Publisher: Pragmatic Press (June 2006)
    ISBN: 0-9776166-6-5

    Take 13 of the world's best trainers and speakers and ask them to write a chapter on something they care passionately about. The result? A book on software development unlike any other. Fifteen chapters covering the range of modern software development topics, from Domain-Specific Languages through Aspect-Oriented CSS to learning from the past.
    These essays are a summary of the latest thinking in the industry, and range from the philosophical to the tutorial, covering the topics that the writers felt were the most important for readers today. If you feel like the neatest technology and latest ideas are passing you by, this book can help bring you back you to speed.
    It's all good stuff, without any fluffy filler, as these essays are based on presentations given at the incredibly popular "No Fluff, Just Stuff" symposium series. Twenty-six times a year, the symposium visits a city and the speakers and attendees share ideas and perspectives. The speakers are all internationally known experts in their field.

    • Real World Web Services by Scott Davis
    • DSLs and Language Oriented Programming by Neal Ford
    • Shale by David Geary
    • Test Categorization Techniques by Andrew Glover
    • Spring AOP: Read this chapter by Stuart Halloway
    • Dependency Management by Kirk Knoernschild
    • Process Choreography and the Enterprise Service Bus by Mark Richards
    • The Cornerstone of a Great Shop by Jared Richardson
    • Help! I've Inherited Legacy Code! by Jared Richardso
    • Using Code Coverage to Improve Testing Effectiveness by Ian Roughley
    • Extreme Decorator: Total Object Makeover by Brian Sletten
    • From Fragility to Agility: Methodologies and Practices by Venkat Subramaniam
    • The Many Guises of Method Instrumentation by Eitan Suez
    • CSS: A Programmer's Perspective by Eitan Suez
    • Buried Treasure: Read this chapter by Glenn Vanderburg

    As a bonus, many of the authors have contributed to an appendix listing their favorite recent reads, and tools that they find most useful. The book also contains a substantial bibliography of recommended further reading.

       

    Art of Java Web Development
    Struts, Tapestry, Commons, Velocity, JUnit, Axis, Cocoon, InternetBeans, WebWork

    Neal Ford

    Paperback: 450 pages
    Publisher: Manning Publications Company; (November 1, 2003)
    ISBN: 1932394060

    A guide to the topics required for state of the art web development, this book covers wide-ranging topics, including a variety of web development frameworks and best practices. Beginning with coverage of the history of the architecture of web applications, highlighting the uses of the standard web API to create applications with increasingly sophisticated architectures, developers are led through a discussion on the development of industry accepted best practices for architecture.

    Described is the history and evolution towards this architecture and the reasons that it is superior to previous efforts. Also provided is an overview of the most popular web application frameworks, covering their architecture and use. Numerous frameworks exist, but trying to evaluate them is difficult because their documentation stresses their advantages but hides their deficiencies. Here, the same application is built in six different frameworks, providing a way to perform an informed comparison. Also provided is an evaluation of the pros and cons of each framework to assist in making a decision or evaluating a framework on your own. Finally, best practices are covered, including sophisticated user interface techniques, intelligent caching and resource management, performance tuning, debugging, testing, and Web services.

       

    JBuilder 3 Unleashed

    Neal Ford, Ed Weber, Talal Azzouka, Terry Dietzler, Jennifer Streeter, Casey Williams

    Paperback: 1072 pages
    Publisher: SAMS; Book and CD-ROM edition (September 1999)
    ISBN: 0672315483

    Editorial Review from Amazon.com
    JBuilder 3 Unleashed does an excellent job of explaining how to write Java programs in Borland's newest Integrated Development Environment (IDE) for the language. With plenty of code (all of which ships on the accompanying CD-ROM) and lots of documentation on Java classes, this book enables the intermediate-level Java programmer to become more capable with JBuilder and the language as a whole. You'll find good information if you want to write servlets, interface with databases, or do any of dozens of other software development tasks.

    JBuilder 3 Unleashed naturally covers the JBuilder user interface, but the authors don't explain interface elements for their own sake. Rather, they explain the JBuilder interface in the context of doing certain Java programming jobs. Subjects include some fairly exotic aspects of the Java language, including elaborate user interface design, multithreading, internationalization, and client/server architecture.

    Coverage of programming JavaBeans (and especially serialization as it applies to Beans) with JBuilder is exemplary, as are the sections on Remote Method Invocation (RMI) and CORBA. In addition to their coverage of the mechanics of JBuilder and Java, the authors include quite a bit of management and engineering information on using Borland's development environment as the centerpiece of a development team, including versioning, testing, and object-oriented analysis and design. --David Wall

    Topics covered: JBuilder user interface, multithreading, internationalization, client/server architecture, programming JavaBeans, RMI, and CORBA.

    From the Back Cover
    JBuilder 3 Unleashed is designed to help intermediate to advanced level Java developers obtain the information and techniques needed to create mission critical JBuilder applications. The book picks up where most JBuilder books leave off and provides the information needed by developers to create robust and maintainable JBuilder Client/Server and multi-tier applications. Topics covered include: Advanced object-oriented design and programming techniques in Java, Enterprise JavaBeans,... read more

    Book Description
    JBuilder 3 Unleashed is designed to help intermediate to advanced level Java developers obtain the information and techniques needed to create mission critical JBuilder applications. The book picks up where most JBuilder books leave off and provides the information needed by developers to create robust and maintainable JBuilder Client/Server and multi-tier applications. Topics covered include: Advanced object-oriented design and programming techniques in Java, Enterprise JavaBeans, Serialization, Threading, NMI, Multi-tier development: implementation of applications and applets, RMI, CORBA, Enprise's MIDAS technology, N-tier, Application Development, Source code control, Deployment.

       

    Developing with Delphi: Object-oriented Techniques

    Edward C. Weber, J. Neal Ford, Christopher Weber

    Prentice Hall Computer Books; Book and Disk edition (January 1996)
    ISBN: 0133781186 (Out of Print)

    Publisher Blurb:
    This text shows how to apply object-oriented programming techniques using Delphi, Borland's second generation, visual, client/server development tool. It includes insights into creating large applications in a team development environment, and covers advanced topics such as version control, reusable components and client/server connectivity. A toolkit is included on the accompanying disk which contains common application components that can be used immediately saving developers time and money.

    The complete guide to creating large mission-critical applications with Delphi. The authors, all experienced developers, cover the object-oriented concepts underlying Delphi, present examples including a comprehensive case study, and show how Delphi can be used with other technologies, such as OLE 1.0/2.0, DDE, Windows DLLS, and database-related tools.

    The Real Skinny:
    This book was written about Delphi 1.0, which caused a lot of breathless enthusiam in the programming world when it came out. Our publisher was Prentice Hall, which was essentially a publisher of text books. We got the book done, which provided a reasonable overview of Delphi. It was not particularly about Object-oriented Techniques, but the publisher insisted on that title. We sent the book off to the publisher and waited, and waited, and waited...11 months (!) after we had sent them the final manuscript, the book was published, about two months before Delphi 2.0 (the 32-bit version) came out. Needless to say, our book had a short shelf life. Our publisher thought this was OK because no one gets in a hurry for a text book. I found out later, ironically enough, that the California Polytechnic University at Pomona actually used it as a text book!