Sprinting to Standups

This week I have 3 standups a day:

  • 9:15am Scrum Master on a Proof of Concept project.
  • 9:30am Chicken on an internal project.
  • 9:45am Chicken on a large systems project in another building.

The disadvantage is I’m running around a lot. The advantage is I get a view into every project on my team every day.

Simple Ruby Symbol Explanation

I hadn’t quite grokked symbols in ruby for some reason. Somehow the definition from the PickAxe book wasn’t quite clear enough:

A Ruby symbol is an identifier corresponding to a string of characters, often a name.

OK, I can see that but what’s the point. Then playing around on Why’s 15 minute browser intro to ruby on the ruby language site I came across this definition:

When you place a colon in front of a simple word, you get a symbol. Symbols are cheaper than strings (in terms of computer memory.) If you use a word over and over in your program, use a symbol. Rather than having thousands of copies of that word in memory, the computer will store the symbol only once.

I like Why’s explanation of the why to use a symbol.

Velocity Column on White Board

Simon Baker posted some pictures of his tracking white board. He actually has a velocity column on the far right end that occurs to me is a really good idea. Puts a visible focus on how much your actually able to accomplish for the Sprint instead of just the remaining hours for tasks.

Agile Experience Reports From Development Managers

Yesterday I got to hear two experience reports on our Agile/Scrum pilot projects from two peer managers who aren’t exactly strong proponents of Agile. I assume this is happening more places now that Agile is moving beyond the early adopters. Anway onto the experience reports. From a web development manager:

  • The idea of less useless documentation was really appealing, and he found it to work well in practice.
  • Collocation worked really well as the team all gained a sense of camaraderie.
  • Refactoring can get out of control. On this project they went from iBATIS to Hibernate to SDO to Hibernate in the course of three Sprints. Partially this was because they got bad advice from some consultants on using SDO for all projects.
  • It seemed like even though it was an Agile project you still ended up with a lot of slack. Developers would have to wait at times for business requirements. QA would be waiting for things to test as the developers were coding. (We haven’t used something like Fitnesse for acceptence testing yet, and we’re still adopting from very siloed team roles.)
  • As a resource manager sometimes it’s hard to juggle your resources when some of them are on an Agile project.

From a mainframe manager: (Yes, we are crazy enough to try something like Scrum on a traditional mainframe project.)

  • Starting off he admitted he is heavily biased against all methodologies Agile or not because he doesn’t believe they work. He came out into the workplace when James Martin was selling his Information Engineering Methodology as the way to do perfect projects.
  • His developers hated collocation at first since they didn’t want to move out of their cubes. Within a few weeks though they all agreed that collocation had worked really well and they actually really liked it.
  • From the manager’s perspective since the product owners are more involved they’re not constantly dropping into his office to talk over things which has been a relief.
  • He hates the 30 day iterations. He thought that iterations should just be planned around how long it took to completely code something. Say a three week iteration followed by a two week iteration and then a five week iteration to deliver a project. (Sort of blows the rhythm idea out of the water, but could work in something like Crystal if everyone agreed to the try the flucuating iteration lengths.)

iBATIS In Action

iBATIS, the SQL based ORM will finally be getting a book length treatment. It’s a pretty simple mapping framework that relies on good old SQL. We’ve used iBATIS frequently in the past several years and we continue to use it for connecting to our legacy system over using Hibernate.

Our issue is that we use a JDBC driver to connect to our legacy system, that behind the scenes is really not a relational database at all. In order to do anything but queries we have to wrap the call in a stored procedure syntax since it’s really calling programs on the mainframe and not accessing the persistence store directly. With iBATIS being SQL based we just have to setup the mapping file from the input and output parameters.