Time for a New Adventure: Magnolia

Last Thursday, I gave my one month notice at the University.

The reason for that was not any particular discontent. While the University has its share of bureaucracy and silly decisions, the management above us has generally shielded us from much of it. And being able to walk to my office, have the freedom to explore lots of crazy stuff as the mood strikes, hone my management skills, have a stable job, and work with some terrific people on a beautiful campus has been great. I’m proud of the work we’ve done, and proud of my team, which has accomplished an amazing amount with minimal resources.

But now I’m going to work for Magnolia, the Swiss company that makes the CMS software that we’ve been using at the University with great success for a number of years. I’m excited about the change for a number of reasons:

  • They are a great team. I’ve worked with Magnolia as a customer for about four years now, and have been really impressed with both the technical excellence of their work and the professional excellence with which they run the business. I also got to meet many of them at the 2009 Magnolia Conference, and was delighted to find that every single Magnolian I met was genuinely kind and pleasant as well. What a great combination!
  • I’ll get to focus in on programming again. While I’ve enjoyed stretching myself into the role of a manager over the past several years, and think I’ve done some interesting and positive things in that position, I do find myself enjoying work the most when I’m able to focus on technical disciplines. While I don’t see a ton of opportunity to exercise the Objective C and Rails skills I’ve built up at the University, I expect there to be plenty of space to go as deep as I’d like with Java.
  • I’ll have the opportunity to do some traveling, both to Basel, Switzerland, where the company is based, and around the United States to get together with other members of the U.S. team, visit customers, and present at conferences. I hope to be able to bring Kathy and the kids along at times too, so that we all are able to benefit from the travel and see a bit more of the world.
  • I’ll be working from home. I’ve done a fair bit of this is previous jobs, and have always found it to be a really nice arrangement. Kathy is great at running interference so that I can really focus when I’m “at work.” But when I’m ready for a break, the family is right there, so it’s easy to have lunch with them, take them down to the park for a bit, or mount a quick trip to the river for a swim.

The new job will include technical pre-sales (talking nerdspeak with prospective customers and building prototypes for them), working on internal projects, raising awareness of Magnolia in the US by participating in community discussion and presenting at conferences, and providing support to existing customers while the team in Switzerland sleeps.

My last day at the University will be Thursday, March 3. I’ll take that Friday off to go blow some things up with Jason Young (we’re planning on building a jam jar jet engine), and will then dive in at Magnolia on Monday, March 7.

Little Shop of Horrors

This past January, Abigail had her first experience with the theater. Her high school was staging a production of Little Shop of Horrors, for which she auditioned and got several parts. Given her expressive and dramatic nature, I fully expected her to really cotton to the experience, and was not disappointed. I have a bit of a soft spot for that show, as friends of mine have been in it and I played in the pit band for it at Texas State a couple of years back, so was particularly pleased that would be her inaugural theater experience.

She came back from each rehearsal thrilled with the chance to be part of the show, overflowing with stories about the various things she had worked on that day. All the while, she was accreting a new collection of friends involved with the show whom she seemed to quite enjoy. Rehearsals went on for a long while, with the director eventually pushing the performances back a month or two from their original schedule.

Finally the show started in mid-January, with a scheduled run of three weekends. We had been planning to go on opening night, but Abigail was nervous, and asked that we hold off until the next weekend. We were a bit indignant that some of our friends were getting to see her before we did, but were OK with giving her a little more time to prepare.

Finally, we ventured forth to the 80 seat Black Box theater at the high school, a tiny venue that sold out regularly, but which the director hoped would help the actors better connect to the audience — a good strategy, given that we nearly had actors in our laps at several points. Abigail got to be a member of a crowd scene during Downtown, a TV reporter, a guest on the radio show Seymour was a part of, and a tortured dental patient — a role in which she was able to exercise her considerable talent for ear-splitting screaming. She did a terrific job all around, and it was great fun to see all her work pay off at last.

In addition to Abigail’s thespian talents, we got to see some of Emily’s work: she and the other members of the Art Club had worked together on the various puppets for Audrey II, and did a great job with them. (The smallest of the puppets was entirely Emily’s doing, and looked terrific.)

“Well, what did you think?” I asked Abigail after the run was complete. “Would you do it again?”

thought for a moment about all the hard work, the funky hours, the blisters on her feet, and the stress of trying to keep up with schoolwork, responsibilities at home, and the theater. Then she smiled.

“Yes, definitely.”

Another Chapter for Mom

This past Friday, I got to be a part of my Mom’s wedding.

It was a remarkable and beautiful occasion — beautiful for most of the usual reasons: two people pledging themselves to love and care for each other until their bodies fail them in the task, a community of loving and supportive friends, and the chance for all us married folks to reflect on our own vows along with the couple at the center of the event.

But there were wonderful, unusual aspects to the day as well: both my mother and her new husband, Bill Liles, had been married before, and had previous spouses on hand to cheer and support them. While Bill’s parents were unable to make it down from Pennsylvania to attend the event, the best man had a cell phone in hand for the entire ceremony so that they could listen in and be a part from their home. There were a wealth of children, step-children, and grandchildren of the couple on-hand and involved. The church choir in which they met was there in force both to affirm their union and to provide some great music for the event. (Oh Happy Day!) My mother was celebrating her wedding the day before she celebrated her 70th birthday.

But the best thing of all, to my mind, was that it was the most joyful and happy I have seen my mom in years. Possibly ever. (And, while I don’t have the same history with him, Bill seemed similarly giddy.)

In spite of the fact that just over a month elapsed between the time they decided to get married and the wedding, everything came together beautifully (though not without a certain amount of scrambling). Marti, my mom’s sister, did an amazing job of pulling together the necessary planning, organizing, and communication. Kathy whipped together a lovely program in Word the day of the wedding. (This was especially notable, as she and technology are normally mortal enemies.) And I was honored to get to sing Steven Curtis Chapman’s “I Will Be Here” during the lighting of the Unity candle. (I was wryly amused that the rendition during the ceremony was rougher than any of my practice sessions, and that my doppelgänger brother actually received more comments on it than I did.)

But in spite of the hurried preparations, the evening was terrific and really reflected the character and personality of the couple. Joy, humor, beauty, silliness, tenderness, authenticity, love, and the odd slightly off-color comment were all there in front of the altar with them, and were clearly welcome companions.

So, best wishes and prayers to you, Bill and Diane, as you launch into this next chapter of your lives together. We look forward to walking it alongside you, and are delighted at the joy you have found in each other. Big love to you both.

Christmas Lists

The kids’ Christmas Lists are coming late this year because I had a wicked hard time (that’s for you, Yankee friends) getting them to sit down and write them out. Once I did, they had enormous difficulty coming up with items to put on them. This initially frustrated me until I realized: They’re having a hard time coming up with stuff they want. Our kids…are having a hard time coming up with things to ask people for! They’re actually pretty content! Upon reflection, I was delighted at how difficult generating these lists turned out to be.

That said, here’s what did finally emerge from the process:

Maggie's List

Maggie's List

Liam's List, Page 1

Liam's List, Page 1

Liam's List, Page 2

Liam's List, Page 2

Abby's Christmas List of Doom

Abby's Christmas List of Doom

Emily's List, Page 1

Emily's List, Page 1

Emily's List, Page 2

Emily's List, Page 2

Star Trek: The Song

One of the reasons I enjoy my good friend Barry Brake so much is his penchant for wandering off into what one of his friends calls “Barryland”, a mental space characterized by enthusiasm for and serious contemplation of things that most people would gloss over. He recently recorded what may be the first rendering of the classic Alexander Courage Star Trek theme with the words that Gene Roddenberry wrote added back in. It’s terrific, and suits Barry’s voice and style to a T. Go and enjoy.

The Need for Beauty

I don’t often post mere links to other people’s essays here, but The Need for Beauty mirrors some of my own thoughts and challenges as a parent and a creative person so nicely that I couldn’t pass it up without pointing more folks towards it. Well worth a read, especially for people who fall into both of those camps.

Twitter Weekly Updates for 2010-11-16

Powered by Twitter Tools

The Penny Game: A Way to Prioritize Tasks Among Many Projects

I’m a fan of agile practices in programming, and encourage my team to work along agile principles as much as possible. One thing that has always been tricky about that for us, however, is that we don’t really match the usual profile of a software team.

Most agile teams (at least in the literature) are focused on a single project, and have multiple people working together to get that project done. We, on the other hand, do all the development work for Texas State University’s Learning Management System (about 32,000 users), Content Management System (287 sites at current count), an Event Calendar system, the University iPhone app, a reservation system for training classes, a custom web content caching system, various custom-built content management systems for accreditation and regulatory compliance, and a bevy of internal tools — all with 6 people.

Needless to say, I’m very proud of my team.

Prioritizing the time of six people when we have ongoing responsibility for more than twice that many projects is, however, a daunting challenge. Our approach for a number of years had been to set release milestones for each project, to do release planning meetings to determine what should go into a given release based on our Planning Poker estimates, and then to try our best to get the work done in time.

This approach had a few problems:

  1. Release planning meetings were long and boring. We would walk through the list of unresolved tasks for a given project one by one to see if anyone wanted to prioritize that task. 90% of our time was spent saying “Ticket #666: add a green widget to the defrobulator. Anyone interested? Anyone? Class? Bueller?” (Only to have Bueller pipe up three tickets later: “Can we go back to ticket #666 for a minute?”)
  2. It was easy for people who had an interest in one project to commit 100% of the development team’s time to that project, while folks who were keen on another project would commit all of our time to that project as well. Our planning process didn’t reflect the fact that all the projects were competing for the same resources.
  3. If we finished all of the tickets for a release early and had extra time (a pretty rare problem, admittedly), we didn’t know what to work on next.

So a few months back, I decided to try an experiment. I got the stakeholders for all of our projects in a room together, gave them each 10 pennies, and explained to them the rules of the game:

“Today you are going to help the development team set our priorities. You each have 10 pennies, which represent tasks you can vote for. In order to vote for a particular task, write it on an index card, put that card in the middle of the table, and plunk down as many of your pennies as you’d like on that card. You can use all of your pennies on one task, or spread them among as many tasks as you like. Also, I encourage respectful argument. Try your hardest to persuade the people around you that they should put their pennies on the tasks you like as well. When we’re done, the number of pennies on a task will help determine its priority for our team.”

Good natured chaos ensued for the next 30 minutes as we wrote cards, passed them around, combined them, discussed the relative merits of the tasks ahead, bumped into each other as we moved around the table, tried to figure out what the heck some of the cards meant, and generally made a mess of the conference room we were working in. When we were done, we had a big, unruly pile of index cards with big, unruly piles of pennies on each:

After the meeting’s conclusion, the dev team took another 15 minutes to count the pennies on each card and put that count into a special “Bounty” field in our ticketing system, creating new tickets as needed. (We use “bounty” and “pennies” interchangeably.) When I was done, I told the system to sort our tickets by bounty, and suddenly had a prioritized list, across all of our projects, of what tasks had the most business value. Beautiful!

Task List Sorted by Bounty

Task List Sorted by Bounty

Of course, the number of pennies on a given ticket doesn’t directly determine the order in which we work on things. We also factor in the estimates for a given task we’ve come up with individually or during our Planning Poker sessions. One can divide the pennies by the estimated hours to get a “bang for the buck” rating for each of the tickets — a much more useful way to prioritize one’s work.

I don’t like to assign tasks to people on my team directly more than necessary. I find people to generally enjoy work much more when they are able to make their own decisions about what to spend their time on. On the other hand, I do want us as a team to provide the most real value we possibly can to our various customers. Since the penny game provided us a “here are tasks with business value” list, I decided to provide a couple of incentives for folks who were completing those tasks:

  1. I took a bizarre southwestern style pot that I had sitting around, labeled it the “Pot of Honor”, and told the team that it would be filled with candy and awarded to the team member each week who managed to complete tasks worth the most pennies during that span. Battling for the dubious honor of having this homely artifact rest on one’s desk for the week provides some silly, low-level competition and recognition for individuals.
  2. I set the team a collective, cumulative goal and told them I’d take them to lunch when they reached it. When we tally pennies for the awarding of the Pot of Honor, we also add up the number of pennies the whole team has completed and add them to a running total. Progress is noted on our work-area whiteboard, so we can all see how close we are to getting to have free food.
The Pot of Honor

The Pot of Honor

I’ve also made space on the whiteboard in our team area where we have our daily stand up meetings to put up the “Top 10” list of tasks that have accumulated the most pennies to help maintain focus on those high-value items.

The next time we played the penny game, a month later, it went much more quickly: we already had cards on the table from the last meeting, everyone had a better idea of what we were doing, and some folks had looked through the tickets in advance to see which tasks they wanted to support. I was surprised to see that, as we got more practiced, we were able to finish the entire exercise in about 20 minutes. We simply added the new pennies to the existing bounties in the ticketing system, making them increasingly juicy as they got older and people still had interest in them.

We’ve been playing the game for a number of months now, and I count our experiment a solid success. Advantages it has provided for us:

  1. Prioritization is way more fun and engaging. It also goes considerably faster than all of our individual release planning sessions did.
  2. The development team always has a clear idea of what our business needs are, and which of our tasks will provide the most value.
  3. Stakeholders cannot say “everything is top priority”, but are forced to choose where to allocate their pennies. The finite scarcity of pennies reflects the limits on developer time.
  4. Individual developers can exercise a good deal of autonomy and choose their own tasks while we still, as a team, deliver on the things we need to.
  5. There are a number of tasks that, while people say they are important, apparently do not merit the expenditure of a penny. As these persist for a sufficient period of time without accumulating any pennies, we can close them as not really being a high priority. (We can always reopen them later if someone decides to spend a penny to raise them from the dead.)

We’ve introduced a few refinements as we’ve gone along: Because some of our systems have tens of thousands of users, it’s ill-advised to get all of the stakeholders in a room at once. To account for this, we give the support staff extra pennies to distribute as proxies for the absent users. We’ve started writing project names and ticket numbers on the index cards to make it easier to correlate them to our ticket system. We’ve begun bringing as many laptops and iPads as possible to the meetings so that people can see the details on the various tickets in question. We now add a penny to each task whenever a user request comes into our support team.

I should note that during the time I was designing this process, I was also reading through Total Engagement, and consciously built in many of their 10 Ingredients for Games: Feedback across a range of time scales (completion of individual tickets, weekly discussion of bounties cleared, longer-term goal of team lunch), Reputation (the awarding of the Pot of Honor), Marketplaces and Economies (the game itself is a market to “buy” the development team’s time), Competition Under Rules that are Explicit and Enforced (there’s no ambiguity about how many pennies are on a ticket or how they’re assigned), Teams (working toward the common lunch goal), and Time Pressure (weekly tallies of points, implicit time pressure of not wanting to be the last person with pennies left to spend while everyone else sits around). I think these elements have been critical in making this a more engaging way for us to do things.

So, if you’re facing a similar challenge with more projects than you have people, feel free to swipe any of these ideas that look helpful. I hope they’re of some use to you. If you do give the penny game a try, please post here and let me know how it goes. Good luck!

Twitter Weekly Updates for 2010-11-09

  • Listening to the soundtrack from The Mission & sewing goofy creatures with Liam and Abi. Nice evening! #fb #
  • Liam Abi and I sewed tonight. This is what happened. http://twitpic.com/349ssh #
  • Airsoft morning with Liam and Cheesy Steve! http://twitpic.com/34fm3d #
  • Annoyed with E*Trade. Have been waiting a month for them to give me *any* info on a suspicious transaction in my account. Grr. #

Powered by Twitter Tools

Gamification Counterpoint

As I’ve discussed the idea of using game mechanics to help focus and motivate people with friends over the past year or two, I’ve received some tepid feedback at times, but haven’t been able to really grok the concerns they have expressed. Sebastian Deterding, at the recent Playful 2010 conference, does a brilliant job of putting the potential shortcomings of this approach into a form that even my oft-overenthusiastic brain can grasp. It would consider it an essential resource if you’re also a proponent of this sort of thing: