Floehopper

thoughts on the bergy bits of life

Effectiveness is often inefficient: cross-functional teams, pair programming, promiscuous pairing, parallel spikes, experimentation (aka innovation), theory of constraints. Dan North - Our Obsession with Efficiency on Vimeo
In software, adding a six-lane automobile expressway to a railroad bridge is considered maintenance—and it would be particularly valuable if you could do it without stopping the train traffic. You Don’t Know Jack About Software Maintenance | November 2009 | Communications of the ACM
The idea that I have in mind is to flip technical debt around.  We need to see clean flexible code as an asset and count it as an asset.  When a non-technical person wants something faster, we need to be able to talk about how much of their asset they would be losing if they want a rush job.  They also need to know how much it would cost to restore the asset, and it’s almost always far more than the original development cost. Michael Feathers’ Blog: Beyond Technical Debt

If you’re a Ruby author who cares about distributing your software to more than just other programmers’ laptops, you only need to take some simple action with your existing Gems to make them compatible that the Debian folk wrote years ago.  I’d add the following to these tips though:

1. don’t use the gem command in your main code at all, use a loader program that pulls it in if you need it.  In almost all cases it is going away in 1.9, and good riddance;

2. if you provide a Ruby library called foobar, make sure your gem is also called foobar, and preferably only provides a single module called Foobar;

3. don’t use capital letters in your gem name - amazingly there are already some gems in the namespace that differ only by case!

Bytemark blog | Ruby gems, and when we’ll be shot of them
But the biggest mistake made in Gems was to add to the language.  In Java, or C, or Python, or any other language, to include a library, you do the same thing, regardless of who installed the library, or where.  But in Ruby, a gem command was added to the language.  And you need the rubygems library included first in order to use that command. Bytemark blog | Ruby gems, and when we’ll be shot of them
That the message of the XP and Agile community was once “professional programming is about the programmers and customers stupid” was what gave the movement teeth, and ever since then, the community has been trying to soften that blow, include all the specialist roles from CEO to janitor so that no one feels left out, or that their political interests aren’t being served. The resultant watered-down drivel has resulted in Agile becoming synonymous with ‘good’ moved ‘development practices’ into a footnote in some Agile systems (I talking to you Ken Schwaber and the Scrum folks) and once again made software development about non-technical goals and practices. To once again quote Mister Stephenson I call bullshytt. Thoughts On …: The Death of Agile by Bill Caputo