Something positive

I finished work yesterday, so I’m now a free man who has no idea what’s going to happen next. I’m excited about the future but I’m sad to be leaving my old colleagues behind.

Just before leaving, I sent out the routine email with my contact details and a list of my various websites (this one, Axe Software, Facebook, LinkedIn profiles etc.). Unfortunately, the most recent article at the top of this site was How to lose staff and make your software company fail which is rather negative about the company I’ve just left. My boss was not particularly happy about this.

Woops. I did think twice before including the link to alexwarren.co.uk but concluded:

  • I was linking to this site in general, not that article specifically
  • I didn’t want to delete the article
  • I did want people to know about my personal blog
  • This blog is linked from the Facebook and LinkedIn profiles anyway
  • I still stand by that particular article, as I’d never have published it otherwise
  • Many of my colleagues had already seen the article
  • The views I expressed in that article would not have come as any surprise
  • I’d already discussed many of the points in that article both with my boss and with the head of development

So, it was sad that my most recent article was so negative (perhaps it’s an indication that I should blog more often so that I don’t leave negative articles hanging around at the top of the page for long). And maybe I could have chosen a less pejorative, less melodramatic title – but that was how I felt at the time I wrote the article, and I didn’t want to edit history.

But in the interest of balance, I should point out that things are beginning to change at the company. They have begun to listen to what people like me are saying, and are starting to put things in place in an effort to make it a better place to work.

After writing that blog post, I emailed the head of development to give him some feedback, and I made the same points that I’d made in the blog – that if more effort wasn’t made very soon to migrate properly to .net, the company will have massive problems in the future. I was a bit trepidatious about sending the email – after all, it takes some balls to criticise senior management – but I thought it needed saying and I was interested in what kind of response I’d get. I didn’t have much to lose anyway.

I was pleased that the head of development took the time to construct a proper response, and we had quite a lengthy exchange of emails. Obviously he was never going to fully agree with me and immediately initiate a big project to undertake a big migration, but from what people have told me it’s suddenly become a much higher priority, and the head of development has suddenly taken a much greater interest in the state of the existing codebase. It seems that for whatever reason he wasn’t fully aware of the scale of the problem before. So emailing him had turned out to be a very good idea.

And it’s not just my complaints that are being listened to. From the private conversations I’ve had, it looks like they are beginning to listen to other developers and are willing to implement their suggested changes to make things better.

So, expressing negative opinions can lead to positive results. Indeed, how can problems be fixed if nobody expresses the problems in the first place? Surely it’s worse to keep these kinds of things to yourself?

Of course the real reason my boss was upset to click through my leaving email and see that post there was that it’s so public. He was unhappy that I hadn’t expressed these views in private before blogging about them. But often it’s only through writing things properly that one can clearly arrange one’s thoughts and come to a proper viewpoint in the first place. And there’s not much motivation to write properly if you don’t have an audience. Without that blog post, I would have found it harder to express my views to the people that could do something about them.

I want to continue blogging about my software development experiences. Inevitably many of those experiences will be negative, because those are the most interesting ones to write about. I expect these experiences are hardly unique – there must be huge numbers of software companies and developers facing similar problems. That’s what I hope will make this blog valuable over the coming months and years as I continue to write about the world of software.

Where things are negative, there is the potential for making things better, and if I have an idea for making things better, I want to implement it – or at least share it. What could be more positive than that?

How to lose staff and make your software company fail

Having handed in my notice at work, nothing much has changed – I’m carrying on in the same way as before. I turn up in the morning, fix the odd uninteresting bug, and leave in the evening.

Since I’m not working on a big project at the moment, I don’t have anything to hand over, so I don’t even get the satisfaction of wrapping things up and handing them on to someone else. Instead I’m plodding along, counting down the days until I can leave.

As software developers, we need varied work with a sense of purpose. Giving staff nothing to do but bug fixing for months is a good way of filtering good developers out of your organisation.

With no real goal in sight, there’s no feeling that things are moving forward, and working life becomes an unrelenting march, bug bug bug bug, bug bug bug bug, bug bug bug bug. Every day is much like every other day, and they merge in the memory. Weeks skip by with nothing to identify them except for the management’s statistics on how many bugs you’ve fixed. The idea of introducing these statistics was, I presume, to encourage people to work harder, but it’s pretty demoralising when your entire week is distilled down to “10 bugs fixed, 1 test failure”. That’s not a way of getting the best out of your developers, that’s a way of getting your best developers out.

The latest missive from senior management tells us the strategy for the next year or so is to focus even more effort on bug fixing, at the expense of work to enhance the product. While there are certainly plenty of bugs to be fixed, I strongly feel that there also needs to be an investment made into fundamental refactoring and redevelopment of the software – the company is storing up problems for the future otherwise. So much of the system is written using crappy old VB6 – moving over to .net will take many years, and putting it off means it’s going to be harder to recruit and retain good developers. They’ll be paying premium rates for the kind of developers who don’t have an interest in technology or creating good software – they need to invest now to stop that happening.

The current strategy will undoubtedly save money in the short term, but failing to invest in your future is a terrible mistake.

But at least I now know I have made the correct decision, because I’m not afraid of making the effort to invest in mine.

My greatest weakness

A classic job interview question is “what is your greatest weakness?”. I suppose mine is that once I get bored, that’s it. As soon as I’ve got comfortable in a job and think I’ve got it all figured out, as soon as I’ve stopped being stressed because I don’t know what’s going on, as soon as I’m part of the furniture, there’s only one place to go – the exit.

So, after three years for my current employer I’ve handed in my notice. I’ve certainly improved a lot as a software developer since I got there, but the pace of improvement has slowed a lot recently so it’s time to move on.

I’ve decided to seek out temporary contracts instead of permanent employment. That should keep the boredom levels down, give me a nice variety of different work – and let me spend time between contracts building up my software business Axe Software. Yes, you may not think that text adventure games are the future, but you’ll see. Eventually. Perhaps.

It will be a bit more hassle – regular job interviews, the administrative overhead of setting up a limited company, and reduced job security, but really, overall it’s a no-brainer. I wish I’d thought of it sooner!

So, I have two questions – anyone need an awesome C# developer starting in August for, say, six months? And does anybody know a good accountant?