Hey, this is the Daily Overpass! My name is Eric and I make apps. Now today, I want
to talk about how working on someone else's code is like getting on an
elevator where somebody farted.
Aright, so every so often, we'll work on projects that we didn't start. I mean, the
preference is that we start new projects from scratch, but every so often we'll
get- I mean, frequently I get calls from prospects saying, "Hey Eric, we've
been working with this development team or even working with a software
developer and he's just really- you know, we're just not getting along well or the
project is a mess, can you come in and help out? Can you
finish it off and everything like that?" Alright, occasionally, we'll take something
like that, but more often than not, we don't because it's really, really
difficult to do. First of all, when they come in and say, "you know,
Eric, it's like 90% of the way finished but the developers just can't seem to get it
that last 10% to the finish line or whatever. Can you come in and do
that last 10%?" I always think it's like, somebody like me, if I
brought to you a jar of pennies and I said look I've counted like 90% of these
pennies, can you count the last 10%? You'd be like, well yeah, I don't know
what's done, what's not, what's tested, what's not, all this kind
of stuff. And a lot of times, when it's these kind of situations where the
client and their development company have fallen out, then there's not a lot
of conversation going on there. Sometimes, they don't even have access to
the code which is surprising, when you ask about that.
Well, can I have a look at the code? It's yeah, you know, I have to see if I could
get them to give that to you. So, as you know, it's really difficult. But when
I was a contractor, I used to do like a lot of work on existing project. In fact,
some of the places I've worked on, it seemed like, they gave all the new
projects to like new developers or like trainee developers because it
was something that could cut their teeth on, just get to grips
with everything, learn how to code a little bit, but then these projects would
pick up momentum. And then, the more senior developers would go in there
and work on them. A lot of times, it was difficult because it isn't-
like I always say, working on someone else's code is almost like cleaning up
someone else's room. You don't know what it's going to be
like when you walk in. You don't know- if
somebody says, we need to work on this project that the developer left,
and we need you to go in there, work on it, you don't know if it was
really well structured with something which is always, you know, I mean,
there are a lot of good developers out there. A lot of times, you're
going to look beside of you, okay, this is not how I would have done it, but
I could see the logic here, I can see where, this goes here, this goes
here and sometimes it's just a mess. It's like the lone wolf that sits
around the codes and just- in, out, whatever variables all over the
place and it could be really, really tough to read and really tough to
get to- get to grips with, right? And once you take over a project, you
take over all the bugs, all the- all the baggage that comes with it.
I like- taking over someone else's code is like- it's like getting on an
elevator where someone farted. So, you're waiting for the elevator, the
doors open, you get on the elevator, guy walks out, you get on the elevator and
when the doors close you realize, "Hey, that guy farted! Oh, this was nasty, right!?"
And just you just sit there, you try not to breathe, take short breaths.
Alright, so and then the doors open and then somebody else gets on the
elevator and the first thing you say was, "That wasn't me. That was the last guy!"
And when you take over someone's project, if it's like- if it's
like a shaky foundation or if it's got a lot of bugs in it, or it's like really,
really- if it falls over all the time, there comes a point where you can
no longer say, "Hey, it was the last guy." Because you've been looking after, I mean,
there was one project that an investment bank that I was working on for like two
years. And the entire two years I'm saying like, this is the last guy. Seemed
like I was always firefighting on this thing. It should have been rewritten but
once you bring that kind of stuff up, nobody wants to do it. So, you start
trying to rewrite things a little bit, but you know, if things are really -
if things are shaky all over the place, like you change one thing here,
other things start breaking and you start wanting to take the least risky
releases you can. In a lot of times, that's the case. So, for those of
you who have taken on project- actually, yeah, for those of you guys who
would have taken on like existing projects and you have had a hard
time or had an easy time whatever, let us know in the comments. Because
me, it rarely works out very well. I mean, there's a lot of money to be made
but if you do take on a project that from an existing- for an existing code
like- (laughs!) First of all, there's nothing worse than having
a developer throw a fit and leave a company and you have to go take over the
project. You know," oh so-and-so, he's leaving, he's, you know, he's all
upset about something so he's left his notice. We need you to take over the
project. Can you go talk to him." And you got to go and you talk to somebody
who doesn't want to tell you anything, who doesn't want to help you, who he sees
you as a threat anyway, because you're trying to make everything
smooth through the transition and he's like, "I'm quitting this place. This
people sucks!" I've done that. I've been in that situation. I've also been in
the situation where I was a guy leaving. But you know, I'm pretty ashamed to admit.
But for those of you guys have had a similar situation, let me know what
it's like. If you- if you work for clients, do you take on existing code,
you know, someone brings you some existing code, or do you always
insist it needs to be rewritten? This is one of the things that I know a lot of
developers- they just won't touch existing code at all. You know, the first
thing out of their mouth is, we need to rewrite it, which is you know fair
enough. I always think that I'm more in those kind of situations, are more like a
field medic, like I just see- you know, we can patch it up here, we could patch
it up here, oh, this is really bad, but we can like maybe encapsulate this
messy code and nobody touch it, that kind of stuff. So anyway, what kind of
experiences have you guys had? Anyway, that's it, I'll talk to you, guys, tomorrow.