Thursday, December 18, 2008

Anal? Perfectionist? Well, yeah...Triathlete.

Warning: I need to vent. This is just me ranting about work.

I'm on this absurd project for Merrill Lynch (sorry Kristina). It sucks. It's a HUGE site and a tiny timeline. The project plan is a nightmare. It's complete chaos. They had actually hired temp web developers for a while (they may still be there, but no one tells me much about the project). Oh yeah, and 90% of the project sits in another building, across the parking lot, a whole 2.5 minutes away. Everyone in this other building works off of a schedule posted on the wall. Yes, in this computer age, we have things written on the wall. This schedule changes at least weekly, but often several times a week and is only applicable for that week. It's the "this is what we're delivering this week" list. I can't see the wall unless I make a 5 minute roundtrip walk. But that's okay, because someone emails me the schedule for the week. HA! I wish. No, I'm going off of a schedule I was given over a month ago that I have since been told is essentially null and void. And here's the thing...for a lot of the stuff that the web is developing, they need data from me in order to finish everything. They can't completely code a page without my piece since they need to reference my code within theirs. This means that I should be done with thing before they start. So back to that schedule on the wall...what it really means is that everything listed are things that I would have needed to finish last week in order for the web to start working on them. But I'm not even give then schedule for this week, so how the hell am I supposed to know what I was supposed to have done last week?

That's Issue Number 1.

Issue Number 2. Project management. They have decided to create a ticket (essentially a work order) to track each module. There are often multiple pieces, and hence multiple people, working on a module. However, a ticket can only be assigned to one person at a time. It's a linear process. But we're not developing in a linear fashion - everyone is working on it at the same time and all are doing different things. So I'm supposed to update the ticket when I'm done with it even if someone else is assigned to it and potentially using it for something else. My comments end up getting lost in a huge mess of text. Really convenient for figuring out what's been completed or not. There's no way to filter on this. This means that I need to come up with another way to track my work because I know it's going to come back to me with people wanting to know if I'm done or not. And telling them to dig through a stack of tickets isn't going to cut it. The other problem I have with this approach is that if I run into an issue with my piece of the module, like mising data, where do I track this? Throw it into the ticket that's already assigned to someone else that really can't help me with my missing data and is therefore lost for all eternity within the bowels of a ticket? Just doesn't seem like a good idea. Who the hell is ever going to find this? An analogy: trying to find a word or phrase in a book without a Table of Contents or index. Good luck!

Because I need to be more organized than this, and as a CYA measure, I am tracking my work completely separately. I've given up on trying to convince people of the current method of madness. And of course what I've come up with tracks everything I could possibly track...what issues I have, who is looking into it, which tickets have been updated, and so on. I'm even tracking down to the specific data points that I have questions on. So at least I know where things stand. Actually, I was basically told that this is how they want to do it so I need to do it that way. Seems completely inefficient to me, but what can I do? So then I asked the web developers if they could let me know when I should promote my code to our testing environment. They asked if I could just constantly promote, like as soon as I was finished. I said that I would prefer some sort of confirmation from them that what I had given them worked and they were able to plug it in correctly. Sometimes we have different ideas about how things work and what I give them doesn't always work. I like to make sure my code works before it goes to anyone else. I test it to the extent that I can. When I pass it over to the developer, I also like to test this integration before sending it onto QA. What it really comes down to is that I take pride in my work and I like to do things right the first time. I'm thorough and I find that it saves a lot of time in the end. But they were basically asking me to throw away these work ethics and just go ahead a push it somewhat blindly. Their argument was that I would otherwise be getting hundreds of emails a day from developers asking me to promote my code. I really didn't have a choice and all I could say was that if I worked this way, I couldn't guarantee anything would work and that I would potentially break more things. I personally have a really hard time working this way. Again, I like being right the first time. I don't like being haphazard. I need to be organized.

Most of the people reading this blog are triathletes. You're probably all saying that there's nothing wrong with my way and that this is the way it should be done. That's because there's a certain personality and personality traits that many triathletes share. Being anal, being a perfectionist, being organized...Come one, we can tell you how many calories we need to injest per hour per activity. We measure out drink mixes for pre-workouts, workouts, and recovery. We are organized. We have schedules, routines. We have to plan in advance. And, and this is the big one, we remember every little thing that goes wrong and analyze it and over-analyze it and try and come up with some explanation as to why it happened and what we need to do to make sure it doesn't happen again. (This applies to good things as well, but we tend to not over-analyze them as much...). We do not like failure. We try and learn from our experiences. We are constantly striving to be better. I personally think that this is a commendable thing to want to achieve.

So it's really no surprise that I apply this to work as well. I probably apply this to most aspects of my life. Bu am I wrong for trying to do so? Am I wrong for trying to make things more efficient, to make things better?

I was at the bikeshop once and I was blabbing away to Tim (the owner). This was before my Ironman, and probably shortly after I got my new bike. Somehow I started talking about the movie Wordplay - a documentary about crossword puzzles and the people that do them (it's a good movie). I started to realize what I was saying and suddenly felt the need to follow it up with "sorry, I'm a bit of a dork". He looked at me and said that I was going to fit right into the Ironman world. I now understand.

So, to borrow from the old runner's saying...Triathletes. Yeah, we're different.

No comments: