I don't know if this question is more on-topic here or on SO, so if I've missed site, I apologize.

Anyway I was talking with a relative recently. She is working in a company which needed a website. They contracted another company which does web-apps and graphical design to make them a website, give source code and do maintenance. The site is supposed to give general economic propaganda about the company, to have a news section and to have a portal for associates where they will be able to get statistical information like amount of sales of their products and similar stuff. The last part was supposed to read data from the database used by the All-in-One program used by my relative's company.

The project was supposed to last three to six months and use LAMP (or WAMP) AJAX and Python. Unfortunately six months passed almost four times since the start of the project and the only results are couple of mock-up images. Furthermore they seem to be in a mess. They are avoiding contact and are always complaining how developers keep quitting after just couple of months of work and that they can't make a stable project team (on a side-note, they did websites for several other companies on time, so they were capable of producing the result at one time).

By now it is clear that the project will not be done any time soon and my relative's company is considering firing the contractors and taking whatever they did make and finding someone else to finish the work. Unfortunately, their IT guy didn't do any programming since PDP-11 era, so he won't be very helpful and it looks like it will be up to me to inspect whatever contractors did. I did some programming, but only a little bit of web programming, so my question is:

What should I expect to find in the code-base and resources? The thing is that they I have reasons to suspect that they share code across different projects and may attempt to weasel out parts of it.

I know that there will probably be a part with resources used by the site like images and so on and that there will probably be a database and some scripts.

Also, if you think that this should be turned into community-wiki or general "Failed Project: How to recover anything useful from it?" discussion, please comment.

Also, court is not a solution, because they are so efficient in my country that its decision would probably come in early 2020s.

2 Answers
2

Why is the development company failing to communicate? Probably because the client is failing to pay them for extra work. Yes they didn't deliver on time, but this is probably because of a bad estimation of the amount of work. It's not fair for the development team to have to work for free to finish what their bad estimation was for several years. It's also not fair for the company to have to pay for something and not get it.

Both sides are in a bad state and both sides should try to come to some conclusion together that is fair moving forward. Don't focus on sunk costs. This is the problem with contracted work, or the pay per task model. It usually ends like this.

In my opinion it's the company's fault for not paying close enough attention on milestones and deliverables as the project went on. And it's the developers fault for failing to deliver and failing to notify the company that they would exceed their deadline earlier. Both parties are at fault here.

Firing the development company and hiring someone new sounds like a good idea. But I would drop all expectations about re-using some of the code. I would treat it as a new project so it can gain proper momentum, and give the new developer the old code as a reference. Also for the new development team don't set their time worked to include the old sunk cost time, they are starting from day 0 and shouldn't be penalized for previous failures.

From the old project, I wouldn't try to pick things out myself and give to the new development team, I'd just give the whole project to the new development team or demo to the new development team (or single developer).

The only part of unique code that you might need to assist the new company with is the code written for "read data from the database used by the All-in-One program used by my relative's company"

The failing to communicate part is meant literally. As in they aren't answer phone calls (unless they are from a number unknown to them) and e-mails anymore. They also did several graphic design projects in the mean time which were payed on time and which were received with mixed results. Furthermore, they themselves wrote the contract which didn't include any milestones. They put amount of money which needs to be payed upfront and amount which needs to be payed after project is complete. I agree with not picking old parts and am mostly interested in the local database part too.
–
AndrejaKoSep 9 '10 at 13:56

2

@AndrejaKo: The company needs to be part of this development process too. This includes setting mini deadlines or mini tasks and getting status reports of the work done each day. The company could have avoided this whole mess probably at month 1 or 2 and fired them at that point. I hope that the next experience they will focus more on the warning signs. The development team really does sound like they are horrible, but the company should have realized that such companies and people exist and fired them sooner. Also to me it sounds like they would do better with a single good developer.
–
Brian R. BondySep 9 '10 at 13:59

1

You're right. Regular updates would definitely be a good idea next time! I'll try to pass the dedicated developer idea too. The company is big enough to support one and there are several tasks in addition to website which could be automated with few well placed programs.
–
AndrejaKoSep 9 '10 at 14:13

First is the architecture and design, the idea that "The site is supposed to give general economic propaganda about the company, to have a news section and to have a portal for associates where they will be able to get statistical information like amount of sales of their products and similar stuff." You have that.

Second is the actual text and images on some of the pages. They may have put these into some overly complex content management system (and you may not want to use it) or they may be plain HTML. Whatever; they come out as HTML in your browser. Pop around the staging site saving pages as HTML and right-click saving images.

Third is the code that may or may not have been written to read data from the database. Chances are this is where all the mess and trouble and delay is -- you are unlikely to want it anyway. However, if they are decent folks, or if they believe they might get one more payment from you, then they should be willing to zip up their code and send it along. The MP of LAMP is MySql and PHP so that is what to look for in this area.

Best of luck to those involved and do not waste the time and effort put in by people who commented on the mockups. Make sure your design for the new system includes all the "oh yeah I should have been clear that we need" that arose from them.