List of software development philosophies - Wikipedia

Core Topics

Foundations

Design Principles & Concepts

Object-Oriented Design

Object-Oriented Design - Core ideas of good OOP: invariants, encapsulation, cohesion, coupling, polymorphism, and SOLID principles

Design Principles

Design Principles - Prescriptive guidelines on HOW to design software

Fundamental Principles:

SOLID Principles:

  • SOLID Principles - Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion

Design Concepts

Design Concepts - Fundamental ideas that explain WHY design principles matter

Core Concepts:

  • Invariants - Mathematical foundation of OOP, justifies class existence
  • Inversion of Control - Framework-controlled flow vs traditional control
  • Software Design - Design stamina hypothesis, internal vs external quality, coupling, cohesion

Design Patterns

Design Patterns - Specific, reusable solutions to common design problems

Classic Patterns:

  • Strategy - Encapsulate algorithms and make them interchangeable
  • Observer - Define one-to-many dependencies for automatic notification
  • GRASP - General Responsibility Assignment Software Patterns

Architectural Patterns:

Pattern Resources:

  • Patterns - Organized collection of patterns, principles, and paradigms

Code Quality

Writing Code

  • Writing Good Code - Application services, use cases, repository pattern, DDD in practice
  • Code Smells - Bad abstractions, poorly factored domains, pass-through methods
  • Tidyings - Small incremental improvements (guard clauses, explaining variables, cohesion order)

Refactoring

Code Review

Development Practices

Testing & Quality

Organizational Practices

Team Practices

Delivery Management

  • Feature Flags - Separate deployment from release, progressive rollouts
  • Technical Debt - Strategic debt management, Broken Windows theory

Security & Robustness

Functional Programming

Additional Resources

24 Key Capabilities to Drive Improvement in Software Delivery - IT Revolution

Can and Should Instead of Is and Get

DevOps Handbook accompanying materials

bk_acx0_285177.pdf

See Also

  • Testing - Testing strategies and best practices
  • Delivery - Team processes and delivery patterns
  • DORA - DevOps metrics and performance

Reading List

Back to

  • Notes - All engineering notes

25 items under this folder.