Skip to content

Instantly share code, notes, and snippets.

@amit352
Forked from wwerner/reading-list.adoc
Created August 21, 2025 19:16
Show Gist options
  • Save amit352/5661be6636ccd5c6a56a957022316711 to your computer and use it in GitHub Desktop.
Save amit352/5661be6636ccd5c6a56a957022316711 to your computer and use it in GitHub Desktop.

Revisions

  1. @wwerner wwerner revised this gist Jun 16, 2016. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion reading-list.adoc
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,4 @@
    :toc:
    :toc2:

    [[the-pragmatic-programmer]]
    The Pragmatic Programmer
  2. @wwerner wwerner revised this gist Jun 16, 2016. 1 changed file with 10 additions and 10 deletions.
    20 changes: 10 additions & 10 deletions reading-list.adoc
    Original file line number Diff line number Diff line change
    @@ -44,7 +44,7 @@ early and correctly Build quality into the beginning, middle, and end of
    your project

    Author: Steve McConnell
    ([@stevemconstrux](https://twitter.com/stevemconstrux))
    (https://twitter.com/stevemconstrux[@stevemconstrux])

    https://www.amazon.de/Code-Complete-Practical-Construction-Costruction/dp/0735619670

    @@ -89,7 +89,7 @@ developers to organize Software Craftsmanship communities throughout
    Europe, the United States, and the rest of the world."

    Author: Sandro Mancuso
    ([@sandromancuso](https://twitter.com/sandromancuso))
    (https://twitter.com/sandromancuso[@sandromancuso])

    https://www.amazon.de/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501

    @@ -119,7 +119,7 @@ time to market and improve quality, as you build software that is more
    flexible, more scalable, and more tightly aligned to business goals.

    Author: Vaughn Vernon
    ([@VaughnVernon](https://twitter.com/VaughnVernon))
    (https://twitter.com/VaughnVernon[@VaughnVernon])

    https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577

    @@ -164,7 +164,7 @@ manager, team lead, or systems analyst with an interest in producing
    better code.

    Author: Robert C. Martin
    ([@unclebobmartin](https://twitter.com/unclebobmartin))
    (https://twitter.com/unclebobmartin[@unclebobmartin])

    https://www.amazon.de/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

    @@ -202,7 +202,7 @@ Finally, and most importantly, Ship It! presents common problems that
    teams face, then offers real-world advice on how to solve them.

    Authors: Jared Richardson
    ([@jaredrichardson](https://twitter.com/jaredrichardson)), William
    (https://twitter.com/jaredrichardson[@jaredrichardson]), William
    Gwaltney

    https://www.amazon.de/Ship-Practical-Successful-Pragmatic-Programmers/dp/0974514047
    @@ -224,7 +224,7 @@ application for maximum uptime, performance, and return on investment.
    Mike explains that many problems with systems today start with the
    design.

    Author: Michael Nygard ([@mtnygard](https://twitter.com/mtnygard))
    Author: Michael Nygard (https://twitter.com/mtnygard[@mtnygard])

    https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers-ebook/dp/B00A32NXZO

    @@ -271,7 +271,7 @@ Common process patterns How to avoid bad practices Fitting SBE in your
    process 50+ case studies For additional resources go to
    specificationbyexample.com

    Author: Gojko Adzic ([@gojkoadzic](https://twitter.com/gojkoadzic))
    Author: Gojko Adzic (https://twitter.com/gojkoadzic[@gojkoadzic])

    https://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084

    @@ -379,7 +379,7 @@ Every team can improve. Every team can begin improving today.
    Improvement is possible beyond what we can currently imagine. "Extreme
    Programming Explained, Second Edition, " offers ideas to fuel your
    improvement for years to come. " Author: Kent Beck
    ([@KentBeck](https://twitter.com/KentBeck))
    (https://twitter.com/KentBeck[@KentBeck])

    https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658

    @@ -419,7 +419,7 @@ company and to the industry in general.
    Above all, you'll see how you can set the direction of your career,
    leading to a more fulfilling and remarkable professional life.

    Author: Chad Fowler ([@chadfowler](https://twitter.com/chadfowler))
    Author: Chad Fowler (https://twitter.com/chadfowler[@chadfowler])

    https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U

    @@ -453,6 +453,6 @@ practices that will advance software development, we can turn the legacy
    code crisis into a true Information Revolution.

    Author: David Scott Bernstein
    ([@ToBeAgile](https://twitter.com/ToBeAgile))
    (https://twitter.com/ToBeAgile[@ToBeAgile])

    https://www.amazon.com/Beyond-Legacy-Code-Practices-Software/dp/1680500791
  3. @wwerner wwerner revised this gist Jun 16, 2016. 1 changed file with 3 additions and 5 deletions.
    8 changes: 3 additions & 5 deletions reading-list.adoc
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,4 @@
    [[read-this.-youll-like-it]]
    Read this. You'll like it
    -------------------------
    :toc:

    [[the-pragmatic-programmer]]
    The Pragmatic Programmer
    @@ -16,8 +14,8 @@ This classic title is regularly featured on software development “Top
    Ten” lists, and is issued by many corporations to new hires.

    Authors: Andy Hunt
    ([@pragmaticAndy](https://twitter.com/PragmaticAndy)), Dave Thomas
    ([@pragDave](https://twitter.com/pragdave))
    (https://twitter.com/PragmaticAndy)[@pragmaticAndy]), Dave Thomas
    (https://twitter.com/pragdave[@pragDave])

    https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X

  4. @wwerner wwerner revised this gist Jun 16, 2016. 2 changed files with 460 additions and 169 deletions.
    460 changes: 460 additions & 0 deletions reading-list.adoc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,460 @@
    [[read-this.-youll-like-it]]
    Read this. You'll like it
    -------------------------

    [[the-pragmatic-programmer]]
    The Pragmatic Programmer
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Straight from the programming trenches, The Pragmatic Programmer: From
    Journeyman to Master cuts through the increasing specialization and
    technicalities of modern software development to examine the core
    process—what do you do, as an individual and as a team, if you want to
    create software that’s easy to work with and good for your users.

    This classic title is regularly featured on software development “Top
    Ten” lists, and is issued by many corporations to new hires.

    Authors: Andy Hunt
    ([@pragmaticAndy](https://twitter.com/PragmaticAndy)), Dave Thomas
    ([@pragDave](https://twitter.com/pragdave))

    https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X

    [[code-complete-2nd-edition]]
    Code Complete 2nd Edition
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Widely considered one of the best practical guides to programming, Steve
    McConnell s original CODE COMPLETE has been helping developers write
    better software for more than a decade. Now this classic book has been
    fully updated and revised with leading-edge practices and hundreds of
    new code samples illustrating the art and science of software
    construction. Capturing the body of knowledge available from research,
    academia, and everyday commercial practice, McConnell synthesizes the
    most effective techniques and must-know principles into clear, pragmatic
    guidance. No matter what your experience level, development environment,
    or project size, this book will inform and stimulate your thinking and
    help you build the highest quality code. Discover the timeless
    techniques and strategies that help you: Design for minimum complexity
    and maximum creativity Reap the benefits of collaborative development
    Apply defensive programming techniques to reduce and flush out errors
    Exploit opportunities to refactor or evolve code, and do it safely Use
    construction practices that are right-weight for your project Debug
    problems quickly and effectively Resolve critical construction issues
    early and correctly Build quality into the beginning, middle, and end of
    your project

    Author: Steve McConnell
    ([@stevemconstrux](https://twitter.com/stevemconstrux))

    https://www.amazon.de/Code-Complete-Practical-Construction-Costruction/dp/0735619670

    [[the-software-craftsman]]
    The Software Craftsman
    ~~~~~~~~~~~~~~~~~~~~~~

    Be a Better Developer and Deliver Better Code Despite advanced tools and
    methodologies, software projects continue to fail. Why? Too many
    organizations still view software development as just another production
    line. Too many developers feel that way, too and they behave
    accordingly. In "The Software Craftsman: Professionalism, Pragmatism,
    Pride, " Sandro Mancuso offers a better and more fulfilling path. If you
    want to develop software with pride and professionalism; love what you
    do and do it with excellence; and build a career with autonomy, mastery,
    and purpose, it starts with the recognition that you are a craftsman.
    Once you embrace this powerful mindset, you can achieve unprecedented
    levels of technical excellence and customer satisfaction. Mancuso helped
    found the world s largest organization of software craftsmen; now, he
    shares what he s learned through inspiring examples and pragmatic advice
    you can use in your company, your projects, and your career. You will
    learn Why agile processes aren t enough and why craftsmanship is crucial
    to making them work How craftsmanship helps you build software right and
    helps clients in ways that go beyond code How and when to say No and how
    to provide creative alternatives when you do Why bad code happens to
    good developers and how to stop creating and justifying it How to make
    working with legacy code less painful and more productive How to be
    pragmatic not dogmatic about your practices and tools How to lead
    software craftsmen and attract them to your organization What to avoid
    when advertising positions, interviewing candidates, and hiring
    developers How developers and their managers can create a true culture
    of learning How to drive true technical change and overcome deep
    patterns of skepticism Sandro Mancuso has coded for startups, software
    houses, product companies, international consultancies, and investment
    banks. In October 2013, he cofounded Codurance, a consultancy based on
    Software Craftsmanship principles and values. His involvement with
    Software Craftsmanship began in 2010, when he founded the London
    Software Craftsmanship Community (LSCC), now the world s largest and
    most active Software Craftsmanship community, with more than two
    thousand craftsmen. For the past four years, he has inspired and helped
    developers to organize Software Craftsmanship communities throughout
    Europe, the United States, and the rest of the world."

    Author: Sandro Mancuso
    ([@sandromancuso](https://twitter.com/sandromancuso))

    https://www.amazon.de/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501

    [[implementing-domain-driven-design]]
    Implementing Domain-Driven Design
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Implementing Domain-Driven Design presents a top-down approach to
    understanding domain-driven design (DDD) in a way that fluently connects
    strategic patterns to fundamental tactical programming tools. Vaughn
    Vernon couples guided approaches to implementation with modern
    architectures, highlighting the importance and value of focusing on the
    business domain while balancing technical considerations.

    Building on Eric Evans’ seminal book, Domain-Driven Design, the author
    presents practical DDD techniques through examples from familiar
    domains. Each principle is backed up by realistic Java examples–all
    applicable to C# developers–and all content is tied together by a single
    case study: the delivery of a large-scale Scrum-based SaaS system for a
    multitenant environment.

    The author takes you far beyond “DDD-lite” approaches that embrace DDD
    solely as a technical toolset, and shows you how to fully leverage DDD’s
    “strategic design patterns” using Bounded Context, Context Maps, and the
    Ubiquitous Language. Using these techniques and examples, you can reduce
    time to market and improve quality, as you build software that is more
    flexible, more scalable, and more tightly aligned to business goals.

    Author: Vaughn Vernon
    ([@VaughnVernon](https://twitter.com/VaughnVernon))

    https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577

    [[clean-code]]
    Clean Code
    ~~~~~~~~~~

    Even bad code can function. But if code isn t clean, it can bring a
    development organization to its knees. Every year, countless hours and
    significant resources are lost because of poorly written code. But it
    doesn t have to be that way. Noted software expert Robert C. Martin
    presents a revolutionary paradigm with " Clean Code: A Handbook of Agile
    Software Craftsmanship ." Martin has teamed up with his colleagues from
    Object Mentor to distill their best agile practice of cleaning code on
    the fly into a book that will instill within you the values of a
    software craftsman and make you a better programmer but only if you work
    at it. What kind of work will you be doing? You ll be reading code lots
    of code. And you will be challenged to think about what s right about
    that code, and what s wrong with it. More importantly, you will be
    challenged to reassess your professional values and your commitment to
    your craft. " 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.

    Author: Robert C. Martin
    ([@unclebobmartin](https://twitter.com/unclebobmartin))

    https://www.amazon.de/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

    [[ship-it]]
    Ship It
    ~~~~~~~

    Ship It! is a collection of tips that show the tools and techniques a
    successful project team has to use, and how to use them well. You'll get
    quick, easy-to-follow advice on modern practices: which to use, and when
    they should be applied. This book avoids current fashion trends and
    marketing hype; instead, readers find page after page of solid advice,
    all tried and tested in the real world.

    Aimed at beginning to intermediate programmers, Ship It! will show you:

    Which tools help, and which don't How to keep a project moving
    Approaches to scheduling that work How to build developers as well as
    product What's normal on a project, and what's not How to manage
    managers, end-users and sponsors Danger signs and how to fix them Few of
    the ideas presented here are controversial or extreme; most experienced
    programmers will agree that this stuff works. Yet 50 to 70 percent of
    all project teams in the U.S. aren't able to use even these simple,
    well-accepted practices effectively. This book will help you get
    started.

    Ship It! begins by introducing the common technical infrastructure that
    every project needs to get the job done. Readers can choose from a
    variety of recommended technologies according to their skills and
    budgets. The next sections outline the necessary steps to get software
    out the door reliably, using well-accepted, easy-to-adopt, best-of-breed
    practices that really work.

    Finally, and most importantly, Ship It! presents common problems that
    teams face, then offers real-world advice on how to solve them.

    Authors: Jared Richardson
    ([@jaredrichardson](https://twitter.com/jaredrichardson)), William
    Gwaltney

    https://www.amazon.de/Ship-Practical-Successful-Pragmatic-Programmers/dp/0974514047

    [[release-it]]
    Release It
    ~~~~~~~~~~

    Whether it's in Java, .NET, or Ruby on Rails, getting your application
    ready to ship is only half the battle. Did you design your system to
    survivef a sudden rush of visitors from Digg or Slashdot? Or an influx
    of real world customers from 100 different countries? Are you ready for
    a world filled with flakey networks, tangled databases, and impatient
    users? If you're a developer and don't want to be on call for 3AM for
    the rest of your life, this book will help. In Release It!, Michael T.
    Nygard shows you how to design and architect your application for the
    harsh realities it will face. You'll learn how to design your
    application for maximum uptime, performance, and return on investment.
    Mike explains that many problems with systems today start with the
    design.

    Author: Michael Nygard ([@mtnygard](https://twitter.com/mtnygard))

    https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers-ebook/dp/B00A32NXZO

    [[specification-by-example]]
    Specification by Example
    ~~~~~~~~~~~~~~~~~~~~~~~~

    Summary

    Specification by Example is an emerging practice for creating software
    based on realistic examples, bridging the communication gap between
    business stakeholders and the dev teams building the software. In this
    book, author Gojko Adzic distills interviews with successful teams
    worldwide, sharing how they specify, develop, and deliver software,
    without defects, in short iterative delivery cycles.

    About the Technology

    Specification by Example is a collaborative method for specifying
    requirements and tests. Seven patterns, fully explored in this book, are
    key to making the method effective. The method has four main benefits:
    it produces living, reliable documentation; it defines expectations
    clearly and makes validation efficient; it reduces rework; and, above
    all, it assures delivery teams and business stakeholders that the
    software that's built is right for its purpose.

    About the Book

    This book distills from the experience of leading teams worldwide
    effective ways to specify, test, and deliver software in short,
    iterative delivery cycles. Case studies in this book range from small
    web startups to large financial institutions, working in many processes
    including XP, Scrum, and Kanban.

    This book is written for developers, testers, analysts, and business
    people working together to build great software.

    Purchase of the print book comes with an offer of a free PDF, ePub, and
    Kindle eBook from Manning. Also available is all code from the book.

    What's Inside

    Common process patterns How to avoid bad practices Fitting SBE in your
    process 50+ case studies For additional resources go to
    specificationbyexample.com

    Author: Gojko Adzic ([@gojkoadzic](https://twitter.com/gojkoadzic))

    https://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084

    [[extreme-programming-explained]]
    Extreme Programming Explained
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    In this second edition of "Extreme Programming Explained, " Kent Beck
    organizes and presents five years worth of experiences, growth, and
    change revolving around XP. If you are seriously interested in
    understanding how you and your team can start down the path of
    improvement with XP, you must read this book. Francesco Cirillo, Chief
    Executive Officer, XPLabs S.R.L. The first edition of this book told us
    what XP was it changed the way many of us think about software
    development. This second edition takes it farther and gives us a lot
    more of the why of XP, the motivations and the principles behind the
    practices. This is great stuff. Armed with the what and the why, we can
    now all set out to confidently work on the how: how to run our projects
    better, and how to get agile techniques adopted in our organizations.
    Dave Thomas, The Pragmatic Programmers LLC This book is dynamite! It was
    revolutionary when it first appeared a few years ago, and this new
    edition is equally profound. For those who insist on cookbook
    checklists, there s an excellent chapter on primary practices, but I
    urge you to begin by truly contemplating the meaning of the opening
    sentence in the first chapter of Kent Beck s book: XP is about social
    change. You should do whatever it takes to ensure that every IT
    professional and every IT manager all the way up to the CIO has a copy
    of "Extreme Programming Explained" on his or her desk. Ed Yourdon,
    author and consultant XP is a powerful set of concepts for simplifying
    the process of software design, development, and testing. It is about
    minimalism and incrementalism, which are especially useful principles
    when tackling complex problems that require a balance of creativity and
    discipline. Michael A. Cusumano, Professor, MIT Sloan School of
    Management, and author of "The Business of Software" "Extreme
    Programming Explained" is the work of a talented and passionate
    craftsman. Kent Beck has brought together a compelling collection of
    ideas about programming and management that deserves your full
    attention. My only beef is that our profession has gotten to a point
    where such common-sense ideas are labeled extreme. ... Lou Mazzucchelli,
    Fellow, Cutter Business Technology Council If your organization is ready
    for a change in the way it develops software, there s the slow
    incremental approach, fixing things one by one, or the fast track,
    jumping feet first into Extreme Programming. Do not be frightened by the
    name, it is not that extreme at all. It is mostly good old recipes and
    common sense, nicely integrated together, getting rid of all the fat
    that has accumulated over the years. Philippe Kruchten, UBC, Vancouver,
    British Columbia Sometimes revolutionaries get left behind as the
    movement they started takes on a life of its own. In this book, Kent
    Beck shows that he remains ahead of the curve, leading XP to its next
    level. Incorporating five years of feedback, this book takes a fresh
    look at what it takes to develop better software in less time and for
    less money. There are no silver bullets here, just a set of practical
    principles that, when used wisely, can lead to dramatic improvements in
    software development productivity. Mary Poppendieck, author of "Lean
    Software Development: An Agile Toolkit" Kent Beck has revised his
    classic book based on five more years of applying and teaching XP. He
    shows how the path to XP is both easy and hard: It can be started with
    fewer practices, and yet it challenges teams to go farther than ever.
    William Wake, independent consultant With new insights, wisdom from
    experience, and clearer explanations of the art of Extreme Programming,
    this edition of Beck s classic will help many realize the dream of
    outstanding software development. Joshua Kerievsky, author of
    "Refactoring to Patterns" and Founder, Industrial Logic, Inc. XP has
    changed the way our industry thinks about software development. Its
    brilliant simplicity, focused execution, and insistence on fact-based
    planning over speculation have set a new standard for software delivery.
    David Trowbridge, Architect, Microsoft Corporation

    Accountability. Transparency. Responsibility. These are not words that
    are often applied to software development.

    In this completely revised introduction to Extreme Programming (XP),
    Kent Beck describes how to improve your software development by
    integrating these highly desirable concepts into your daily development
    process.

    The first edition of "Extreme Programming Explained" is a classic. It
    won awards for its then-radical ideas for improving small-team
    development, such as having developers write automated tests for their
    own code and having the whole team plan weekly. Much has changed in five
    years. This completely rewritten second edition expands the scope of XP
    to teams of any size by suggesting a program of continuous improvement
    based on: Five core values consistent with excellence in software
    developmentEleven principles for putting those values into
    actionThirteen primary and eleven corollary practices to help you push
    development past its current business and technical limitations

    Whether you have a small team that is already closely aligned with your
    customers or a large team in a gigantic or multinational organization,
    you will find in these pages a wealth of ideas to challenge, inspire,
    and encourage you and your team members to substantially improve your
    software development.

    You will discover how to: Involve the whole team XP styleIncrease
    technical collaboration through pair programming and continuous
    integrationReduce defects through developer testingAlign business and
    technical decisions through weekly and quarterly planningImprove
    teamwork by setting up an informative, shared workspace

    You will also find many other concrete ideas for improvement, all based
    on a philosophy that emphasizes simultaneously increasing the humanity
    and effectiveness of software development.

    Every team can improve. Every team can begin improving today.
    Improvement is possible beyond what we can currently imagine. "Extreme
    Programming Explained, Second Edition, " offers ideas to fuel your
    improvement for years to come. " Author: Kent Beck
    ([@KentBeck](https://twitter.com/KentBeck))

    https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658

    [[the-passionate-programmer]]
    The passionate Programmer
    ~~~~~~~~~~~~~~~~~~~~~~~~~

    Success in today's IT environment requires you to view your career as a
    business endeavor. In this book, you'll learn how to become an
    entrepreneur, driving your career in the direction of your choosing.
    You'll learn how to build your software development career step by step,
    following the same path that you would follow if you were building,
    marketing, and selling a product. After all, your skills themselves are
    a product.

    The choices you make about which technologies to focus on and which
    business domains to master have at least as much impact on your success
    as your technical knowledge itself--don't let those choices be
    accidental. We'll walk through all aspects of the decision-making
    process, so you can ensure that you're investing your time and energy in
    the right areas.

    You'll develop a structured plan for keeping your mind engaged and your
    skills fresh. You'll learn how to assess your skills in terms of where
    they fit on the value chain, driving you away from commodity skills and
    toward those that are in high demand. Through a mix of high-level,
    thought-provoking essays and tactical "Act on It" sections, you will
    come away with concrete plans you can put into action immediately.
    You'll also get a chance to read the perspectives of several highly
    successful members of our industry from a variety of career paths.

    As with any product or service, if nobody knows what you're selling,
    nobody will buy. We'll walk through the often-neglected world of
    marketing, and you'll create a plan to market yourself both inside your
    company and to the industry in general.

    Above all, you'll see how you can set the direction of your career,
    leading to a more fulfilling and remarkable professional life.

    Author: Chad Fowler ([@chadfowler](https://twitter.com/chadfowler))

    https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U

    [[beyond-legacy-code]]
    Beyond Legacy Code
    ~~~~~~~~~~~~~~~~~~

    These nine practices could save the software industry. Beyond Legacy
    Code is filled with practical, hands-on advice and a common-sense
    exploration of why technical practices such as refactoring and
    test-first development are critical to building maintainable software.
    Discover how to avoid the pitfalls teams encounter when adopting these
    practices, and how to dramatically reduce the risk associated with
    building software—realizing significant savings in both the short and
    long term. With a deeper understanding of the principles behind the
    practices, you’ll build software that’s easier and less costly to
    maintain and extend.

    By adopting these nine key technical practices, you’ll learn to say
    what, why, and for whom before how; build in small batches; integrate
    continuously; collaborate; create CLEAN code; write the test first;
    specify behaviors with tests; implement the design last; and refactor
    legacy code.

    Software developers will find hands-on, pragmatic advice for writing
    higher quality, more maintainable, and bug-free code. Managers,
    customers, and product owners will gain deeper insight into vital
    processes. By moving beyond the old-fashioned procedural thinking of the
    Industrial Revolution, and working together to embrace standards and
    practices that will advance software development, we can turn the legacy
    code crisis into a true Information Revolution.

    Author: David Scott Bernstein
    ([@ToBeAgile](https://twitter.com/ToBeAgile))

    https://www.amazon.com/Beyond-Legacy-Code-Practices-Software/dp/1680500791
    169 changes: 0 additions & 169 deletions reading-list.md
    Original file line number Diff line number Diff line change
    @@ -1,169 +0,0 @@

    # Read this. You'll like it
    ## The Pragmatic Programmer
    Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.

    This classic title is regularly featured on software development “Top Ten” lists, and is issued by many corporations to new hires.

    Authors: Andy Hunt ([@pragmaticAndy](https://twitter.com/PragmaticAndy)), Dave Thomas ([@pragDave](https://twitter.com/pragdave))

    https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X

    ## Code Complete 2nd Edition

    Widely considered one of the best practical guides to programming, Steve McConnell s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices and hundreds of new code samples illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor or evolve code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

    Author: Steve McConnell ([@stevemconstrux](https://twitter.com/stevemconstrux))

    https://www.amazon.de/Code-Complete-Practical-Construction-Costruction/dp/0735619670

    ## The Software Craftsman
    Be a Better Developer and Deliver Better Code Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too and they behave accordingly. In "The Software Craftsman: Professionalism, Pragmatism, Pride, " Sandro Mancuso offers a better and more fulfilling path. If you want to develop software with pride and professionalism; love what you do and do it with excellence; and build a career with autonomy, mastery, and purpose, it starts with the recognition that you are a craftsman. Once you embrace this powerful mindset, you can achieve unprecedented levels of technical excellence and customer satisfaction. Mancuso helped found the world s largest organization of software craftsmen; now, he shares what he s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career. You will learn
    Why agile processes aren t enough and why craftsmanship is crucial to making them work How craftsmanship helps you build software right and helps clients in ways that go beyond code How and when to say No and how to provide creative alternatives when you do Why bad code happens to good developers and how to stop creating and justifying it How to make working with legacy code less painful and more productive How to be pragmatic not dogmatic about your practices and tools How to lead software craftsmen and attract them to your organization What to avoid when advertising positions, interviewing candidates, and hiring developers How developers and their managers can create a true culture of learning How to drive true technical change and overcome deep patterns of skepticism Sandro Mancuso has coded for startups, software houses, product companies, international consultancies, and investment banks. In October 2013, he cofounded Codurance, a consultancy based on Software Craftsmanship principles and values. His involvement with Software Craftsmanship began in 2010, when he founded the London Software Craftsmanship Community (LSCC), now the world s largest and most active Software Craftsmanship community, with more than two thousand craftsmen. For the past four years, he has inspired and helped developers to organize Software Craftsmanship communities throughout Europe, the United States, and the rest of the world."

    Author: Sandro Mancuso ([@sandromancuso](https://twitter.com/sandromancuso))

    https://www.amazon.de/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501

    ## Implementing Domain-Driven Design
    Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.

    Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.

    The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

    Author: Vaughn Vernon ([@VaughnVernon](https://twitter.com/VaughnVernon))

    https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577

    ## Clean Code
    Even bad code can function. But if code isn t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn t have to be that way.
    Noted software expert Robert C. Martin presents a revolutionary paradigm with " Clean Code: A Handbook of Agile Software Craftsmanship ." Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it.
    What kind of work will you be doing? You ll be reading code lots of code. And you will be challenged to think about what s right about that code, and what s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
    " 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.

    Author: Robert C. Martin ([@unclebobmartin](https://twitter.com/unclebobmartin))

    https://www.amazon.de/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

    ## Ship It
    Ship It! is a collection of tips that show the tools and techniques a successful project team has to use, and how to use them well. You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world.

    Aimed at beginning to intermediate programmers, Ship It! will show you:


    Which tools help, and which don't How to keep a project moving Approaches to scheduling that work How to build developers as well as product What's normal on a project, and what's not How to manage managers, end-users and sponsors Danger signs and how to fix them Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren't able to use even these simple, well-accepted practices effectively. This book will help you get started.

    Ship It! begins by introducing the common technical infrastructure that every project needs to get the job done. Readers can choose from a variety of recommended technologies according to their skills and budgets. The next sections outline the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.

    Finally, and most importantly, Ship It! presents common problems that teams face, then offers real-world advice on how to solve them.

    Authors: Jared Richardson ([@jaredrichardson](https://twitter.com/jaredrichardson)), William Gwaltney

    https://www.amazon.de/Ship-Practical-Successful-Pragmatic-Programmers/dp/0974514047

    ## Release It
    Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?
    If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
    In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.
    Mike explains that many problems with systems today start with the design.

    Author: Michael Nygard ([@mtnygard](https://twitter.com/mtnygard))

    https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers-ebook/dp/B00A32NXZO


    ## Specification by Example
    Summary

    Specification by Example is an emerging practice for creating software based on realistic examples, bridging the communication gap between business stakeholders and the dev teams building the software. In this book, author Gojko Adzic distills interviews with successful teams worldwide, sharing how they specify, develop, and deliver software, without defects, in short iterative delivery cycles.

    About the Technology

    Specification by Example is a collaborative method for specifying requirements and tests. Seven patterns, fully explored in this book, are key to making the method effective. The method has four main benefits: it produces living, reliable documentation; it defines expectations clearly and makes validation efficient; it reduces rework; and, above all, it assures delivery teams and business stakeholders that the software that's built is right for its purpose.

    About the Book

    This book distills from the experience of leading teams worldwide effective ways to specify, test, and deliver software in short, iterative delivery cycles. Case studies in this book range from small web startups to large financial institutions, working in many processes including XP, Scrum, and Kanban.

    This book is written for developers, testers, analysts, and business people working together to build great software.

    Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

    What's Inside

    Common process patterns How to avoid bad practices Fitting SBE in your process 50+ case studies For additional resources go to specificationbyexample.com

    Author: Gojko Adzic ([@gojkoadzic](https://twitter.com/gojkoadzic))

    https://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084

    ## Extreme Programming Explained
    In this second edition of "Extreme Programming Explained, " Kent Beck organizes and presents five years worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book.
    Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. The first edition of this book told us what XP was it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the why of XP, the motivations and the principles behind the practices. This is great stuff. Armed with the what and the why, we can now all set out to confidently work on the how: how to run our projects better, and how to get agile techniques adopted in our organizations.
    Dave Thomas, The Pragmatic Programmers LLC This book is dynamite! It was revolutionary when it first appeared a few years ago, and this new edition is equally profound. For those who insist on cookbook checklists, there s an excellent chapter on primary practices, but I urge you to begin by truly contemplating the meaning of the opening sentence in the first chapter of Kent Beck s book: XP is about social change. You should do whatever it takes to ensure that every IT professional and every IT manager all the way up to the CIO has a copy of "Extreme Programming Explained" on his or her desk.
    Ed Yourdon, author and consultant XP is a powerful set of concepts for simplifying the process of software design, development, and testing. It is about minimalism and incrementalism, which are especially useful principles when tackling complex problems that require a balance of creativity and discipline.
    Michael A. Cusumano, Professor, MIT Sloan School of Management, and author of "The Business of Software" "Extreme Programming Explained" is the work of a talented and passionate craftsman. Kent Beck has brought together a compelling collection of ideas about programming and management that deserves your full attention. My only beef is that our profession has gotten to a point where such common-sense ideas are labeled extreme. ...
    Lou Mazzucchelli, Fellow, Cutter Business Technology Council If your organization is ready for a change in the way it develops software, there s the slow incremental approach, fixing things one by one, or the fast track, jumping feet first into Extreme Programming. Do not be frightened by the name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years.
    Philippe Kruchten, UBC, Vancouver, British Columbia Sometimes revolutionaries get left behind as the movement they started takes on a life of its own. In this book, Kent Beck shows that he remains ahead of the curve, leading XP to its next level. Incorporating five years of feedback, this book takes a fresh look at what it takes to develop better software in less time and for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in software development productivity.
    Mary Poppendieck, author of "Lean Software Development: An Agile Toolkit" Kent Beck has revised his classic book based on five more years of applying and teaching XP. He shows how the path to XP is both easy and hard: It can be started with fewer practices, and yet it challenges teams to go farther than ever.
    William Wake, independent consultant With new insights, wisdom from experience, and clearer explanations of the art of Extreme Programming, this edition of Beck s classic will help many realize the dream of outstanding software development.
    Joshua Kerievsky, author of "Refactoring to Patterns" and Founder, Industrial Logic, Inc. XP has changed the way our industry thinks about software development. Its brilliant simplicity, focused execution, and insistence on fact-based planning over speculation have set a new standard for software delivery.
    David Trowbridge, Architect, Microsoft Corporation

    Accountability. Transparency. Responsibility. These are not words that are often applied to software development.

    In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.

    The first edition of "Extreme Programming Explained" is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years. This completely rewritten second edition expands the scope of XP to teams of any size by suggesting a program of continuous improvement based on: Five core values consistent with excellence in software developmentEleven principles for putting those values into actionThirteen primary and eleven corollary practices to help you push development past its current business and technical limitations

    Whether you have a small team that is already closely aligned with your customers or a large team in a gigantic or multinational organization, you will find in these pages a wealth of ideas to challenge, inspire, and encourage you and your team members to substantially improve your software development.

    You will discover how to: Involve the whole team XP styleIncrease technical collaboration through pair programming and continuous integrationReduce defects through developer testingAlign business and technical decisions through weekly and quarterly planningImprove teamwork by setting up an informative, shared workspace

    You will also find many other concrete ideas for improvement, all based on a philosophy that emphasizes simultaneously increasing the humanity and effectiveness of software development.

    Every team can improve. Every team can begin improving today. Improvement is possible beyond what we can currently imagine. "Extreme Programming Explained, Second Edition, " offers ideas to fuel your improvement for years to come.
    "
    Author: Kent Beck ([@KentBeck](https://twitter.com/KentBeck))

    https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658

    ## The passionate Programmer
    Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product.

    The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas.

    You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths.

    As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general.

    Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.

    Author: Chad Fowler ([@chadfowler](https://twitter.com/chadfowler))

    https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U

    ## Beyond Legacy Code
    These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software—realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you’ll build software that’s easier and less costly to maintain and extend.

    By adopting these nine key technical practices, you’ll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code.

    Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.

    Author: David Scott Bernstein ([@ToBeAgile](https://twitter.com/ToBeAgile))

    https://www.amazon.com/Beyond-Legacy-Code-Practices-Software/dp/1680500791



  5. @wwerner wwerner created this gist Jun 16, 2016.
    169 changes: 169 additions & 0 deletions reading-list.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,169 @@

    # Read this. You'll like it
    ## The Pragmatic Programmer
    Straight from the programming trenches, The Pragmatic Programmer: From Journeyman to Master cuts through the increasing specialization and technicalities of modern software development to examine the core process—what do you do, as an individual and as a team, if you want to create software that’s easy to work with and good for your users.

    This classic title is regularly featured on software development “Top Ten” lists, and is issued by many corporations to new hires.

    Authors: Andy Hunt ([@pragmaticAndy](https://twitter.com/PragmaticAndy)), Dave Thomas ([@pragDave](https://twitter.com/pragdave))

    https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X

    ## Code Complete 2nd Edition

    Widely considered one of the best practical guides to programming, Steve McConnell s original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices and hundreds of new code samples illustrating the art and science of software construction. Capturing the body of knowledge available from research, academia, and everyday commercial practice, McConnell synthesizes the most effective techniques and must-know principles into clear, pragmatic guidance. No matter what your experience level, development environment, or project size, this book will inform and stimulate your thinking and help you build the highest quality code. Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity Reap the benefits of collaborative development Apply defensive programming techniques to reduce and flush out errors Exploit opportunities to refactor or evolve code, and do it safely Use construction practices that are right-weight for your project Debug problems quickly and effectively Resolve critical construction issues early and correctly Build quality into the beginning, middle, and end of your project

    Author: Steve McConnell ([@stevemconstrux](https://twitter.com/stevemconstrux))

    https://www.amazon.de/Code-Complete-Practical-Construction-Costruction/dp/0735619670

    ## The Software Craftsman
    Be a Better Developer and Deliver Better Code Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too and they behave accordingly. In "The Software Craftsman: Professionalism, Pragmatism, Pride, " Sandro Mancuso offers a better and more fulfilling path. If you want to develop software with pride and professionalism; love what you do and do it with excellence; and build a career with autonomy, mastery, and purpose, it starts with the recognition that you are a craftsman. Once you embrace this powerful mindset, you can achieve unprecedented levels of technical excellence and customer satisfaction. Mancuso helped found the world s largest organization of software craftsmen; now, he shares what he s learned through inspiring examples and pragmatic advice you can use in your company, your projects, and your career. You will learn
    Why agile processes aren t enough and why craftsmanship is crucial to making them work How craftsmanship helps you build software right and helps clients in ways that go beyond code How and when to say No and how to provide creative alternatives when you do Why bad code happens to good developers and how to stop creating and justifying it How to make working with legacy code less painful and more productive How to be pragmatic not dogmatic about your practices and tools How to lead software craftsmen and attract them to your organization What to avoid when advertising positions, interviewing candidates, and hiring developers How developers and their managers can create a true culture of learning How to drive true technical change and overcome deep patterns of skepticism Sandro Mancuso has coded for startups, software houses, product companies, international consultancies, and investment banks. In October 2013, he cofounded Codurance, a consultancy based on Software Craftsmanship principles and values. His involvement with Software Craftsmanship began in 2010, when he founded the London Software Craftsmanship Community (LSCC), now the world s largest and most active Software Craftsmanship community, with more than two thousand craftsmen. For the past four years, he has inspired and helped developers to organize Software Craftsmanship communities throughout Europe, the United States, and the rest of the world."

    Author: Sandro Mancuso ([@sandromancuso](https://twitter.com/sandromancuso))

    https://www.amazon.de/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501

    ## Implementing Domain-Driven Design
    Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations.

    Building on Eric Evans’ seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment.

    The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD’s “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals.

    Author: Vaughn Vernon ([@VaughnVernon](https://twitter.com/VaughnVernon))

    https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577

    ## Clean Code
    Even bad code can function. But if code isn t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn t have to be that way.
    Noted software expert Robert C. Martin presents a revolutionary paradigm with " Clean Code: A Handbook of Agile Software Craftsmanship ." Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and make you a better programmer but only if you work at it.
    What kind of work will you be doing? You ll be reading code lots of code. And you will be challenged to think about what s right about that code, and what s wrong with it. More importantly, you will be challenged to reassess your professional values and your commitment to your craft.
    " 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.

    Author: Robert C. Martin ([@unclebobmartin](https://twitter.com/unclebobmartin))

    https://www.amazon.de/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

    ## Ship It
    Ship It! is a collection of tips that show the tools and techniques a successful project team has to use, and how to use them well. You'll get quick, easy-to-follow advice on modern practices: which to use, and when they should be applied. This book avoids current fashion trends and marketing hype; instead, readers find page after page of solid advice, all tried and tested in the real world.

    Aimed at beginning to intermediate programmers, Ship It! will show you:


    Which tools help, and which don't How to keep a project moving Approaches to scheduling that work How to build developers as well as product What's normal on a project, and what's not How to manage managers, end-users and sponsors Danger signs and how to fix them Few of the ideas presented here are controversial or extreme; most experienced programmers will agree that this stuff works. Yet 50 to 70 percent of all project teams in the U.S. aren't able to use even these simple, well-accepted practices effectively. This book will help you get started.

    Ship It! begins by introducing the common technical infrastructure that every project needs to get the job done. Readers can choose from a variety of recommended technologies according to their skills and budgets. The next sections outline the necessary steps to get software out the door reliably, using well-accepted, easy-to-adopt, best-of-breed practices that really work.

    Finally, and most importantly, Ship It! presents common problems that teams face, then offers real-world advice on how to solve them.

    Authors: Jared Richardson ([@jaredrichardson](https://twitter.com/jaredrichardson)), William Gwaltney

    https://www.amazon.de/Ship-Practical-Successful-Pragmatic-Programmers/dp/0974514047

    ## Release It
    Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?
    If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
    In Release It!, Michael T. Nygard shows you how to design and architect your application for the harsh realities it will face. You'll learn how to design your application for maximum uptime, performance, and return on investment.
    Mike explains that many problems with systems today start with the design.

    Author: Michael Nygard ([@mtnygard](https://twitter.com/mtnygard))

    https://www.amazon.com/Release-Production-Ready-Software-Pragmatic-Programmers-ebook/dp/B00A32NXZO


    ## Specification by Example
    Summary

    Specification by Example is an emerging practice for creating software based on realistic examples, bridging the communication gap between business stakeholders and the dev teams building the software. In this book, author Gojko Adzic distills interviews with successful teams worldwide, sharing how they specify, develop, and deliver software, without defects, in short iterative delivery cycles.

    About the Technology

    Specification by Example is a collaborative method for specifying requirements and tests. Seven patterns, fully explored in this book, are key to making the method effective. The method has four main benefits: it produces living, reliable documentation; it defines expectations clearly and makes validation efficient; it reduces rework; and, above all, it assures delivery teams and business stakeholders that the software that's built is right for its purpose.

    About the Book

    This book distills from the experience of leading teams worldwide effective ways to specify, test, and deliver software in short, iterative delivery cycles. Case studies in this book range from small web startups to large financial institutions, working in many processes including XP, Scrum, and Kanban.

    This book is written for developers, testers, analysts, and business people working together to build great software.

    Purchase of the print book comes with an offer of a free PDF, ePub, and Kindle eBook from Manning. Also available is all code from the book.

    What's Inside

    Common process patterns How to avoid bad practices Fitting SBE in your process 50+ case studies For additional resources go to specificationbyexample.com

    Author: Gojko Adzic ([@gojkoadzic](https://twitter.com/gojkoadzic))

    https://www.amazon.com/Specification-Example-Successful-Deliver-Software/dp/1617290084

    ## Extreme Programming Explained
    In this second edition of "Extreme Programming Explained, " Kent Beck organizes and presents five years worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book.
    Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. The first edition of this book told us what XP was it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the why of XP, the motivations and the principles behind the practices. This is great stuff. Armed with the what and the why, we can now all set out to confidently work on the how: how to run our projects better, and how to get agile techniques adopted in our organizations.
    Dave Thomas, The Pragmatic Programmers LLC This book is dynamite! It was revolutionary when it first appeared a few years ago, and this new edition is equally profound. For those who insist on cookbook checklists, there s an excellent chapter on primary practices, but I urge you to begin by truly contemplating the meaning of the opening sentence in the first chapter of Kent Beck s book: XP is about social change. You should do whatever it takes to ensure that every IT professional and every IT manager all the way up to the CIO has a copy of "Extreme Programming Explained" on his or her desk.
    Ed Yourdon, author and consultant XP is a powerful set of concepts for simplifying the process of software design, development, and testing. It is about minimalism and incrementalism, which are especially useful principles when tackling complex problems that require a balance of creativity and discipline.
    Michael A. Cusumano, Professor, MIT Sloan School of Management, and author of "The Business of Software" "Extreme Programming Explained" is the work of a talented and passionate craftsman. Kent Beck has brought together a compelling collection of ideas about programming and management that deserves your full attention. My only beef is that our profession has gotten to a point where such common-sense ideas are labeled extreme. ...
    Lou Mazzucchelli, Fellow, Cutter Business Technology Council If your organization is ready for a change in the way it develops software, there s the slow incremental approach, fixing things one by one, or the fast track, jumping feet first into Extreme Programming. Do not be frightened by the name, it is not that extreme at all. It is mostly good old recipes and common sense, nicely integrated together, getting rid of all the fat that has accumulated over the years.
    Philippe Kruchten, UBC, Vancouver, British Columbia Sometimes revolutionaries get left behind as the movement they started takes on a life of its own. In this book, Kent Beck shows that he remains ahead of the curve, leading XP to its next level. Incorporating five years of feedback, this book takes a fresh look at what it takes to develop better software in less time and for less money. There are no silver bullets here, just a set of practical principles that, when used wisely, can lead to dramatic improvements in software development productivity.
    Mary Poppendieck, author of "Lean Software Development: An Agile Toolkit" Kent Beck has revised his classic book based on five more years of applying and teaching XP. He shows how the path to XP is both easy and hard: It can be started with fewer practices, and yet it challenges teams to go farther than ever.
    William Wake, independent consultant With new insights, wisdom from experience, and clearer explanations of the art of Extreme Programming, this edition of Beck s classic will help many realize the dream of outstanding software development.
    Joshua Kerievsky, author of "Refactoring to Patterns" and Founder, Industrial Logic, Inc. XP has changed the way our industry thinks about software development. Its brilliant simplicity, focused execution, and insistence on fact-based planning over speculation have set a new standard for software delivery.
    David Trowbridge, Architect, Microsoft Corporation

    Accountability. Transparency. Responsibility. These are not words that are often applied to software development.

    In this completely revised introduction to Extreme Programming (XP), Kent Beck describes how to improve your software development by integrating these highly desirable concepts into your daily development process.

    The first edition of "Extreme Programming Explained" is a classic. It won awards for its then-radical ideas for improving small-team development, such as having developers write automated tests for their own code and having the whole team plan weekly. Much has changed in five years. This completely rewritten second edition expands the scope of XP to teams of any size by suggesting a program of continuous improvement based on: Five core values consistent with excellence in software developmentEleven principles for putting those values into actionThirteen primary and eleven corollary practices to help you push development past its current business and technical limitations

    Whether you have a small team that is already closely aligned with your customers or a large team in a gigantic or multinational organization, you will find in these pages a wealth of ideas to challenge, inspire, and encourage you and your team members to substantially improve your software development.

    You will discover how to: Involve the whole team XP styleIncrease technical collaboration through pair programming and continuous integrationReduce defects through developer testingAlign business and technical decisions through weekly and quarterly planningImprove teamwork by setting up an informative, shared workspace

    You will also find many other concrete ideas for improvement, all based on a philosophy that emphasizes simultaneously increasing the humanity and effectiveness of software development.

    Every team can improve. Every team can begin improving today. Improvement is possible beyond what we can currently imagine. "Extreme Programming Explained, Second Edition, " offers ideas to fuel your improvement for years to come.
    "
    Author: Kent Beck ([@KentBeck](https://twitter.com/KentBeck))

    https://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0321278658

    ## The passionate Programmer
    Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skills themselves are a product.

    The choices you make about which technologies to focus on and which business domains to master have at least as much impact on your success as your technical knowledge itself--don't let those choices be accidental. We'll walk through all aspects of the decision-making process, so you can ensure that you're investing your time and energy in the right areas.

    You'll develop a structured plan for keeping your mind engaged and your skills fresh. You'll learn how to assess your skills in terms of where they fit on the value chain, driving you away from commodity skills and toward those that are in high demand. Through a mix of high-level, thought-provoking essays and tactical "Act on It" sections, you will come away with concrete plans you can put into action immediately. You'll also get a chance to read the perspectives of several highly successful members of our industry from a variety of career paths.

    As with any product or service, if nobody knows what you're selling, nobody will buy. We'll walk through the often-neglected world of marketing, and you'll create a plan to market yourself both inside your company and to the industry in general.

    Above all, you'll see how you can set the direction of your career, leading to a more fulfilling and remarkable professional life.

    Author: Chad Fowler ([@chadfowler](https://twitter.com/chadfowler))

    https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U

    ## Beyond Legacy Code
    These nine practices could save the software industry. Beyond Legacy Code is filled with practical, hands-on advice and a common-sense exploration of why technical practices such as refactoring and test-first development are critical to building maintainable software. Discover how to avoid the pitfalls teams encounter when adopting these practices, and how to dramatically reduce the risk associated with building software—realizing significant savings in both the short and long term. With a deeper understanding of the principles behind the practices, you’ll build software that’s easier and less costly to maintain and extend.

    By adopting these nine key technical practices, you’ll learn to say what, why, and for whom before how; build in small batches; integrate continuously; collaborate; create CLEAN code; write the test first; specify behaviors with tests; implement the design last; and refactor legacy code.

    Software developers will find hands-on, pragmatic advice for writing higher quality, more maintainable, and bug-free code. Managers, customers, and product owners will gain deeper insight into vital processes. By moving beyond the old-fashioned procedural thinking of the Industrial Revolution, and working together to embrace standards and practices that will advance software development, we can turn the legacy code crisis into a true Information Revolution.

    Author: David Scott Bernstein ([@ToBeAgile](https://twitter.com/ToBeAgile))

    https://www.amazon.com/Beyond-Legacy-Code-Practices-Software/dp/1680500791