Skip to content

Narcissistic Design

sclarson edited this page Jul 29, 2016 · 5 revisions

10 easy steps to complex code and job security.

Abstract

Practice these principles, and your code will have an infectious complexity that guarantees you will always be needed to maintain it.

  • Use OO, and don't forget those setter methods!
  • Prefer APIs over data.
  • Start with DSLs.
  • Always connect (and never enqueue).
  • Create abstractions for information.
  • Use static typing across subsystem boundaries.
  • Put language semantics on the wire.
  • Write lots of unit tests.
  • Leverage context.
  • Update information in place.

Detailed Abstract

The software industry changes rapidly, but you can protect yourself from these changes by creating code that is complicated enough that only you can maintain it.

Of course you should not engage in obvious bad practices. The good news is that you don't have to. You can follow idiomatic industry practice and stay buzzword compliant with the latest trends, while quietly spreading complexity throughout systems. Better yet, the symptoms will show up not in your own code, but in other code that uses your code, directly or indirectly. You will be a hero as you lead larger and larger teams burning the midnight oil to keep systems alive.

Practice these principles, and your code will have an infectious complexity that guarantees you will always be needed to maintain it.

  • Use OO, and don't forget those setter methods!
  • Prefer APIs over data.
  • Start with DSLs.
  • Always connect (and never enqueue).
  • Create abstractions for information.
  • Use static typing across subsystem boundaries.
  • Put language semantics on the wire.
  • Write lots of unit tests.
  • Leverage context.
  • Update information in place.

On the Web

Clone this wiki locally