Some are old-school classics, others are fresh onto the digital shelves. As a senior-to-lead engineer, you have the experience to critically revisit the main books on Software Engineering, Product Design, and Development. This also means you’re now able to extract new learnings, grounded on your own experiences. Here’s our quick list of recommendations.
Building and Managing High-Performance Distributed Teams, by Alberto Silveira
From a practical standpoint, learn how to apply proven techniques for the product roadmap, software engineering, and team performance management without leaving the human factor behind. Silveira updates renowned best practices to the new work-from-anywhere reality of distributed teams. The book will teach you how improving team morale and productivity should be done in a post-pandemic world.
Peopleware, by Timothy Lister and Tom DeMarco
An old-but-gold classic first published in 1987, Peopleware remains relevant due to its focus on collaboration within and beyond teams. It recognizes that great products are structured around three core factors: hardware, software, and peopleware. As published in O’Reilly, “Their premise is right: most software project problems are sociological, not technological. The insights on team jelling and work environment have changed my thinking and teaching. The third edition adds strength to strength.” Buy it here.
The Manager’s Path, by Camille Fournier
This how-to book helps new and aspiring leaders to combine technical expertise and people management skills to inspire, guide, and empower their teams. Read The Manager’s Path to understand the markings of a good tech lead, and how to manage individuals while remaining focused on the whole team (or teams).
Lean Inception, by Paulo Caroli
As presented by the author (and forwarded by Martin Fowler): lean inception is the effective combination of Design Thinking and Lean Startup. Read this to help you establish what your Minimum Viable Product (MVP) should be like. The book guides you in executing a collaborative workshop that will help a group of people — typically an agile team, a squad, or a product team — understand, align and plan your next product. Learn more here.
Clean Architecture, by Robert Cecil Martin
Uncle Bob understood that although all architectures vary somewhat in their details, they all have the same goal: separating concerns. “They all achieve this separation by dividing the software into layers. Each has at least one layer for business rules, and another for interfaces.”. Read here how you can organize to comply and meet Enterprise Business rules, Application Business rules, Interface Adapters, and Frameworks.
Test-Driven Development, by Kent Beck
Rich in examples, Beck’s book has “the elimination of fear” as a mission. The author believes that programmers build better software when they have the freedom to be creative. To empower this, he advises engineers to build tests even before coding begins – thus, ensuring the success of their software from the outset. More on Pearson’s website.
Designing Data-Intensive Applications, by Martin Kleppmann
There are a lot of buzzwords concerning data storage, management, and use. Kleppmann compares different tools and approaches, presents the strengths and weaknesses of each. The book combines the theory and practice of both enterprises and startups so you can decide what will make your software truly reliable, scalable, and maintainable.
Building Microservices, by Sam Newman
The Hallmark book for Distributed Systems. More and more software companies are shifting from monolithic applications to smaller, self-contained microservices, increasing reliability, but also complexity. Newman brings key guidelines for building, managing, and scaling microservices architectures. Visit the publisher for the full table of contents.
Refactoring, by Martin Fowler, with Kent Beck
Effectiveness is the word of the day. The book was written as a go-to guide on how to transform code with a safe and rapid process, vital to keeping it cheap and easy to modify for future needs. Unsure on how to improve your codebase? Have a look at the 70 refactorings examples, their detailed descriptions. The info on motivation for doing them and the mechanics of how to do them safely will help you make your decisions on how to move forward. Check the book’s website here.
What did you think about our list? Let us know if we should make any additions to this list, or feel free to pitch us a new article!