My most recent job was supposed to be a six month contract. It lasted two months.
First off, I have to give them some credit. I did not have experience with some of the technology they used, yet they still took me on. A lot of companies will not even consider you unless you have experience with a technology stack that is just like theirs.
I was brought on to help with a project that is important to the company’s workflow. The only person who really understood it was the guy who wrote it. That seems like bad risk management. Now there is a second person who understands it: Me. But I am not there.
I found out this project had been going on for ten months, and all that time there was no requirements document. They finally produced one, and I did not understand some things in it. I told the senior developer that I did not understand it, and I asked him if he could explain it to me. He gave me guidance, but he told me to ignore the requirements document and just do what he told me to do.
One of the daily stand up meetings was pretty tense. The tension was between the senior developer and the testers (who also helped craft the requirements document). When we all got back, the developers were all grumbling, and the senior dev at one point said that if the testers wanted to talk about things or had questions, all they had to do is come over here and ask. I had to bite my tongue. I thought to myself: You could have gone over there. (But then there was a lot on his plate. Perhaps there is some bad resource and project management.)
People talked about some other project that they had done a year ago. They were saying it was great because everyone was in the same room. If you had a question or needed to talk to someone you could just walk over and talk to them. I asked a few people: Why aren’t all your projects run that way? Nobody really had an answer for that. (Granted if all their projects were run that way, they would not have needed me.)
A few more interesting factoids: This company was a Java shop. But the app that I was on was in Ruby on Rails. I asked another developer (M) about another project that was starting up. I asked him which Java web framework they would be using, and he said they were going to use Struts 1.3. I asked him why not go with Struts 2? M said this new project was very important, and they needed it to get done quickly, and there was no time to learn the later version, so to better manage risk, they were sticking with what they already knew. Looking back, I thought: If risk management is so important, why was the senior developer I was dealing with allowed to write a Ruby on Rails app in a Java shop? Still later, it occurred to me that perhaps the Rails project was the reason there was less leeway with regard to frameworks. Maybe he was the reason everybody else was on a tighter leash.
So the project I was on was put on hold, and my manager said he had nothing else for me to do, so they had to let me go. I am upset about it. Somebody somewhere made some bad decisions, and I am out of a job.
I know life is not fair, but that doesn’t mean I have to like it.