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.