• 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

Categories

Software Engineering Tips

Yet another collection of rubbish mostly focused on C# and IT development