Posted on 5 July 2006 under
General,
Management
I have a simple test that tells you a lot about the culture of any organisation. There are two questions you need answer:
- If you are talking one on one in their office do managers generally answer the phone when it rings (thereby interrupting your conversation) or do they leave it for voicemail?
- Do managers regularly choose to delay or stand-up multiple subordinates when summoned by their superordinates?
If your answers are interrrupt and stand-up then you have a management culture that believes that they are central to getting things done. This is, of course, pretty bogus, selfish and arrogant. If you have only one of interrrupt and stand-up then you have a warning sign. Hopefully, things are trending away from the arrogant management culture. Managers exist to enhance the performance of others - if they do their job then they become less necessary.
Posted on 12 June 2006 under
General
Have you ever felt that terrible sinking feeling? The one where you realise that the latest upgrade of Super Corporate BlahBlah has broken a huge chunk of the loving customisations you did the year before last? Its a trap - the flexibility trap. Unless you are careful or lucky lots of corporate software forces changes to existing customisations and integrations. So all those special screen hacks you did will break. Those database queries that you use to feed the latest figures into your ERM system - dead.
The trap isn’t triggered when you decide to do a customisation. No its long before that. Its triggered when someone decides to buy software that:
- needs to be significantly customised to suit your needs; or
- needs to be customised before it can be used at all.
So what should you do? There isn’t a great deal you can do right now - most corporate software assumes customisation and or massive implementation efforts. Witness PeopleSoft for example. The idea of Opinionated Software as espoused by David Heinemeier Hansson offers some hope in the future:
Opinionated software was a term I coined to describe the rebellion against the fallacy of objective software. That software should be as configurable as possible from the outset to allow every user to bend it exactly to their needs. Opinionated software dares say the customer is not always right. That not everything should be a preference, that decisions can be made once for the better.
I’d like to see that idea take a stronger hold. Be a master chef, prepare me a meal of code that you think is the best it could be. Spare me the construction kit.
If your corporate software was sensibly opinionated then you’d have less customisation to do (as long as you agreed with its opinion). Ideally opinions would be obvious and shared by salespeople (”only buy our stuff if you believe that bug tracking should be a simple three stage process”).
The second trigger of the flexibility trap is software that is an empty shell waiting for you to fill it. Lots of toolkits fit into this category as does some software. For example, I’ve been working with a product that is supposed to provide help-desk style support. It has a workflow engine built into it which must be used. The bloody thing doesn’t even come with a simple workflow process out of the box. Its infinitely customisable, so it can do anything but can you get it to help without becoming an expert in helpdesk processes? No way. A waste of everyone’s time during setup/install and a real pain when it comes to upgrade time. Even if they had a menu of half a dozen standard processes (and optionally customised for those truly special cases) to choose from it would be so much better for everyone (except for their consulting arm). GRRRHFDHHFDHRHEHJHHHH!!!
Posted on 23 May 2006 under
General,
Management
Today at work we decided to shelve a project. It was an update to an existing web content management system and was due to be released in a couple of weeks. Things appeared to be going okay until the project approached release. The project is pretty traditional (i.e. waterfall) and is/was in the “testing” phase. The development and testing environments have always been flakey (crappy architecture and people putting up with less than ideal situations) until about a week ago when they took a turn for the worse. Was it the code? Some problem with one of the servers? Nobody knows - the configuration control of the servers is out of hand - nobody can really work out what is going wrong. All up there was just too much risk floating around so we decided to bite the bullet and halt the project until we get the environments under control.
Lessons? I’ve got lessons:
- If something smells bad for a long time then it probably is. I wish I’d dug deeper into the smell earlier and ignored the advice that things “will be okay” or that the problems aren’t linked and are just a long series of individual, unrelated minor mishaps.
- If migrating between environments is done by manually repeating steps then stamp your feel and insist that it be automated. Don’t let the developers tell you that it has always been done that way and has always turned out alright.
- Go back to lesson one - remember to follow your gut.
Its a pity that we got so far and so much effort has been (potentially) wasted. Its embarrasing for us all. Worse, after the news of the project being shelved was shared with the developers they asked for one more day since they were sure they were close to fixing the latest problems. Now they think I don’t trust or believe them. That’s not true - I just don’t think that we can continue to dig ourselves deeper.
P.S. I started working on a new contract last year - its almost the exact opposite of my last role - big, very traditional organisation. The opposite of agile and not very fashionable technology or development processes (not much, if any, source code control, waterfall style testing, no real unit tests, etc). Email me if you want to know about why I left my last job. I don’t think I’ll be blogging about it - at least not for a few more months.