Thursday, October 24, 2013

Are you done yet?

I would like to start this off by saying that not every story I post here is a true story. There are almost always exaggerations, since they get the point across the best, and the people, places, and companies involved are probably not who you think they are. I've worked in plenty of places with plenty of people.

So...I once had this kind of conversation:
Other Person: "Do you have everything checked in to TFS?"
Me: "They aren't done testing yet, so I don't know what needs to be fixed."
Other Person: "Well...we need to move to staging so we can get the release out."
Me: "Ok, but we need to test our stuff first and fix the bugs they find. They just started testing today."
Other Person: "Well, you think you can have all the bugs fixes done by 12:30?"
I look at the time.....it is  just past 11:30.
Me: "I can't tell you that, because I don't know what bugs there are....because they aren't done testing. They probably won't finish testing today either. "
Other Person: "But we need to go to staging. How about you fix what you need to fix and just ignore anything they tell you they need fixing for this upcoming release then"
Me: Sliently screaming and cursing.

Now some back story for this little conversation. We have a one month release cycle. There is a date for a code freeze, the day where all of our code for new features and changes to old feature need to be in by. The next day, a new build is supposed to be built for testing. From what I gather is SUPPOSED to happen, we get a week to test the new code / fix bugs, and then it moves to "staging" and then live right after that. So generally three weeks of coding new stuff / fixing bugs that have made it to production and a week of debugging new code. (I don't know what the actual schedule is...nothing is documented). What happened here is that the guy who is supposed to do the test build didn't get to it until Friday...which is basically our whole testing week. Tt doesn't matter to him though, different employer and all. So the move to staging was supposed to be that Friday, the day he did the test build. In certain places of employment, this isn't a problem, since they have a test environment that they themselves control. We do not. We are subject to the whims of others, and it makes me mad (we don't even have proper testers either).

Here are some of the problems I have identified that this story and conversation present. The first being a delay in the schedule....but not moving the deadline. When you have something on your schedule..say like updating an application, and it can only happen after something else on your schedule...like testing said updates and correcting bugs....when the first something is late or delayed, the thing that follows is automatically behind. So if you are five days late to making the build for the test server and we need and/or get five days for testing before moving to staging, then the date to move to staging gets pushed back five days, otherwise you end up with a pile of s**t. Good example would be the ACA Exchange website. I think they only had like two weeks or so for testing. I could be wrong about that, but it wasn't nearly enough time. And changing the requirements of the product with less an a month to launch means you need to push back the launch date...or not change the requirements (yea, that would have been easier). If you don't have cushion days, you can't keep your schedule if a single thing ends up falling behind. Cushion days are extra days to get stuff done in case something like this happens. They are a bit like hurricane days that schools get in Florida. They are extra days off for the students...unless a hurricane comes in and wreck the hell out of the school, making it close down. In that case the student makes up those days the school were closed by attending school on the hurricane days.

The other problem with this conversation is asking me when the bugs will be fixed. I can't possible know that...especially if I don't even know what the bugs are! That is like asking a physics student how many sheets of paper they need to solve a problem when they don't know what the problem is. It could be half a sheet of people....or it could be 10 sheets of paper. Depends on the problem. It is the same with coding, a bug could take 10 seconds to fix, it could take the entire week. I can't know until I see the problem. Every coder does things wrong from time to time. It happens. If you can't fix the bug by the time you are ready to go to staging, you roll back your changes and that feature isn't released. Simple.

The correct course of action here would be to roll back our changes and not release any features since there was no time to test. That isn't what happened. In fact, I'm not really sure what happened. Testing was still being done the next week and I was still checking in bug fixes the next week. I guess they gave us more time to fix stuff. Which makes me wonder why I was being hounded with that conversation in the first place. I suppose that is a post for another day though.