Books By Object Mentor People


Clean Code Cover Picture

Clean Code: A Handbook of Agile Software Craftsmanship

By Robert C. Martin


Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob


Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship. Martin distills Object Mentor's best Agile practices of cleaning code “on the fly”. These techniques will instill within you the values of a software craftsman and make you a better programmer—but only if you work at it.


Clean Code is divided into three parts. The first describes the principles, patterns, and practices of writing clean code. The second part consists of several case studies of increasing complexity. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient. The third part is the payoff: a single chapter containing a list of heuristics and “smells” gathered while creating the case studies. The result is a knowledge base that describes the way we think when we write, read, and clean code.


Readers will come away from this book understanding:

  • How to tell the difference between good and bad code
  • How to write good code and how to transform bad code into good code
  • How to create good names, good functions, good objects, and good classes
  • How to format code for maximum readability
  • How to implement complete error handling without obscuring code logic
  • How to unit test and practice test-driven development

This book is a must for any developer, software engineer, project manager, team lead, or systems analyst with an interest in producing better code. — summary excerpt from

Order this book


Agile Principles, Patterns and Practices in C#

Agile Priniciples, Patterns and Practices in C#

By Robert C. Martin and Micah Martin


Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob


This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory chapters lay out the basics of the agile movement, while the later chapters show proven techniques in action. The book includes many source code examples that are also available for download from the authors’ Web site. Readers will come away from this book understanding

  • Agile principles, and the fourteen practices of Extreme Programming
  • Spiking, splitting, velocity, and planning iterations and releases
  • Test-driven development, test-first design, and acceptance testing
  • Refactoring with unit testing
  • Pair programming
  • Agile design and design smells
  • The five types of UML diagrams and how to use them effectively
  • Object-oriented package design and design patterns
  • How to put all of it together for a real-world project


Whether you are a C# programmer or a Visual Basic or Java programmer learning C#, a software development manager, or a business analyst, Agile Principles, Patterns, and Practices in C# is the first book you should read to understand agile software and how it applies to programming in the .NET Framework.

Order this book


Working Effectively with Legacy Code

Working Effectively with Legacy Code

By Michael Feathers (2004)


Michael Feathers is one of Object Mentor's Senior Consultants. He provides training and mentoring in Agile and Extreme Programming methodologies, refactoring, object-oriented design, Java, C#, and C++. more about Michael...


Get more out of your legacy systems: more performance, functionality, reliability, and manageability. Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.


In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars: techniques Michael has used in mentoring to help hundreds of developers, technical managers, and testers bring their legacy systems under control.


The topics covered include:

  • Understanding the mechanics of software change: adding features, fixing bugs, improving design, optimizing performance
  • Getting legacy code into a test harness
  • Writing tests that protect you against introducing new problems
  • Techniques that can be used with any language or platform with examples in Java, C++, C, and C#
  • Accurately identifying where code changes need to be made
  • Coping with legacy systems that aren't object-oriented
  • Handling applications that don't seem to have any structure
  • Plus a catalog of 24 dependency-breaking techniques that help you work with program elements in isolation and make safer changes.


View the table of contents

Read a sample chapter


Order this book


UML Book

UML for Java Programmers

By Robert C. Martin (2003)


Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob


This book is for the Java programmer who wants to make sense out of UML. The book is loaded with case studies and examples of Java programs and their corresponding UML diagrams. The book emphasizes the parts of UML that Java programmers need, and ignores those parts of UML that Java programmers don't need. It is a pragmatic guide to using UML to describe Java programs.


But the book doesn't stop there. It goes on to show good object oriented design techniques, principles, and practices. It examines a number of case studies in depth, and shows how to design Java structures that are robust and maintainable.



  • If you want to learn solid OO design concepts and how to reliably and accurately represent them in UML then this book is for you.
  • This is a great book for learning or improving with UML. Topics are introduced at a level appropriate for beginners but each topic progresses at a nice pace into intermediate territory. There's even advice in here suitable for the best programmers I know.
  • This book is a gold mine of insights into what is essential about OO design, UML notation, and their relationship to writing sound code.

Get the source code for the book
Read Pete McBreen's foreword


Order this book


Working Effective Legacy Code Book



Agile Software Development: Principles, Patterns, and Practices
By Robert C. Martin (2002)


Robert C. Martin is the founder and president of Object Mentor. He is an industry-recognized expert in Agile methodologies and object-oriented design. More about Bob


This book was written for the software developer in the trenches. It describes Agile Software Development from a practitioner's point of view. Through dozens of case studies it describes and teaches the principles of object-oriented software design, the patterns that embody those principles, and the practices that enable individuals and teams to use those principles.


It is a book of Java and C++ code -- lots of code. Every point the book makes about software development is amplified with examples in code and UML diagrams. What's more, the code and UML are not presented in completed form, leaving the reader to wonder how they got there. Rather the code and UML are presented in stages throughout a project. Byn following the code and the accompanying text, you see the process of software design.


If you want to learn UML, if you want to learn how to design software, if you want to learn design patterns, or if you want to learn the best practices of software development, this is the book to read.


What the industry experts are saying...

  • "Bob has an enormous amount to teach about the pragmatics
    of mastering our craft."
    — Martin Fowler
  • "You hold in your hands a lifetime's worth
    of "good object thoughts"
    —Kent Beck
  • "This book is crammed with sensible advice
    for software development."
    — Erich Gamma
  • "When Bob Martin speaks, better listen up."— John Vlissides
  • "Bob Martin demonstrates his gift as both master developer
    and educator. These are important lessons, and a delight
    to read."
    — Craig Larman


Order this book


Agile Software Development Book

Designing Object-Oriented C++ Applications using the Booch Method
By Robert C. Martin (1995)

A pragmatic approach for object oriented designers in the trenches.

Order this book

C++ Gems

More C++ Gems
Compiled and Introduced by Robert C. Martin

This book contains some of my favorite C++ Report articles. I introduce each one and provide a little background and history for them — Robert C. Martin

Order this book





©2006 Object Mentor Inc | Privacy Statement | Terms of Use