Devoxx Greece 2024 - Socio-Technical Smells: How Technical Problems Cause Organizational Friction

Discover how technical problems can cause organizational friction and learn how to identify and prioritize code quality issues.

Key takeaways
  • Technical problems can cause organizational friction, making it harder to onboard new team members.
  • Code quality issues amplify organizational problems, leading to increased costs and delays.
  • Change coupling is problematic when it violates architectural principles, making it difficult to spot overall patterns in the code.
  • Cohesion is crucial: a lack of cohesion in code can lead to increased coordination, slower development, and higher cognitive load.
  • Gut clauses, which centralize behavior, can become congested and difficult to change, making it hard to onboard new team members.
  • The track factor, or the number of people needed to understand a codebase, is important: React has a track factor of 2 people, while Vue has a much higher track factor of 4-7 people.
  • Behavioral code analysis can help identify technical debt and prioritize improvements.
  • Code changes for a reason, and software architecture should make these changes easy to implement.
  • Non-trivial programs often have many dependencies, making it important to prioritize improvements to unhealthy code with a lower track factor.
  • External dependencies, such as third-party libraries, can also increase the risk of technical debt and complexity.
  • Shotgun surgery, or trying to fix multiple problems at once, can be expensive and ineffective.
  • The people side of code is important: getting this wrong can kill projects, and neglecting to onboard new team members can lead to increased coordination and slower development.