Apr 18, 2008

Rewards: Motivation Killers

External rewards kill the motivation you had to do the work in the first place:

"It turns out that there are two types of motivation: extrinsic motivation and intrinsic motivation. Extrinsic motivation is the type that comes from without: driven by rewards, praise, punishment, or threats. It's short-lived and fickle. What gets rewarded gets done, yes, but it's done sloppily, cheaply, and always in search of a greater reward. Further, extrinsic motivators tend to destroy whatever intrinsic motivation was already in place."

See here for much more on the topic.

Apr 17, 2008

Collaborative Story at WordFractal

Add to the creative commons Wurkenplace story: the collaborative black comedy of a stereotypical software company!

Thanks to the WordFractal folks for putting this sweet little free site together.

Apr 16, 2008

Groovy: No Class More Than a Screen Full

I'm coding in Groovy on a pet project. Along the way I've developed a rule of thumb: "No class more than a screen full" (i.e. 30 lines of code). This really works in Groovy**, and my code is cleaner for it. If I didn't use a browser I could rip out my PageUp/PageDown buttons. ;)

It's funny to look over earlier code where I'd write Map map = new HashMap(); and now just write def map = [:]. Duck typing is also pretty liberating. My pet project is working with byte streams, and I've been wiring components together with listener patterns. My listeners use write for their notification method. This means I can use anything that has a signature of a write method taking one parameter*. No need to cludge Adapters together. No need for any over-arching interface. E.g.:

  input.eachByte { ch ->
listeners.each {
it.write ch

class SomeClass {
def write(ch) {

someSubject.listeners << System.out << new SomeClass()
All very liberating stuff. I like Groovy. In fact Grails is capturing the imagination of colleagues at work. More about that another time.

*more or less
** for the project I'm working on at least. I don't have any imposed database markup on domain objects or anything like that that would automatically enlarge my classes.

One Week More to Wait for Ubuntu 8.04!

A lot of effort has been put into making installation easier for Windows users.