jump to navigation

Why Your Code is a One Way Time Machine October 19, 2009

Posted by ActiveEngine Sensei in ActiveEngine, Agile vs Waterfall, Mythology, Problem Solving, software economics.

What type of duress are you under?  The unfortunate among us have been sentenced to slavery by our evil nemesis from the past.  We all have this enemy, and at one time or another have succumbed to the enemy’s evil plot.  The enemy from the past is YOU.

2424601413_3ecda752e5_bWhen you sit down to create a solution, you need to balance solving the problem with being able to maintain and implement changes to the logic you have selected.  All logic changes, and there are very few times when you have the finite scope defined to be able to accommodate new ideas.  “Rewrite!” is the cry of many who have written good solutions that have solved the problem but more than likely are not very maintainable.  “Broken Cardinality” is the bane of all DBA’s, and this is very serious indeed.  Sensei can’t help you with that – go beat your business analyst who didn’t drive home the rules of relational databases!

What Sensei will say is put your tools after you think you’ve solved your users problems in a two week sprint, step back and project into the future:  will this code be readable; can you augment the logic without altering the methods; will you be happy with yourself at midnight trying to fix something?  Addressing these concerns helps you maintain your solution.

The real challenge is to help yourself next year.  The-future-you needs your help, but The-future-you will hate you if you misconstrue YAGNI in your design phase with avoid-refactoring-at-all-costs while you code.  Forget the sprint.  Putting something into a customers hands too soon masks the complexity of what you have done for them and undersells your true talents.  They’ll be happier if you can quickly implement changes without impacting the existing environment.  Congrat’s – The-future-you just bought a beer!


1. rajiv - February 11, 2010

Really facinating perspective. I’ve often the idea of competing with yourself, but you from the past being your biggest enemy as a programmer is a remarkable thought.

2. rajiv - February 11, 2010

Really facinating perspective. I have heard about the idea of competing with yourself, but you from the past being your biggest enemy as a programmer is a remarkable thought.

3. rajiv - February 11, 2010

> I’ve often the idea of competing with yourself

Meant, I have often “heard” the idea of competing with yourself. I hate it when I do typos on comments because I cannot go back and edit them. GRR!

ActiveEngine Sensei - February 12, 2010

When I enter my moments of delusion and think I’m a genius” I tend to screw up the most. More than likely I create a trap when I think I’m conforming to the open/closed principle or being a design pattern purest instead of getting something done. Don’t get me wrong – Martin Fowler is a great influence but when pretend I have an audience like he does when I’m coding – you know, they’ll be studying this in the future syndrome – I create way more work than necessary.

Thanks for stopping and reading my post. Like I said in my comments on your site, you have a great blog and really good insight.

4. Getting to 11 « ActiveEngine - February 13, 2010

[…] } In the past Sensei has written insane tomes regarding time travel and how your best intentions really get you no where. The story today is about getting to 11, which […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: