Hey this is the Daily Overpass, my name is Eric and I make apps. Now today, I want
to talk about when software projects fail.
Ok so I hope you guys have had a great Easter. Easter holiday for us is kind of a strange one with half
the team in the Philippines and here in England, because in England
we get Friday and Monday off with Easter Friday and Easter Monday.
Then the Philippines, they get Maundy Thursday off and Friday off, but they
come to work on Monday. Like today, today is Monday so they're working and
in the UK we're not, but I am because I always am. So anyway,
I hope you had a great Easter I guess is what I'm saying. So today I want to
talk a little bit about failed projects. I read it somewhere once that
a large portion of software projects fail, especially
the big million-dollar ones in the giant projects.
There's a lot of failure in software development. Now for us, we haven't really
had that many failures in terms of projects not completing,
but it happens sometimes. So today it happened. Like for me, the
only reason a project will fail - well there's two reasons a project will fail -
first, the client starts asking for more scope and we just can't
we just can't do it. Either we have to release what we have,
and that's never really happened. Once
we insist, we can't do any more. We could do more, but we have to charge more.
We just can't keep adding scope onto it, and usually it could get a bit
heated, but usually it's fine after that.
The other thing is that I just quoted wrong. So today I had to tell a
client that I just wasn't able to do something, and
it's the worst feeling in the world, because there's been
times where I've lost lots of money on a project because I just would not admit
defeat. I quoted way too low and I'm
sitting there in the middle of the night, I'm working on this thing five, six, seven
times longer period of time than I've actually quoted for. So
one of our client projects we did this, it was a few years ago we did it
and they didn't have a back-end so it was a small company.
But they didn't want a back-end, they didn't want the whole API
in infrastructure, which would have made things easier but they did want to use
Dropbox. So, we need an app that uses Dropbox as the API or as a back-end.
So we use Dropbox for authentication, for login, for storage, all that kind of stuff.
And it actually works pretty well, it worked pretty well. But at the
beginning of this year, well last year, Dropbox have brought in version 2 of
their API and then they deprecated at the beginning this year so it stopped
working. So they came to us and said, everything stopped working, what's
happened? And I looked at it and was like, okay we need to upgrade the API on this
because it's been quite a while since we released it and we just needed
to upgrade it to the new one, it should be fairly simple. I quoted,well I
won't say how much I quoted, but I quoted, and then they said,
actually, we would like to use this other back-end because we don't use Dropbox
that much. We would like to use this this other back-end.
Which wasn't as mainstream as Dropbox - it took a long time to
get Dropbox working to be honest, and it took a little bit longer than I would
have liked, but everything works. So I looked at
it, I looked at the documentation of that API, of the other service API, and it
wasn't that great but, I mean there was documentation, so
I looked at it, I just quickly looked at it and said "yeah ok, that'll probably take a
couple more days, it would cost this much". So they say actually yes, let's do that
rather than just go to version 2 of the Dropbox API, let's go to this other
system. Now, once I started doing this, and this was another one,
because like I said, right now I consider a failed project one that I'm
coding on. But this is one that I did all this code on, and I thought it's best if
I work on this because bringing someone in to learn
everything else that was on that one - it would just be quicker for me to do it,
which is a failure on my part, because if I keep thinking that way I'm always
gonna be willing doing it. But I was working on this, and I said it
would take like a day, no I said it would take like two days. I think I was working on
that thing for five days, I just could not get this API working. Now, I think
if I had another five or ten days, maybe I could have figured it out. It was one of
these situations where you just try and think. The documentation
doesn't say a lot, so you just make these HTTP calls, it's vague
on some of the parameters - you're trying all this different stuff over and over
and over again, banging your head against the desk, and in the end I just had to say:
Look, we're not gonna be able to do that. Or, we could do it, but I'm gonna have to
charge a lot more and I've already quoted you, I really don't want to recoil.
I don't want to renegotiate anything. Can we just go back to the version 2 of the
Dropbox API? I'm terribly sorry, I'm not gonna charge you for all this time that
I put into this because that's unfair. The bad quote, that was on me.
If I just kept doing it more and more, I would just be
digging the hole even deeper. So, I went to them and they said, "we
understand, thanks for trying. because we worked
really hard for them before and every time there's a bug, we fix it.
Most of the time I don't even charge.It's just, the bug, even though it's past
the warranty, I'll still kind of do it because I'm nice and all this stuff.
So they were very understanding but it just made me feel eurghh.
And it happened once before where I had the same kind of thing where it was a
project that interfaced with a wordpress site, with a WooCommerce
WordPress site, and I was looking through the API's and everything. I thought I could
do this, but I'll get someone in to do it, so I went on Upwork and I hired someone.
And this is one of the reasons I don't like Upwork, because
you go on up work and they say "oh yeah, I've worked with this before, yes I
could do it", all this kind of stuff, So you ask a few questions - okay
they seem confident. I don't know what I was thinking! And a few
weeks later, still waiting and they're going, hmm I don't think this can be done.
So yeah, they just completely mess up the
quote. I had to go back to the client and say look, I'll give you your
money back, I'm so sorry. it's gonna take a lot longer than I
thought, I misquoted it. And so of all the
projects, that's only happened twice where we weren't able to finish it
out of, I don't know, a few dozen projects, actually probably more than that.
But, it's just a bad feeling. So my question to you guys, for
those of you who work on clients, have you ever been in that situation where
you had to go back? I mean, I know I could have finished it if I put more time into
it and just kept putting every single combination of variables into this API
to find something that worked, but I just didn't have the time to do that and it
would have cost them a lot more than if I didn't stick to the
original quote, and I always try to stick the original quote, and that may be a
bit naive on my part. So anyway, let me know, have you guys had
this kind of situation? because I'd really like to know - make me feel a little bit better
about myself! That's it for today I'll talk to you tomorrow.