Choose Format

Download the "Software Engineering: The Soft Parts" book (~50 pages)

In "Software Engineering - The Soft Parts" Addy Osmani shares lessons from his first 10 years at Google on the "soft skills" that can help engineers become effective and scale their effectiveness. This guidance should help junior, mid-career and even senior developers move forward, deal with changing technology, and navigate building non-trivial systems.
book cover

Full table of contents

  • Prologue
  • About the Author
  • Learning New Things
  • Mastery
  • Think critically and formulate well-reasoned arguments
  • Building a strong base
  • Transferable skills
  • Efficiency
  • Better decision-making
  • Focus on the User and the rest will follow
  • Upgrading your skills
  • Depth and breadth of skills
  • To experience is to learn
  • Technical Complexity
  • Generic vs Specific code
  • Deep modules
  • Learning on a maintenance project
  • Learning on a green-field project
  • Definition of done
  • Phased roll-outs
  • Systematic debugging
  • Communication
  • Importance of design docs
  • Documentation process
  • Communication
  • Customized communication
  • Being kind and considerate
  • Be liberal in telling folks they're doing a great job.
  • The power of NO
  • Acceptance and respect
  • Information sharing
  • Flexibility
  • Maintaining a record
  • Good faith
  • Seniority
  • Seniority and strategic thinking
  • Leading by example
  • Scale your effectiveness.
  • Imposter syndrome
  • Effective Teams
  • Building Trust
  • Understanding the business model
  • Increase your impact
  • Mentoring
  • Mentoring others
  • Organization-wide mentoring
  • Mentee's role
  • Time and Work/Life Balance
  • Time management
  • Conclusion

Book summary

"Software Engineering - The Soft Parts" by Addy Osmani is a comprehensive guide for software engineers who want to enhance their non-technical skills and become more effective in their jobs. The book covers a range of topics, from communication and collaboration to time management and work-life balance.

One of the key takeaways from the book is the importance of communication skills. Osmani emphasizes the need for software engineers to be able to communicate effectively with team members, stakeholders, and customers. He provides practical tips for improving communication skills, such as active listening, asking questions, and providing clear and concise feedback.

Another important topic covered in the book is collaboration. Software engineering is a team sport, and engineers need to be able to work effectively with others to achieve project goals. Osmani provides guidance on how to build trust, establish clear roles and responsibilities, and resolve conflicts in a productive way.

In addition to communication and collaboration, the book also covers time management, work-life balance, and the importance of understanding the business impact of software engineering. Osmani provides practical tips for managing time effectively, including how to optimize your calendar for deep work and avoid fracturing your working hours.

Overall, "Software Engineering - The Soft Parts" is a must-read for any software engineer who wants to take their career to the next level. With its practical advice and real-world examples, the book provides a roadmap for building the non-technical skills that are critical for success in the field.