Design and Management

Mischa Spiegelmock edited this page Feb 22, 2017 · 22 revisions

So you made some "temporary" fixes to your codebase to save yourself from having to think too much, duct-taped on those "minor suggestions" from upper-middle management, "reworked" some things to fit a specification written in marketing jargon, then you kicked your feet up and took a nap. You're then gently awoken by a warm breeze on your face, and the soothing sounds of, wait, that's people screaming! Your eyes jolt open. That warm breeze on your face is heat from your project ablaze. "How long was I out?" you ask yourself, pausing to think of how silly it is to ask yourself that question. You shout to the nearest person running for their life " YOU! What's today's date?!". Their answer horrifies you. It hasn't been minutes, hours, or even days. You've been asleep for years. You've been asleep for years and you've grown a beard and that beard is now on fire too. What the hell happened?

The longer a software project goes on, those "temporary" things will begin to calcify if left unattended. The consequences of this are dire. They can result in security issues, nests of bugs resulting from side-effects, and sometimes prompt entire other projects to form just to mitigate your net losses from complacency.

Here are resources for programmers and project managers alike for knowing when to tame your code beast, taming it, and maximizing your profitability vector magnitude potentials 2.0, all at the same time.

AntiPatterns

Antipatterns are the inverse of Design Patterns and Managerial Procedures. Where no thought for design is in play, antipatterns emerge and introduce entropy into your project.

Stories

Making use of acquired code

  • Book: Confessions of a Used Program Salesman is a little dated but relevant nonetheless. Horror stories from being a "used car salesman" of software, and exactly how modularity and documentation increase profits and cohesion.
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.