- Agile – A software development method that defers major design decisions until it’s too late to do it any other way
- AS2 – A meta-protocol designed to convey wealth from the buyer of AS2 software to the seller without any accidental reciprocation of value
- AOP (Aspect Oriented Programming) – A programming technique, plus language features, for separating concerns–as long as the concern happens to be logging
- Big Design Up Front – A software development technique that casts a design in stone before the chiseling has begun
- Bytecode (AKA P-code) – Machine language for an imaginary machine. MSIL – Machine language for an imaginary machine that just happens to be the x86
- CASE (Computer-Aided Software Engineering) – A grown-ups version of SimCity that won’t get you fired
- Cloud – Computers with a higher TCO than those you own yourself
- Code Review – A practice for discovering code worthy of submitting to thedailywtf.com
- CSS – A typesetting language designed to be abused for layout
- Declarative Programming – A language feature for placing policy and logic in areas inaccessible to debuggers
- Design By Contract – A programming technique, plus language features, for throwing exceptions early
- Distributed Computing – Using multiple, networked computers to reconcile datasets that have been broken up and munged on multiple, networked computers
- DRY (Don’t Repeat Yourself) – A principle used by novice programmers to justify the creation of gigantic “utility” classes
- DSL (Domain Specific Language) – A programming or markup language designed by non-language designers
- EDI (Electronic Document Interchange) – A document standard for creating incompatible business messages
- Enterprise – Software priced according to how much money you have
- Evidence Based Scheduling – Estimating development time by measuring bathroom, lunch and smoke breaks
- Functional Programming – Language features or paradigm that maximizes the use of nested parens
- Hello World – A metric for judging how impatient the language designer was
- IDE (Integrated Development Environment) – A code editor with a seamless front-end for the compiler, debugger, documentation, and vendor’s upsell
- Java – A C derivative powering major banks and institutions such as Bear Sterns, Lehman Brothers, AIG, Washington Mutual and Iceland
- Key-Value Store (AKA hash table) – A very scalable data storage model that transfers the burden of maintaining indexes and relational integrity from the database to the developer
- KISS (Keep It Simple, Stupid) – A philosophy that encourages coding only what the dumbest developer understands
- Lambdas – Hit-and-Run programming
- LINQ (Language INtegrated Queries) – Functional extensions to .Net languages, designed to be mistaken for another ADO.Net replacement
- Map/Reduce – A programming technique for making an entire building full of cheap PCs behave like a departmental mainframe
- MVC (Model-View-Controller) – The division of data representation, its presentation, and business logic, as applied to whatever code the developer feels like calling it
- .Net (“dot net”) – A strategy by Microsoft to hide their best work from reasonably phrased Google queries
- OOP (Object Oriented Programming) – A language feature for converting boxes drawn on whiteboards into compilable code as literally as possible
- ORM (Object Relational Mapping) – Hiding the features of a relational database behind an impotent machine-generated abstraction
- Pair Programming – A way to discourage surfing the web when you’re supposed to be working
- Perl – A utility and scripting language with built-in obfuscation
- PHP – Perl for web pages, but without the discipline or foresight
- Procedural Programming – A language feature for hiding GOTOs behind names
- RAD (Rapid Application Development) – Shortening development time by putting the entire program in Form1.vb
- Refactoring – Fixing what isn’t broken
- Relational model – A way of representing data in terms of its relation to surrogate keys
- Scrum – Part of the Agile process that ensures development is in agreement with the strongest personality at the table
- SOA (Service Oriented Architecture) – A way to isolate the greater system from the incompetence of one team or developer
- TDD (Test Driven Development) – An approach to programming that doubles the coding effort in exchange for proving the inverse of the Halting Problem
- UML (Unified Modeling Language) – Writing classes without the hassle of making them work
- Waterfall – A software development method that completes the requirements gathering phase before the customer knows what they want
- XAML (XML Application Markup Language) – A form definition language that gives you all of the placement and alignment flexibility of nested HTML tables
- XSLT (XML Stylesheet Language Transforms) – A Turing equivalent declarative language for encouraging the proliferation of XML dialects
- XML – A hierarchical document format that emphasizes syntax over substance
- XP (Xtreeme Programming) – A software development method that maximizes head-count
- YAGNI (You Aren’t Gonna Need It) – A philosophy that discourages making preparations for the future