General terms
Some concepts underpin every language, framework, and paradigm in software development. This category captures the foundational vocabulary — from data types and memory models to recursion, abstraction, and computational complexity — that every developer needs regardless of their specialisation. If a term does not fit neatly elsewhere, it probably belongs here.
More on General
History
General software development practices emerged from early computing in the 1950s–60s, when ad hoc approaches gave way to formal methodologies as systems grew in complexity. Key milestones include the 1968 NATO Software Engineering Conference, which established "software engineering" as a discipline, and the subsequent rise of structured programming in the 1970s–80s as a response to maintenance crises. The Agile Manifesto (2001) marked a shift toward iterative, human-centered practices, while the 2000s brought widespread adoption of code review, automated testing, and continuous integration as baseline standards. Today's landscape emphasizes developer experience, security-first design patterns (zero trust, defence in depth), and organizational practices like blameless culture and decision documentation, reflecting lessons learned from decades of scaling challenges and a recognition that software quality depends on both technical architecture and team dynamics.
Key concepts
- Separation of Concerns
- Single Responsibility Principle
- Code Review
- Refactoring
- ACID Properties
- Dependency Management Philosophy
- Code Documentation
Best references
-
Design Patterns: Elements of Reusable Object-Oriented Software The canonical Gang of Four reference covering foundational patterns (Factory, Adapter, Observer, Singleton, Strategy, Decorator) that appear throughout this category.
-
OWASP Top 10 Web Application Security Risks Essential reference for input validation, attack surface, defence in depth, and penetration testing concepts covered in the security-related terms.
-
Release It!: Design and Deploy Production-Ready Software Authoritative guide on code freeze, release management, runbooks, and error recovery patterns in production environments.
-
Building Microservices: Designing Fine-Grained Systems Core reference for architectural patterns, separation of concerns, Conway's Law, and team structure (feature vs component teams).
-
Accelerate: The Science of Lean Software and DevOps Evidence-based research on technical practices, cognitive load, developer experience, and metrics (Goodhart's Law) affecting engineering effectiveness.
Typed relationships here
Edges touching a General term. How edges work →
- Runbooks & Playbooks Mitigates Bus Factor 12h
- Runbooks & Playbooks Often seen in Incident Response 12h
- Repository Pattern Often seen in MVC Pattern 12h
- Repository Pattern Often seen in Domain-Driven Design (DDD) 12h
- Graph Databases Often seen in Polyglot Persistence 5d