Saturday, October 21, 2006

The end of my first week...

The end of my first week in the new job. It actually took a bit of getting used to, after 3 and half years of travelling over an hour (lately over an hour and half) to work and then the same back, to jump in the car, drive for 10 or maybe 15 minutes and be there! Crazy. Still, each time a traffic report comes on the radio (for Melbourne traffic of course, no such thing needed in Geeling) I'd reach down and turn up the radio, before I realised I no longer cared.

So anyway, I've joing a small team - six people (two developers and me) - responsible for building, enhancing, supporting, marketing and growing and estimating and accounting system for residential builders. It's called Constructor. They have a great product, they have great people, great ideas and the future is bright. This week the focus for me has been to observe what is going on, and implement a process that as quickly as possible, smooths out operations, gets communication going and speeds up the development process as much as possible. Of course I was employed as Product Manager for a reason - basically improve efficiency was the catch cry but the symptoms are basically that there haven't been regular enough releases of the updates lately and there are some big ideas for expansion that they just can't seem to get underway.

What I found in my first week was interesting. The guys here are certainly way down the right track. As usual in this industry, they are expected to do way too much, with way too little, but that's just a given these days. They have the best intentions and enough experience and know how to be making quite a fist of it. While they havent really been exposed to many formal methodologies what they have evolved for themselves is thorough and repeatable - slightly Agile, which is great. There process is not out of control - they know exactly what they have on their plates, they just aren't quite getting it done. It was no great stretch to introduce some more Agile techniques. I haven't made a big Agile sales pitch - I think just repreatedly striving for things like automated nightly builds, daily assessments of the backlog, weekly planning and so on, will make the improvements this team wants to make. The improvements they want and need to make are mainly around making more frequent releases of their product, to customers.

I rolled out some software for requirements and issue tracking - Axosoft's OnTime, this week and wrote half a dozen or so reports using MS Reporting Services which should keep everyone focused on what the priorities of the day/week are. To Do lists arrive in everyone's inboxes each morning, stats are now recorded and reported to everyone, including management weekly. Time to increase visibility and hopefully motivate everyone. Note - must ensure all stats are tied to sales and profits and reported that way.

It's going to be fun to implement some new procedures, especially the push for daily, automated builds. This, I think will solve the first major problem of lack of releases to customers over the past 12 months or so. If we build often, the feedback loop gets shorter, the bugs get easier to fix, the sales and support guy's confidence grows and releases aren't such a big deal. One of the guys said this week said "we can't promise when the release will be, because they'll only be disappointed" - given the history here, fair enough. (It's been seven months since a release.) But what a great starting point. A few months from now, after a couple of new releases, the whole team must be totally confident with predicting a release date - because releases should be no big deal. With quick iterations, the whole process won't be such a massive episodic undertaken that no-one will be daunted by it.

There is some work to do on code quality as well. New features are causing too many bugs and too many bugs are coming back to developers as not fixed or causing new bugs - something I think smaller iteration will help with too, but also some automated unit tests (maybe even TDD) and some code reviews within the small team.

So after week one I still have plenty of ideas, some I knew I'd use before starting and some new ones and I still have the motivation and encouragement that my ideas are being taken seriously and are respected -= many team leaders would envy this position. Many of the traditional reluctance to change and "new guy syndrome" isn't here.

There is such a huge potential here to develop a real community around the product, some new features that are on the drawing board and some online services they have slated for the fairly immediate future. This too could really assist in some fairly disappointing profit figures. The new sales are there, the maintenance support agreements are there and just as importantly the team is still working together. There are no major signs of any fundamental problems that would prevent this team from becoming far more profitable.