Home‎ > ‎

Glossary of Software Engineering Terms

  • 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
Comments