144

Non-techies aren't idiots (for the most part). They can understand a technical argument if you keep it high-level enough. Pick a task you thought should be simple, and walk them through why it's not. I expected this change to be one word in one file. The most likely place to change it seemed to be here, but when I changed it there, it only worked ...


87

Code structure, style, technical debt are one thing that - at least initially, until the client trusts you - you're going to need to live with. Security vulnerabilities are another matter. Personally, I would do an estimate based on the work required using the existing structure and style while making it clear that there are significant issues with the ...


76

Some great suggestions here on how to convey and communicate this to the client. Hopefully they will pay off for you. Major red flag here! If the client asks you not to make any changes other than what you've agreed to (HTML and CSS) I'd pass on this project and withdraw my bid. Even with a written and well communicated overview of all of the flaws and ...


57

I'd say that it is 100% ethical, and yes, I would ask my client to supply me with any non-standard tools that are required for a project. I would also say that the client has every right to ask for the tools to be returned to them at the conclusion of the project.


47

I think you make a mistake in assuming that the choice of technology is a purely technical decision. The customer seems to be concerned about the business implications of picking a particular technology. Given that, you need to present a case that addresses his business concerns at least as heavily as your technology opinions. Employers have to recruit ...


45

You hire honest programmers, and you (in consultation with them and possibly other honest programmers as a reality check) set reasonable goals in short time lines. If they don't meet the goals, fire them. If they do meet the goals, then it shouldn't matter to you if they play solitaire for 2 hours straight while they're clearing their minds and mulling ...


45

Yes. Missed deadlines are common in software development. Many freelancers meet deadlines by incurring in technical debt or hiding the dirt under the rug. Paraphrasing Frederick Brooks' The Mythical Man Month: Deadlines are often missed because project leaders continue to estimate software tasks the same way they do civil engineering tasks, which is a ...


32

Since what you're being asked to do is provide input for your client to write an appropriate proposal to the other client (owner-of-the-nightmare-code) for any work on that code, I'm going to go out on a limb and say that you're not going to be doing any thorough testing or refactoring or anything along those lines at this point. You probably have a very ...


30

Screenshots seems counter productive. If it comes to that, you're in trouble. The ideal is to have tangible milestones, and check their progress against them. If you can't get your money's worth on the milestones based on the amount of time you have to pay to get them, find other help. If you can't create the work at this level of detail, and don't know ...


30

Explain and possibly demonstrate the flaw When it's your word against his, everything you say could just be hot air as far as they're concerned. Once you show them how their app can be abused via SQL injection, then suddenly you're a person to be trusted. You're going to need credibility in order to renegotiate. And this is enough of a game-changer to give ...


28

Defects are an expected result of the software development process. For a time and materials contract, I would expect that the developers charge you for the time they spend fixing bugs. This is a normal part of a developer's job. For a fixed bid contract, I would expect that the developers eat the cost of the defects and deliver the system bug free (or as ...


27

In my experience, the source code IS typically handed over. The reason for this is that the person hiring you is buying your time to write source code. Usually if someone only gets the application and NOT the source code, they are buying a license to use the software, which is essentially what you're doing giving him the executable, but retaining all the ...


25

If an iPad is a new requirement your client should be paying for the extra testing and your fee should reflect that. You can ask the client for one to use for their project but if this is an ongoing need you will need to work the cost of hardware into your pricing.


25

One of the most effective ones: penalty by day of delay. This is also what is done for large projects, the penalty being sometimes thousands of dollars per day. If a precise deadline matters (for example if one develops for Olympic Games a web app which will handle the broadcast of the event in 2014, the deadline would be the beginning of the Olympic Games ...


24

First, congratulations on your contract! Ok, enough celebrating, let's get down to business. ;) I've been a consultant for over 15 years -- here's my advice. In project management, what you are talking about it "contingency" planning -- and you absolutely should do it, else you are likely to disappoint your client (and make yourself unhappy throughout the ...


21

Ownership of the code means that you will be assigning copyright to them. In practical terms, that means that you will not retain any of their source code when the project is finished. That way, you can't be accused of reusing the code you wrote for them in other projects. This is a fairly typical arrangement; they are paying you to write code for them, ...


20

Oh man, I was in this position so many times back when I freelanced I'm feeling your pain right now. It all changed when I changed my way of thinking about clients: all clients are con artists. Let me say that again: ALL CLIENTS ARE CON ARTISTS When you change to this perspective it is when you realize you actually have the leverage most of the time, ...


19

I started this as a comment, because at first I thought it was an aside, but it probably really isn't. I would fully document everything that you feel is should be redesigned, and why (what happens if they don't make the change), and an estimate on fixing the issue. I would be particularly meticulous with anything you perceive as a security risk. I would ...


17

You're planning on doing design work for hire. Unless you really want to be a permanent web host as your full time job (and even if you do, really) you should let your client host their website wherever they want. If you are concerned about your name being on it if they change the design, put a clause in your contact that you can demand they take your name ...


16

To be blunt, this question implies a tremendous level of ignorance about the software development process. It might be wise to take your company web site off of your profile [especially since it doesn't exist], and go read a book on managing software development projects. To address your specific question, as others have stated, if you want bug-free code ...


16

In your contract, you should specify an explicit list of supported browsers. This will save you a lot of trouble, if later the customer complains that the page looks broken on his stone-age Windows XP notebook with IE6. (Read what happened to this guy.) Since you use libraries, the intersection of their browser compatibility lists (jQuery, Bootstrap) is ...


15

No, you are not deluding yourself, it can be done! One of the guys here did that, though I don't know the details of how but I think he started as an underwriter, became a BA for underwriting interal software development, then somehow transitioned into full-time development. I would guess that he already had a technical background, like you do. It might ...


15

In my opinion, and please don't take this as being a criticism of you - after all I have not a clue who you are, what this website is etc etc: You can't charge for this and to highlight the work to your client, even charging with 100% discount runs the risk of making you look amateurish; and that's not what someone pays you for. From the client's point of ...


14

My personal experience is that the online freelance sites are overly-filled with people with limited abilities flooding request in an attempt to be the lowest bidder. They rank above Monster.com on my list of "places where I should avoid in my job search." That site, in particular, looks like it is going along with the "we don't want to pay for quality" ...


14

The site you have mentioned is a good site with lots of projects. The thing that is common to such sites are: You have to bid cheap to win. Some projects are priced very very low. You have to be really good. You must pick a site with arbitration since customers (some time) nag about the product You have to be very clear and waste good time communicating ...


14

What you want is called a contract. The contract say what they have to deliver and when, and what you have to pay and when. As simple as this. Everything else would be dramatically counter productive. It will break confidence between you and the freelancer. If you want to closely look at what people are doing, then consider hiring in your office.


14

This probably means the client would not hire me again... Why? Do you think they won't hire you because of the poor quality of the code, or do you think that once they've got the code they don't need you anymore? If the code is lousy, consider this a lesson learned and do a better job next time. On the other hand, if the code is solid, why wouldn't they ...


14

Remember that the client is going to you for help with maintaining their application. It is your job as a professional to point out any issues you find with their application. The client likely has no idea these issues exist and they should be made aware of them. Explain these issues in a manner that they can understand and let them decide how they want to ...


14

Don't give up anything you don't have to. You're starting off wrong. Your employer has cut you back, and may very well do it again (that's the way these things go). You're doing something for them that they don't want to be doing ("Software development will largely stop when I leave, if not completely"). Neither of these justify you conceding points, ...


Only top voted, non community-wiki answers of a minimum length are eligible