Getting Started on Haskell

I made a little headway on Haskell today.

Downloaded the GHCI environment to start running/compiling in Haskell. Had to find the Mac Intel port. Went looking for at least a TextMate bundle, turns out there is a pretty basic one available. Then started one of the basic Haskell tutorials.

After just an hour or so I feel like I’m on another planet, but that was the desired effect. Next up getting HUnit up and running.

Converting Peer Managers to Agile Practices

Many of the practices I’ve introduced to my team have largely stayed within my team. There’s no moat around our section of cubicle land, and all the other teams knew about the majority of our practices, but we didn’t see any uptake. I hoped about a year ago when I ran a TDD seminar with JUnit for the bulk of java developers outside my team that we’d see a change there. About a year later I think the only evidence that they’d been through a seminar on TDD was a few tests scattered across one project.

Osmosis wasn’t going to be enough to convince people. It went the same way with my team. A few of them have really run with everything from code reviews to TDD, but many of them take a great deal of convincing.

The next push was to talk to my peer manager about how we spread the adoption across our groups. I’ve put that discussion off for at least 4 months now largely due to fear. I heavily lean towards consensus building and I don’t like show up preaching like a convert. We’ve had a pretty good relationship though and for some reason I finally stopped mulling over my notes and approaches and just dropped in on him in his office.

Turns out he’s pretty open to the ideas, and it really didn’t take a whole lot of convincing. We’re going to start out introducing some of the easiest stuff like automated builds and continuous integration and then progress to TDD, code reviews, static analyzers and the like. Just one practice at a time so we don’t overwhelm anyone with change. At the end of the process our entire development organization should be performing all the same practices to a lesser or greater extent. By this time next year our basic practices should be shared throughout the development organization.

Definitely should have broached the subject much sooner.

Ruby in Websphere Process Server

Turns out IBM recently snuck out a way to integrate ruby with Websphere Process Server using SCA (Service Component Architecture). It’s incredibly enterprisey and a bit surprising to see out of IBM. And the whole thing is made possible via JRuby.

Rotating People On Scrum Projects

Despite the idea of dedicated teams, we really haven’t encountered much in the way of problems with rotating staff on and off Scrum projects in general. Sometimes people come on and off because they tend to specialize in something like UI design and are constantly called out on multiple projects. Other times the work on the project has changed focus or we need someone to start something new. And finally, sometimes someone is just getting burned out an needs a change.

On Scrum teams the main swapping out of resources that gets discussed is when one of the weaker team members is voted off the island for failing to meet any of their commitments. We’ve had that as well, but the majority of our swaps have been for more benign reasons. I have no idea if we’re typical, but rolling people off at releases tends to work really well, or at least at the end of Scrum.