Best euphemism I've ever heard for being blessed with many children: "overrun with nose-miners".
* * *
I've felt awful all morning, but after the torrential rain passed-through and I took 2 Advil, I'm feeling better.
I have a brand new picture pasted to my office wall to the right of my cubicle:
***
I feel a wave of relaxation and good feeling coming over me today; three of us on the team are doing neat things with our code, and we're doing them "The right way". No shortcuts, no hacks, just right. Let's see how long that lasts.
My day yesterday was wonderful: I got to code some, and I made something work by 7 pm that as recently as noon I'd said "No freaking way is this gonna work." That's when I get scared of my job, folks: Not when I hate it, not when I think I'm going to be outsourced to India, not when there's more work than we can possibly do. No, I get scared when I'm absolutely LOVING my job, because that's when I lose all balance with it. There are other aspects to life, you see: Friends, family, housecleaning, hobbies, personal and spiritual health. When I'm loving my job, I'm coding for 8, 10, 12, 14 hours a day, and not complaining. LOL...It's what I *like* doing. Alas, to find balance, you need to be coding 5-8 hours a day, doing office tasks the rest of the time, and have a personal life.
Not to belabor the point, but I need to remind myself of that during these times especially.
* * *
The reason the three of us are so frantic is rather ironic: For years, software development in our shop has lacked any sort of formalized process. We've generally known how to do this the right way, but we can't say for sure that any given project will complete on time (or at all), because we have no metrics or workflows. Everything is ad hoc, and this makes sense because everything here is based around the cult of personality. Individual products or areas aren't "the firmware team" or "MVP" or "printers", they're denoted by the people that head them. For instance, the firmware team is "Watrous's Group", etc. Therefore, much of our "process" was one guy calling another and asking a question. Simple enough, but not formalized, and we've had some really big issues whenever a person goes on vacation, leaves the company, or dies. No crosstraining or documentation is a huge hit.
So, for years, we've screamed "PROCESS! We want PROCESS! Formal Requirements! Design Reviews! Code Reviews!". Too many times, the person responsible from marketing has just thrown us something over the wall and said "figure it out", and crappy products resulted. We wanted to formalize that, so that worse case scenario, we could CYA when some customer complains that a given function is useless, buggy, or both. :-)
Well, in the truest case of "be careful what you wish for", we got more process than we can handle. Management went overboard, figuring if a little control was good, then turning our manual processes into a Gulag must be better. All changes to our product down to Bug Fixes are going to have to go through a Change Control Board, or CCB. Yes, ladies and gents, the greatest threat to a product is apparently THE PEOPLE WHO WORK ON IT! >>sigh<<
This wouldn't be bad, in and of itself, as we've had this sort of thing informally for years. Whenever you make a change, the lead architect of that component looks it over. However, they want this on a project-wide scale for every product through ONE change control board.
Okay, an example: I made a change last night that touched 227 individual pieces of code. The change was minute, making all inner classes package-private instead of private so we comply with Java 1.4's language specification. However, given that a technically competent person can read code at the rate of about 1 class per 10 minutes or so (and that's being generous), that's thirty-eight man-hours of code reviewing that each member of the CCB would have to do. So, assuming they didn't drink coffee, have meetings, and worked 8 hrs/day solid, I could have the okay of the CCB for my 1 change group in a little over a week.
Yeah, sure. :-) Gridlock and bureaucracy on a monumental scale.
But anyway, we're trying to make as many necessary system-wide changes as possible under-the-radar before the CCB's Draconian reign begins.
* * *
I've felt awful all morning, but after the torrential rain passed-through and I took 2 Advil, I'm feeling better.
I have a brand new picture pasted to my office wall to the right of my cubicle:
***
I feel a wave of relaxation and good feeling coming over me today; three of us on the team are doing neat things with our code, and we're doing them "The right way". No shortcuts, no hacks, just right. Let's see how long that lasts.
My day yesterday was wonderful: I got to code some, and I made something work by 7 pm that as recently as noon I'd said "No freaking way is this gonna work." That's when I get scared of my job, folks: Not when I hate it, not when I think I'm going to be outsourced to India, not when there's more work than we can possibly do. No, I get scared when I'm absolutely LOVING my job, because that's when I lose all balance with it. There are other aspects to life, you see: Friends, family, housecleaning, hobbies, personal and spiritual health. When I'm loving my job, I'm coding for 8, 10, 12, 14 hours a day, and not complaining. LOL...It's what I *like* doing. Alas, to find balance, you need to be coding 5-8 hours a day, doing office tasks the rest of the time, and have a personal life.
Not to belabor the point, but I need to remind myself of that during these times especially.
* * *
The reason the three of us are so frantic is rather ironic: For years, software development in our shop has lacked any sort of formalized process. We've generally known how to do this the right way, but we can't say for sure that any given project will complete on time (or at all), because we have no metrics or workflows. Everything is ad hoc, and this makes sense because everything here is based around the cult of personality. Individual products or areas aren't "the firmware team" or "MVP" or "printers", they're denoted by the people that head them. For instance, the firmware team is "Watrous's Group", etc. Therefore, much of our "process" was one guy calling another and asking a question. Simple enough, but not formalized, and we've had some really big issues whenever a person goes on vacation, leaves the company, or dies. No crosstraining or documentation is a huge hit.
So, for years, we've screamed "PROCESS! We want PROCESS! Formal Requirements! Design Reviews! Code Reviews!". Too many times, the person responsible from marketing has just thrown us something over the wall and said "figure it out", and crappy products resulted. We wanted to formalize that, so that worse case scenario, we could CYA when some customer complains that a given function is useless, buggy, or both. :-)
Well, in the truest case of "be careful what you wish for", we got more process than we can handle. Management went overboard, figuring if a little control was good, then turning our manual processes into a Gulag must be better. All changes to our product down to Bug Fixes are going to have to go through a Change Control Board, or CCB. Yes, ladies and gents, the greatest threat to a product is apparently THE PEOPLE WHO WORK ON IT! >>sigh<<
This wouldn't be bad, in and of itself, as we've had this sort of thing informally for years. Whenever you make a change, the lead architect of that component looks it over. However, they want this on a project-wide scale for every product through ONE change control board.
Okay, an example: I made a change last night that touched 227 individual pieces of code. The change was minute, making all inner classes package-private instead of private so we comply with Java 1.4's language specification. However, given that a technically competent person can read code at the rate of about 1 class per 10 minutes or so (and that's being generous), that's thirty-eight man-hours of code reviewing that each member of the CCB would have to do. So, assuming they didn't drink coffee, have meetings, and worked 8 hrs/day solid, I could have the okay of the CCB for my 1 change group in a little over a week.
Yeah, sure. :-) Gridlock and bureaucracy on a monumental scale.
But anyway, we're trying to make as many necessary system-wide changes as possible under-the-radar before the CCB's Draconian reign begins.
Comments
Post a Comment