

Ask HN: A contract project has exploded in size. What should I do? - teclys

I'm currently working on an application for a company, a project which involves interacting with their mid-sized API. The application is a port of their existing iOS application. When I gave them an initial estimate for this project, it was based on two assumptions:<p>1. The API would be documented.
2. The iOS source would be reasonably well constructed.<p>Having received access to both the API and the iOS source, neither of these assumptions have proved true.<p>The API is barely documented, there are redundant methods (with some deprecated or discontinued, but not mentioned), data is repeated across models without any reason, and worst of all most calls return silently without any indication of success or failure.<p>The iOS application is the result of several years of low-budget contractors throwing together code. None of it is commented, there is code duplication all over the place, and it aids very little in the construction of the Android application.<p>Because of this, it now looks like building an API client alone will take me almost as long as the original project estimate. Further complicating things is that I start a new job at the end of the month (the original project would have been finished much before my start date), but now there's no way I can get the whole application done before that date.<p>I'm not sure what to do. I don't want to simply throw away the weeks of work I've performed for nothing, but I also don't see a way to finish the entire application before my start date.<p>I'm sorry for the size of this. I'm just not sure what to do. Does anyone have any advice?
======
mindcrime
Well, it may be late to talk about this point now, but you should build
protections against this sort of thing into the contract, so you have defined
adjustments to the terms if certain assumptions prove false (or change). In
this case, I'm guessing you don't have that, so you have a couple of choices.

1\. Sit down with the customer, explain the situation to them, and tell them
that you need to ask for more money in order to complete the project. If they
agree, use the extra money to subcontract the project out.

2\. Find somebody else who would be interested in taking over the contract
(preferably somebody you know, trust and have a relationship with) and then
sit down with the customer, explain the situation and say that you'd like to
negotiate a hand-off to the new supplier, who is better equipped to handle the
project.

3\. Go buy 10 cases of Red Bull, get some tooth-picks to prop your eyelids
open, and work straight through and get 'er done.

4\. Sit down with the customer, explain the situation and offer to deliver
what you have, for a pro-rated portion of the original price.

5\. Sue the customer.

6\. Cancel the project outright, eat the loss and chalk it up as a learning
experience. Next project, make sure you have a contract that features a change
management process, opt-out clauses, incremental delivery (and payment), etc.,
to protect you from getting burned (that is, assuming you don't have those
things now).

Note that option (5) above is totally a joke, and (3) is probably not
recommended. I like (2) best, if you can pull all the pieces together. That
way you preserve a positive relationship with the customer, and potentially
enhance relationship with whoever you hand the work off to.

------
vitovito
What does your contract with them state happens when they don't live up to the
terms of the agreement?

That's what this is. The agreement was that they would provide a documented
API and a well-constructed iOS app, and you would build an Android app, right?

So now that they haven't provided at least one of those, that's a breach of
contract. What does your contract say happens?

Mine say if the scope of work changed by more than 10%, work stops and the
contract needs to be renegotiated. If they don't meet their deadlines, work
stops and the contract needs to be renegotiated. If something outside of my
control occurs (users not showing up for feedback sessions or something) to
the degree that it materially affects my work, work stops and the contract is
renegotiated.

Sometimes that renegotiation is just a couple of phone calls and an updated
statement of work.

Sometimes we kill the job and they pay their kill fee and we both walk away.

What's your contract say?

------
relaunched
F*ck You, Pay Me - <http://vimeo.com/22053820>

Watch it. Learn from it. And be a professional.

Do you have a contract? If so, does it cover this type of situation? Either
way, go chat with a lawyer.

Here's my IANAL advice. I'll run under the assumption that you don't have a
contract. Get out! There is no way to exit this situation without having a
very angry client. But, if you haven't accepted any payment yet, deliver all
of your diligence, along with a list of a few, reputable contractors to take
over the work, and forego payment.

If you do have a contract, things could get a little hairy.

------
sharemywin
Did you cover those assumptions with the client? If so, talk to them. See
where things land. Maybe you can document what they do have and some of the
prototpye code and code clean up suggestions. Which can be provided to someone
else that can do the job.

