Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin


Agile Software Development, Principles, Patterns, and Practices
Title : Agile Software Development, Principles, Patterns, and Practices
Author :
Rating :
ISBN : 0135974445
ISBN-10 : 9780135974445
Language : English
Format Type : Hardcover
Number of Pages : 552
Publication : First published October 25, 2002

Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application--from the early stages of analysis, through the low-level design and into the implementation. Walks readers through the designer's thoughts -- showing the errors, blind alleys, and creative insights that occur throughout the software design process. The book covers: Statics and Dynamics; Principles of Class Design; Complexity Management; Principles of Package Design; Analysis and Design; Patterns and Paradigm Crossings. Explains the principles of OOD, one by one, and then demonstrates them with numerous examples, completely worked-through designs, and case studies. Covers traps, pitfalls, and work arounds in the application of C++ and OOD and then shows how Agile methods can be used. Discusses the methods for designing and developing big software in detail. Features a three-chapter, in-depth, single case study of a building security system. For Software Engineers, Programmers, and Analysts who want to understand how to design object oriented software with state of the art methods.


Agile Software Development, Principles, Patterns, and Practices Reviews


  • Rod Hilton

    This book covers a great deal of material: Martin talks about the basic practices of agile software development, the principles of good object-oriented design, and common OO design patterns.

    This book is, in my opinion, a career-changer. Having a single book that teaches what it essentially means to move from being a programmer to a real software craftsman is invaluable. I'd recommend this for any experienced programmer who wants to transition to a more professional approach to writing high quality, maintainable code.

    In this book, Martin avoids a problem that plagued Clean Code - most of the code examples here are short, making it less problematic that they lack any kind of formatting to aid readability. My main problem with the book was that I personally don't think C++ code ever "looks" good, so examples that illustrated how to clean C++ code weren't as impactful for me as the Java examples. I think I would have preferred the C-based code to be in C# instead.

    Overall, this is an excellent book that really helped me grow into a software craftsman. Occasionally, some of the code examples drag on a bit long, and occasionally the examples look overengineered (a common problem when using code short enough to illustrate a single thing), but the book is so good otherwise that it's worth slogging through the occasional rough patches.

  • Vitor

    A must-read for developers willing to build maintainable, testable and scalable software. It teaches you the basics for agile "software development", TDD, SOLID principles, design patterns and much more. Also, you really need to try out the patterns and practices presented in this book so you can feel how it is to create a "Clean Architecture". On the other hand, the reader might need some programming experience before trying to understand all the reasons and solutions proposed in this book.

  • Zahra Dashti

    بلاخره تموم شد! یک انتخاب نادرست برای این زمان! یک کتاب سخت خوان و انگیزه کم کن، حداقل برای کسی مثل من که هنوز در ابتدای راه دیزاین هست. اصلا توصیه نمی کنم اگر هنوز به درک نسبتا خوبی از مفاهیم پایه نرسیدید این کتاب رو بخونید. چون به نظرم سخت نوشته شده و خسته و گیجتون می کنه. بعدها، شاید وقتی مفاهیم برام بیشتر جا افتاد، به عنوان یک کتاب که از تجارب واقعی نوشته شده، باز این کتاب رو بخونم.

  • Ihsan Nurul iman

    The first chapters of the book explain a little bit about Agile and its methodologies, practices, and background. The subsequences are all about reviews of refactoring, design patterns, testing, and related stuff. Also, there are some study cases at the end of each topic.

    Even though this book is not a breakthrough--there isn't something new--but the depth of the reviews makes the book worth reading. You'll recall many topics like Refactoring, XP, TTD, etc etc. You'll learn it more deeply because the author gives different perspectives on how to use certain techniques.

    What bothers me a lot about this book is the author's word selection. Bob is a Sesquipedalian: he likes using big words. Some selections cause the book to be unreadable.

    Also, some explanations are just too shallow. Sometimes, the author likes to assume that the readers have an understanding of the prerequisites, so he didn't give so much time explaining it or explaining it in a vague way. This is frustrating. I had to skip two case studies because of their lack of explanations. I'd tried it hard, seriously, but I don't think I would ever understand with that level of unclarity.

  • Razvan Matei

    I've read up this book up to the Packaging the Payroll System, right before starting the ETS Study Case. The reason for this abandon is that this book is very large (at least for me, a novice in reading technical books).

    It is a great book for learning Design Patterns. Also, it is a nice read as the author has a good sense of humor, and inserts funny stuff here and there.

  • Per Flitig

    It’s a bit dated but the book provides a lot of useful information on making software projects successful. It’s the kind of book I wish I read a long time ago at the beginning of my career. Still, it’s valuable to revisit these concepts once in a while.
    I would categorize this book as recommended reading for budding software engineers.

  • Rodrigo Almeida

    Excelent book. Every developer must read this book, at least, once in your professional life. It hasn't just talking about design patterns, but how to get there and when and if makes sense. Give you a critical vision about design patterns, refactoring, TDD and process development.

  • Ivan Ković

    Nice explanation of SOLID principles. Some of the stuff is outdated but conveys the message good enough

  • Tianyao (Till) Chen

    The first few chapters until SOLID and design patterns are more relevant to Agile.

  • Boogie

    Clench your teeth or you will not finish this magnificent piece of art. It's packed with C++ and Java snippets, UMLs, case studies, etc. It's more like having a job than reading a book.

  • Marcin

    It was big changer in my career. It teached me how to be a developer. Not just a coder.

  • Huralnyk Alexey

    I need to reread it. Several times.

  • Arvind Balasubramaniam

    Pretty much a bible on Agile development and design including the "SOLID" principles. The examples on design patterns are also well written, with much detail going into the evolution of the patterns. The author tends to work from first principles while designing, so it mimicks real life development and is a good reference point for the inexperience developer. I docked one point because some of the code examples (especially, the code walkthrough chapters) were way too long-winded and some of the design pattern chapters could have been easily condensed to 50% of their length while not removing much of the core content.

  • David Espley

    Having finished this book for the second time, I am struck by what a profound influence the material contained has had on my career. Quite simply this is the very best book on programming I have ever read. If you can follow the SOLID principles contained within you will write high quality, compact and maintainable code.

    I am currently encouraging a group of about 20 developers to study this book and share their experiences

  • Nick

    Some of the code examples are dated in the late 2000s/early 2010s, but the concepts are rock solid. The chapters on software packaging and calculating package metrics with the Main Sequence and Stable Abstraction Principle is a fairly significant, under-researched contribution to the software engineering research space. Worth a read,cover-to-cover.

  • Raghu Hudli

    One of the best books on design principles. The source for SOLID design design principles. Robert Martin takes the focus away from notation and focusses on design problems - the most important one of achieving loose coupling - required for any scalable and extensible system.

    I found it a great source for some of my training programs on object-oriented design.