I'm thinking this is gonna be pretty long by the time I am done.
I'm a software engineer. I work on computer code. I check code out of a repository, make changes to fix a bug or implement a feature, and check the code back in. The repository has different "branches", which are basically different versions of the code that builds the product which has gone out (or will go out) to customers.
So, we finished up major development for Product 6.0 recently. Yay, huzzah, let's have some celebratory events! There are a few other things to clean up, mostly things found in alpha- and beta-testing, but nothing else is supposed to be changed in 6.0 so that we have a stable set of features and stable code-base to present to the world.
OK, so new features and things that we decided we weren't fixing get checked into the next branch. That would be 6.1, right?
Right?
Hello, is this thing plugged in?
Well, you see, we had too many development branches for the 6.0 version, and putting them together into a single code base was painful. We don't want to go through that again, so we are trying to figure out the "branching strategy".
So, can I have some branch to check into in the meantime? No? Um, OK. I guess I can just sit on this fix that I have implemented and tested and had reviewed and all of that.
After a few weeks, I start asking people. Like my supervisor. And her supervisor. And his supervisor. And his. I go up four levels of management, asking "What is going on with the Product 6.1 branching?" I get basically no answer. The four-layers-up guy basically blew me off with some general platitudes and no actual answers.
So it's been a month, and I am just about spitting nails from frustration. I have two change sets pending, and I know from experience that if I have much more than that I start getting things mixed up and breaking the software. So I keep trying to ask people, and keep getting nowhere.
Finally, last Thursday, we get the news that they have a development branch for Product 6.1! Yaaay and hurray! I try to get it set up.
Oops, that thing there is wrong. I complain to management T (two layers up and at least one jump laterally, so not my direct manager) and that gets fixed. So it's all set up, my changes integrated, and tests passed. So I can request permission to check in.
Except, no I can't. The branch state is "NOBODY CAN CHECK IN EVER!" for some reason. So I complain again to T. Oops, I'll get People to fix that. But that takes two tries; People have fixed it but when T tries to do the second half of that it turns out something else is wrong. So People have to fix it again. And so I request approval.
Which takes another couple of days to come, of course. But it does, so I can check in! Hurrah!
Except no, I can't. Somehow the state is back into "NOBODY CAN CHECK IN EVER" again. I complain to T, she has People fix them.
I try again to check in. But now it says "Your checkin has to be approved by Person"--someone who is not anywhere near the actual approval chain, all of whom have already approved this checkin if you'll recall. I try to check the username for Person, and get a "does not exist" from my system. It turns out they do in fact exist, at a different site, but for whatever reason my system doesn't know about them. My acting boss (my direct supervisor is on vacation by now) uses a different tool to find Person's contact info. He seems to be part of the group of People above.
So I email Person to see what is up. "Oops!" he says. "The ownership info is now fixed." Good! In the meantime, is there any way we can prevent this sort of thing from happening in the future? "Well this is an unusual case, and the systems don't have anything to do with each other." (Yeah, except for containing the same info and causing problems if the info is different. Maybe just say that you don't wanna fix it, OK buddy?) At least I can check in now.
Nope, REJECTED. I am told that I must get approval for the check-in. From the people who have already approved.
Person gets an email, asks for the exact error message, I copy-paste for him, he takes some action or causes some action to be taken, and he asks me to try again.
OMFG, I JUST CHECKED IN! After sitting on a completed change set for more than six weeks and completely unable to do any further work for that whole time, I have finally completed this task!
You know, the most hysterical thing about this all to me is that we are supposed to be undergoing an "agile transformation". Which is going great, except for the "agile" part and the "transformation" part. We seem to be doing the exact same things in the exact same ways, and doing things in a slow and monolithic way. Which is pretty much as far from anything agile as you can possibly get.
Sigh!!
At least I can move on to the next task!!
I'm a software engineer. I work on computer code. I check code out of a repository, make changes to fix a bug or implement a feature, and check the code back in. The repository has different "branches", which are basically different versions of the code that builds the product which has gone out (or will go out) to customers.
So, we finished up major development for Product 6.0 recently. Yay, huzzah, let's have some celebratory events! There are a few other things to clean up, mostly things found in alpha- and beta-testing, but nothing else is supposed to be changed in 6.0 so that we have a stable set of features and stable code-base to present to the world.
OK, so new features and things that we decided we weren't fixing get checked into the next branch. That would be 6.1, right?
Right?
Hello, is this thing plugged in?
Well, you see, we had too many development branches for the 6.0 version, and putting them together into a single code base was painful. We don't want to go through that again, so we are trying to figure out the "branching strategy".
So, can I have some branch to check into in the meantime? No? Um, OK. I guess I can just sit on this fix that I have implemented and tested and had reviewed and all of that.
After a few weeks, I start asking people. Like my supervisor. And her supervisor. And his supervisor. And his. I go up four levels of management, asking "What is going on with the Product 6.1 branching?" I get basically no answer. The four-layers-up guy basically blew me off with some general platitudes and no actual answers.
So it's been a month, and I am just about spitting nails from frustration. I have two change sets pending, and I know from experience that if I have much more than that I start getting things mixed up and breaking the software. So I keep trying to ask people, and keep getting nowhere.
Finally, last Thursday, we get the news that they have a development branch for Product 6.1! Yaaay and hurray! I try to get it set up.
Oops, that thing there is wrong. I complain to management T (two layers up and at least one jump laterally, so not my direct manager) and that gets fixed. So it's all set up, my changes integrated, and tests passed. So I can request permission to check in.
Except, no I can't. The branch state is "NOBODY CAN CHECK IN EVER!" for some reason. So I complain again to T. Oops, I'll get People to fix that. But that takes two tries; People have fixed it but when T tries to do the second half of that it turns out something else is wrong. So People have to fix it again. And so I request approval.
Which takes another couple of days to come, of course. But it does, so I can check in! Hurrah!
Except no, I can't. Somehow the state is back into "NOBODY CAN CHECK IN EVER" again. I complain to T, she has People fix them.
I try again to check in. But now it says "Your checkin has to be approved by Person"--someone who is not anywhere near the actual approval chain, all of whom have already approved this checkin if you'll recall. I try to check the username for Person, and get a "does not exist" from my system. It turns out they do in fact exist, at a different site, but for whatever reason my system doesn't know about them. My acting boss (my direct supervisor is on vacation by now) uses a different tool to find Person's contact info. He seems to be part of the group of People above.
So I email Person to see what is up. "Oops!" he says. "The ownership info is now fixed." Good! In the meantime, is there any way we can prevent this sort of thing from happening in the future? "Well this is an unusual case, and the systems don't have anything to do with each other." (Yeah, except for containing the same info and causing problems if the info is different. Maybe just say that you don't wanna fix it, OK buddy?) At least I can check in now.
Nope, REJECTED. I am told that I must get approval for the check-in. From the people who have already approved.
Person gets an email, asks for the exact error message, I copy-paste for him, he takes some action or causes some action to be taken, and he asks me to try again.
OMFG, I JUST CHECKED IN! After sitting on a completed change set for more than six weeks and completely unable to do any further work for that whole time, I have finally completed this task!
You know, the most hysterical thing about this all to me is that we are supposed to be undergoing an "agile transformation". Which is going great, except for the "agile" part and the "transformation" part. We seem to be doing the exact same things in the exact same ways, and doing things in a slow and monolithic way. Which is pretty much as far from anything agile as you can possibly get.
Sigh!!
At least I can move on to the next task!!
Comment