Wednesday 19 January 2011

dysfunction junction - notes from working life in a small Swedish software company

I've had blogger's block these last few weeks. That coupled with being up early to work out, and caring for my daughter at night hasn't left a huge amount of time to record what's being going on. So I've procrastinated and not felt I've had much to report on.

Whilst this malaise and period of lethargy took hold of me, I have continued to work for a small company who have a Intranet software solution for franchise companies. I'm working in a team whose mandate is to improve the product, replace legacy code, and fix any bugs that get reported. As approximately three and a half months have passed since I joined the company I thought it would be interesting to summarise my thoughts so far.

So far, I've figured out how the system 'works', to use a sofware development terminology it's a big ball of mud which is a polite way of describing a mess. The challenge is the sheer size of the application, the lack of any coherent architecture and horrible code. To compound this problem you have (although better, but far from perfect) code bolted on, which is a bit like building a luxury condo on rapidly eroding cliff.

Not only do large sections of the product need updating, but the way the small development team works needs fixing. Each person works on their own project with little or no interaction with the others. Communication is infrequent or non existent, to the extent that people sitting feet away from each other often type Skype instant messages to each other rather than just opening their mouths. Last weekend one of our clients was annoyed as no one responded to an email he sent out of hours over the weekend. When a subsequent witch hunt / post mortem was held, I pointed out that if you assume that a group of people will respond, precisely this situation will arise. If however, you actually put in a out of hours cover rota, and have an explicit person handle it each weekend, you reduce the risk of this sort of thing occurring. The owner didn't see it this way, and it felt like he was trying to do it on the cheap, as at no stage has anyone mentioned to me that I should be checking the support emails out of office hours, and for me it summarized the company's problems perfectly.

The owner of the company doesn't seem to trust the developers, and also wants me (as I worked running a similar team in my last job) to help address and improve things. This puts me in a difficult position, I've been hired as a grunt, a software developer, at the risk of sounding obtuse, where's my incentive to put too much into this role? My long term plans don't involve Malmö, or Skåne, I doubt the owner will want to stump up a higher salary, so although I'll work to make sure things run smoothly, my motivation is low. You may think this is cynical and a tad inflexible, but then again, that's how the old employment foxtrot goes.