Wednesday, March 11, 2009

Technical Debt and The New Thing

Here's a piece on Technical Debt and it's effect on your developers.  Technical Debt is the accumulation of bad stuff in the codebase - magic numbers, duplication of code, hacks to get around some specific problem you don't have the time to fix Right Now.

And he's right - it's damned hard to get any manager to understand that you need to clean up stuff that was done to satisfy a compressed schedule.  You need to make it as clean as possible from the start.  But it's also very dangerous to build the whole shebang from scratch.

One employer tried this.  A new Director hasd come in and was making the big mistake of trashing all the existing project (and people), so she got buy-in to re-write the app.  She hand picked a new team from the existing one, augmented by some contractors she had worked with previously.  But her biggest mistake was preventing the new team from reusing the old code - it had to be all new stuff, and her developers could not talk to the old guard for advice.

So the new project lost all the accumulated wisdom, and all the expertise that was present in the original team, and spent far too long rebuilding the infrastructure.  The project failed miserably.




Technorati Tags --
, , ,
HTTP

Tuesday, March 10, 2009

Not-Really Functional Programming

An interesting opinion on a style in OOP that leads towards a Functional Programming vibe.  From my brief forays into FP, the advantage is that you don't have to manage state; the downside is that you have to organize your program so that you can drop all the intermediate results into a single function.

Of course, small focused methods are a Good Thing (tm) in their own right, so this may just be a convergent evolution of a sort - encapsulating the mutable state so that it's not important at other levels.



Technorati Tags --
, , ,
HTTP

Monday, March 09, 2009

Fake It Til You Make It

Recent studies in social leadership have tended to show that those who speak up are perceived as leaders.

The obvious Ninja take-away from this is to be sure you speak up in the workplace.  If you've been following along here, you should have some of the chops to back it up.

Of course, this may explain the tendency for all the red-tape layers of management to call meetings just so they can voice their irrelevant opinion and rubberstamp the decision.



Technorati Tags --
, , ,
HTTP

Sunday, March 08, 2009

The Death Of One Thousand Cuts

One of the big things you get as a software developer is a sense for automation.  Every advancement of our profession is about automating something - computers were first intended to replace tedious manual math calculations, after all.

So we have the hammer of automation, and tend to see many things as the Nail of repetition.  Not that this is a bad thing - it makes our jobs interesting, and keeps us from dying of RSI.

Yet as we go along, we sometimes get into the rut of the things we are not yet able to automate, so I see this post as a reminder to keep looking for thing to automate.



Technorati Tags --
, , ,
HTTP

Signs And Portents

This list is going to look familiar to any of you that were coding during the dot-com boom and bust.

The scary part is that so many of them are true.

I counted 26 that I have personally seen.  #40 was a point in my most recent company meeting.



Technorati Tags --
, , ,
HTTP