Archive for January, 2009

Manufacturing Applied to Software Development Makes Me Nervous

Monday, January 26th, 2009

There is a rash of recent software development methods (e.g. Lean, Kanban) that are based on manufacturing, usually Japanese.  Manufacturing is doing the known over and over, trying to squeeze the last nickel out of the recurring costs.  Software development is largely exploring the unknown.  There aren’t repeatable, consistent tasks.  Many of these methods strike me as attempts to replace expensive, talented individuals with cheap, generic labor.  And sacrificing long-term viability (and costs) for short-term gain.

There are consistent, repeatable parts of software development and where they exist they have been pushed into compilers, scripts, and code generators.  Valuable effort has gone and is going into squeezing another couple of percent performance out of the optimizer in compilers.  This is so successful that few projects generate assembler/machine code by hand any more.  The repeatable parts of well run projects are automated, compiler back-ends, scripts, automated builds, automated tests, etc.  Much more cost-effective than hiring poorly paid, poorly educated, unexperienced people.
Or not bothering with documentation, comments, and clean code because it doesn’t provide immediate “customer value”.

Fragment Caching Not Worth It

Tuesday, January 20th, 2009

After adding fragment caching to Amethyst, I found it did a couple of things I didn’t like. They would have been obvious had I thought more about it.  I like the “10 minutes ago” style of time stamps.  Makes it easy and fast to scan for recent or old articles.  Well, the 10 minutes ago gets cached and quickly becomes stale.  I can move it out of the cached fragment, but it looks out of place.

Article fragment caching only sped up display by a factor of 2 (i.e. 54 seconds for the full display dropped to under 30 seconds).  Paging looks really unnatural when pages are different sizes.  However, “endless paging” (appending pages as you scroll down to the end) works moderately well.  And works well with “10 minutes ago” style timestamps.

So I’ve dropped fragment caching.