Clumps Switch Statements Temporary Field Refused Bequest Alternative Classes with Different Interfaces Divergent Change Shotgun Surgery Parallel Inheritance Hierarchies Comments Duplicate Code Lazy Class Data Class Dead Code Speculative Generality Feature Envy Inappropriate Intimacy Message Chains Middle Man Incomplete Library Class photo by pete fabian Classic Smells
Clumps Switch Statements Temporary Field Refused Bequest Alternative Classes with Different Interfaces Divergent Change Shotgun Surgery Parallel Inheritance Hierarchies Comments Duplicate Code Lazy Class Data Class Dead Code Speculative Generality Feature Envy Inappropriate Intimacy Message Chains Middle Man Incomplete Library Class photo by pete fabian Classic Smells Bloaters Change Preventers Dispensables Couplers OO Abusers
www.youtube.com/watch?v=59YClXmkCVM Sandi Metz - Get a whiff of this Katrina Owen - Succession www.youtube.com/watch?v=DC-pQPq0acs Ben Orenstein - From Good to Great
the least interesting data points to consider when weighing the cost and benefit of a feature. Kris Gale Former VP Eng, Yammer firstround.com/review/The-one-cost-engineers-and-product-managers-dont-consider/
documentation that you need to maintain • Less training • Less ongoing maintenance • Less specialty knowledge • Gives you more time to focus on the real value you can deliver
that running them at 80% meant that they could slip projects into the pipeline on short notice and ultimately sell more. Adam Pisoni Former CTO, Yammer firstround.com/review/Responsiveness-New-Efficiency/