78 books like Producing Open Source Software

By Karl Fogel,

Here are 78 books that Producing Open Source Software fans have personally recommended if you like Producing Open Source Software. Shepherd is a community of 11,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of The Design of Everyday Things

Jamie Steane Author Of The Principles and Processes of Interactive Design

From my list on aspiring UX/UI designers in the digital age.

Why am I passionate about this?

I would like to consider myself an experienced and successful designer, researcher, and educator. I'm an Associate Professor in Communication Design and the Head of Education for the School of Design at Northumbria University in the United Kingdom, where I've taught and researched for the last twenty years so I'm super passionate about this subject and love explaining how design works. Before joining academia, I worked internationally as a designer and creative director for numerous prestigious design and media organizations, including Philips, Time-Warner, Windmill Lane Pictures, and WPP in the UK, Ireland, USA, and Southeast Asia. Working in these different businesses and locations gave me a broad perspective on the role and importance of design.

Jamie's book list on aspiring UX/UI designers in the digital age

Jamie Steane Why did Jamie love this book?

This essential book by Don Norman does not need any more plugging, but it would be impossible to leave it out.

The book forms a brilliant introduction to User Experience Design by explaining how the design of everyday objects relies on an intuitive understanding of how they work. Once we translate this thinking from the physical to the digital world, we are halfway there as UX/UI designers.

By Don Norman,

Why should I read it?

4 authors picked The Design of Everyday Things as one of their favorite books, and they share why you should read it.

What is this book about?

Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door. The fault, argues this ingenious,even liberating,book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization. The Design of Everyday Things shows that good, usable design is possible. The…


Book cover of Peopleware: Productive Projects and Teams

Mike McQuaid Author Of Git in Practice

From my list on becoming a great open source software engineer.

Why am I passionate about this?

I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.

Mike's book list on becoming a great open source software engineer

Mike McQuaid Why did Mike love this book?

This is the oldest book on my list and is the most underrated. It describes, with serious rigour and detail, how to run more effective software projects and teams.

Most of this advice has been ignored by most of the industry for most of the time but it’s a big part of the reason I’ve worked from home for 14 years and am as productive as I am today.

By Tom DeMarco, Timothy Lister,

Why should I read it?

2 authors picked Peopleware as one of their favorite books, and they share why you should read it.

What is this book about?

Demarco and Lister demonstrate that the major issues of software development are human, not technical. Their answers aren't easy--just incredibly successful. New second edition features eight all-new chapters. Softcover. Previous edition: c1987. DLC: Management.


Book cover of Working in Public: The Making and Maintenance of Open Source Software

Mike McQuaid Author Of Git in Practice

From my list on becoming a great open source software engineer.

Why am I passionate about this?

I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.

Mike's book list on becoming a great open source software engineer

Mike McQuaid Why did Mike love this book?

I was lucky enough to read an early draft of this book and it’s simply the best analysis of the open-source software ecosystem around today.

The writing style is friendly and not formal despite the academic-level research that went into this book. It made me think differently about the open-source projects I maintain and how I interact and chose those I use.

By Nadia Eghbal,

Why should I read it?

1 author picked Working in Public as one of their favorite books, and they share why you should read it.

What is this book about?

An inside look at modern open source software development and its influence on our online social world.

Open source software, in which developers publish code that anyone can use, has long served as a bellwether for other online behavior. In the late 1990s, it provided an optimistic model for public collaboration, but in the last 20 years it’s shifted to solo operators who write and publish code that's consumed by millions.

In Working in Public, Nadia Eghbal takes an inside look at modern open source software development, its evolution over the last two decades, and its ramifications for an internet…


Book cover of Ship It!: A Practical Guide to Successful Software Projects

Mike McQuaid Author Of Git in Practice

From my list on becoming a great open source software engineer.

Why am I passionate about this?

I’ve been a professional software engineer and maintaining open-source software for 16 years. My work on open source has been heavily informed by industry best practises and my work on proprietary software has been heavily informed by open source best practises. Without these books, I’d be a worse engineer on many dimensions. Some of them may feel antiquated but all are still full of relevant wisdom for every open-source (and proprietary) software engineer today.

Mike's book list on becoming a great open source software engineer

Mike McQuaid Why did Mike love this book?

Another book that predates GitHub but provides a lot of actionable advice today that’s been mostly ignored across much of our industry.

Hard problems like “why isn’t my software project reliable?” are tackled head-on and addressed here. It was an early nudge for me to automate as much as possible in software projects and not ignore difficult problems with project organisation in favour of “fun” technical tasks.

By Jared Richardson, William A Gwaltney,

Why should I read it?

1 author picked Ship It! as one of their favorite books, and they share why you should read it.

What is this book about?

"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…


Book cover of 201 Principles of Software Development

Karl Wiegers Author Of Software Development Pearls: Lessons from Fifty Years of Software Experience

From my list on lessons about software development.

Why am I passionate about this?

I first learned to program in college in 1970. Since then I’ve spent much time as a software developer, manager, tester, process improvement leader, consultant, trainer, author, and, of course, a user. I quickly learned that I didn’t have time to make all the mistakes that every software developer before me had already made. My training and writing career has involved sharing what I and others have learned with audiences to help them quickly become more effective software development team members, regardless of their project role. This book distills insights and observations both from my own experience and from what I’ve heard from thousands of students and consulting clients.

Karl's book list on lessons about software development

Karl Wiegers Why did Karl love this book?

Many of the most significant principles of effective software development are timeless. They’re independent of the development life cycle or model, programming language, application type, and so forth. Although this book is quite a few years old now, nearly all of its contents are still valid. The 201 principles cover the full spectrum of software engineering: general principles, requirements engineering, design, coding, testing, management, product assurance, and evolution. The descriptions of each principle are concise, whereas my 60 lessons in Software Development Pearls go into a great deal more detail and offer many practical techniques.

There’s an unfortunate tendency among young software people to disregard knowledge from the past as irrelevant to them. That’s not correct. This book can help close significant gaps in any practicing software developer’s knowledge.

By Alan M. Davis,

Why should I read it?

1 author picked 201 Principles of Software Development as one of their favorite books, and they share why you should read it.

What is this book about?

This text defines governing principles for software development, assumptions that work regardless of tools used, to keep software projects from costing too much, taking too long and disappointing users.


Book cover of Code Complete: A Practical Handbook of Software Construction

Rod Stephens Author Of Beginning Software Engineering

From my list on making you a better software developer.

Why am I passionate about this?

During my career, I’ve worked on projects large and small (1 - 60+ people) in a wide variety of fields (like repair dispatch, ticket sales, and professional football coaching--the NFL kind not the FIFA kind). All of them, and particularly the big ones, were like antique clocks: they had lots of moving pieces and if any piece broke, the whole thing wouldn’t work. (Unfortunately, failed software projects don’t look nice on your mantelpiece.) In this list, I’ve tried to pick some books that you might not discover if you look only for programming books. Read those, too, but don’t ignore the more human-oriented dimensions of software development. Hopefully you’ll find these choices interesting and useful.

Rod's book list on making you a better software developer

Rod Stephens Why did Rod love this book?

Software engineering involves several phases such as requirements gathering, design, programming, testing, and deployment.

This book explains techniques that allow you to build quality and robustness into every phase of the process. It discusses design, classes, defensive programming, collaboration, refactoring, and more.

The book uses many examples in an assortment of languages but the concepts apply to any programming language. In fact, the main themes like building error detection into every step of the process generalize to even non-programming parts of the development process.

If you’re an experienced developer, you may have discovered some of this book’s ideas elsewhere or even on your own, but you only need to pick up one or two new tidbits to make the book worthwhile.

By Steve McConnell,

Why should I read it?

1 author picked Code Complete as one of their favorite books, and they share why you should read it.

What is this book about?

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…


Book cover of Domain-Driven Design: Tackling Complexity in the Heart of Software

Alexander Granin Author Of Functional Design and Architecture

From my list on domain modeling.

Why am I passionate about this?

If someone had told me during my early professional years that I would become a strong advocate for functional programming and the author of a fundamental book on functional software engineering, I would have found it hard to believe. Was functional programming truly worth dedicating my life to? However, once I experienced the sheer beauty of functional programming, there was no turning back. I delved deep into Haskell and functional C++, and began writing articles, giving talks, and developing various technologies. I realized that I possessed a truly unique perspective on approaching software engineering in functional languages, and that there was a significant knowledge gap that needed to be filled for the benefit of all.

Alexander's book list on domain modeling

Alexander Granin Why did Alexander love this book?

My journey in the world of software development has been arduous and challenging.

One of the common struggles we all face is the overwhelming number of solutions available, making it impossible to fully grasp everything at a deep level.

Just when I thought I had mastered an approach and felt competent in it, a new shiny approach would emerge, demanding my immediate attention. It often felt like a never-ending race to keep up with the ever-evolving field.

This constant pursuit of staying relevant as a software engineer can be frustrating, as it feels like we are always lagging behind the rapidly advancing world. I discovered that knowledge of specific technologies, frameworks, or libraries does not easily transfer across different technology stacks. They are too specific and lack universality. It was then that I turned my focus to more general principles of software engineering.

I realized that there are fundamental engineering…

By Eric Evans,

Why should I read it?

2 authors picked Domain-Driven Design as one of their favorite books, and they share why you should read it.

What is this book about?

Incorporate effective domain modeling into the software development process

Software design thought leader and founder of Domain Language, Eric Evans, provides a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains. Intertwining system design and development practice, this book incorporates numerous examples based on actual projects to illustrate the application of domain-driven design to real-world software modeling and development.

Domain Model: Part I outlines the goals of domain-driven development, defines terms, and gives an overview of the implications of using the…


Book cover of Software Engineering at Google: Lessons Learned from Programming Over Time

Chris Zimmerman Author Of The Rules of Programming: How to Write Better Code

From my list on programming for people who want to be good at it.

Why am I passionate about this?

I’ve spent most of my life writing code—and too much of that life teaching new programmers how to write code like a professional. If it’s true that you only truly understand something after teaching it to someone else, then at this point I must really understand programming! Unfortunately, that understanding has not led to an endless stream of bug-free code, but it has led to some informed opinions on programming and books about programming.

Chris' book list on programming for people who want to be good at it

Chris Zimmerman Why did Chris love this book?

A thoroughly fascinating (and fascinatingly thorough) look at engineering practices at Google.

It’s an encyclopedia written by a bunch of authors, so some of the chapters are a little dry, but for those of us who aren’t on teams with 25,000 engineers it’s spell-binding to see what programming at that sort of scale looks like. Some of the chapters prompted us to think really hard about the way we do things at Sucker Punch.

By Titus Winters, Tom Manshreck, Hyrum Wright

Why should I read it?

2 authors picked Software Engineering at Google as one of their favorite books, and they share why you should read it.

What is this book about?

Today, software engineers need to know not only how to program effectively but also how to develop proper engineering practices to make their codebase sustainable and healthy. This book emphasizes this difference between programming and software engineering.

How can software engineers manage a living codebase that evolves and responds to changing requirements and demands over the length of its life? Based on their experience at Google, software engineers Titus Winters and Hyrum Wright, along with technical writer Tom Manshreck, present a candid and insightful look at how some of the world's leading practitioners construct and maintain software. This book covers…


Book cover of Designing Secure Software: A Guide for Developers

Adam Shostack Author Of Threat Modeling: Designing for Security

From my list on application security for builders.

Why am I passionate about this?

Being able to understand and change reality through our knowledge and skill is literal magic. We’re building systems with so many exciting and unexpected properties that can be exploited and repurposed for both good and evil. I want to keep some of that magic and help people engineer – build great systems that make people’s lives better. I’ve been securing (and breaking) systems, from operating rooms to spaceships, from banks to self-driving cars for over 25 years. The biggest lesson I’ve learned is that if security is not infused from the start, we’re forced to rely on what ought to be our last lines of defense. This list helps you infuse security into your systems.

Adam's book list on application security for builders

Adam Shostack Why did Adam love this book?

Loren’s been contributing to security for over 40 years, and this book captures his hard-won wisdom in a way that’s both humble and accessible. It scales from principles and design approaches to in-depth explanations of exactly how things go wrong and how to avoid those problems. (Also, I was honored to write the foreword.)

By Loren Kohnfelder,

Why should I read it?

1 author picked Designing Secure Software as one of their favorite books, and they share why you should read it.

What is this book about?

Designing Secure Software consolidates Loren Kohnfelder's more than twenty years of experience into a concise, elegant guide to improving the security of technology products. Written for a wide range of software professionals, it emphasizes building security into software design early and involving the entire team in the process. The book begins with a discussion of core concepts. The second part, perhaps this book's most important contribution, covers the process of designing and reviewing a software design with security considerations in mind. The final section details the most common coding flaws that create vulnerabilities, making copious use of code snippets written…


Book cover of The Security Development Lifecycle

Nancy R. Mead Author Of Cyber Security Engineering: A Practical Approach for Systems and Software Assurance

From my list on software security engineering.

Why am I passionate about this?

As a kid, I used to do all the math problems in my textbooks just for fun, even if they weren’t part of a homework assignment. My grandchildren cringe when I tell them this. I am a researcher and educator in secure software engineering and have enjoyed a productive career in software development and management, software engineering and software security research, and software and secure software engineering education.  

Nancy's book list on software security engineering

Nancy R. Mead Why did Nancy love this book?

This is one of the first books resulting from the Microsoft security “push,” and it’s a classic. It’s of interest both in understanding how Microsoft went about tackling the problem of developing secure software, and as a backdrop for the evolution of secure software development practices that emerged at Microsoft and other major software vendors.   

By Michael Howard, Steve Lipner,

Why should I read it?

1 author picked The Security Development Lifecycle as one of their favorite books, and they share why you should read it.

What is this book about?

Your customers demand and deserve better security and privacy in their software. This book is the first to detail a rigorous, proven methodology that measurably minimizes security bugs-the Security Development Lifecycle (SDL). In this long-awaited book, security experts Michael Howard and Steve Lipner from the Microsoft Security Engineering Team guide you through each stage of the SDL-from education and design to testing and post-release. You get their first-hand insights, best practices, a practical history of the SDL, and lessons to help you implement the SDL in any development organization.

Discover how to:

Use a streamlined risk-analysis process to find security…


5 book lists we think you will like!

Interested in software, software engineering, and software development?

Software 61 books