I have have the fortune or misfortune of maintaining scripts for other DP members that were developed by so called "experianced" programmers. It is depressing to see the poor quality of work out there. If you're a programmer: - Stand behind your work. If you can't don't take the project - Learn how to code. SQL injection is a bad thing - Learn how to seperate logic from presentation. This is a good thing - Learn how to normalize a database - When completing a project turn over all required files to make it work - Show some ethics - If you can't handle a project say so For the clients: - Get some refferences - Have a realistic budget - Don't pay for all work up front - Know what you want or work on the desgin with the coder (expect to pay for this) - Let the developer code on his server - Test the app on his server before forking out the rest of the money - Pay another installment to deploy the app to your server - Pay again after everything is working - You get what you pay for. Quality, Cheap, Fast (pick any two) The programmers who do a bad job make the rest of us honest, hard working quality coders look bad. The addage of once burned twice shy seems to apply to many clients who have had bad experiances. Comments, rebuttals and thoughts are apreciated.
I agree with you. You want to do a good job for your clients, so might as well get some experience in the field if you want to do it. If you know PHP but want to do ASP.NET jobs for clients, it's not well worth it. I've seen a lot of that happening lately. Thanks for the heads up tandac.
Great lists! I'd like to add a few for programmers: - comment your code (even if only a little) - stop using outdated practices (e.g. $HTTP_SERVER_VARS) - test your code with edge cases and bad input
Sigh. That's my point. No matter how good you think your error management is, you still need to test it under bizarre and improbable conditions. Never underestimate the stupidity of a user or the determination of a hacker.
More for the programmers/developers - Speak the language of the client to a reasonable degree - Use a spell check if you are not fluent in the language (sorry tandac but your spelling of "experianced" inspired this item ) - Don't slack off with aspects of the task where you think the client won't notice/care - Don't screw around with existing file formats, line endings, tab indents etc. - Publish a list of conventions (e.g. for naming and formatting) - Don't store 50 backups of a file with the original with obscure names - Make less assumptions, e.g. test, even if briefly, when uploading to a different host - Stop procrastinating (if humanly possible!) (ran out of ideas for now)
Be up front and honest. Kinda goes with being ethical and not doing things you can't do. Maintain communication with your client, especially in times of difficulty. Thanks for catching the typo. I'm glad to see this thread raising awareness of both good and bad development practices.
On the programming side... the problem is that a lot of code is built by programmers who learned just by reading books & e-books. With the offshore programming craze..many chose the fast track. They don't know programming methodologies, design patterns, think about scalability, or security, or follow coding standards. They create whatever works as fast as they can so they can get the paycheck. Cause of those reasons several companies that I worked for stopped their offshore projects & brought in experts in house. Great list..I hope it makes some programmers aware of what they are doing.
I honestly do agree with everything you are saying. However, having experience of using local and outsourced programmers: Never EVER believe the following from a programmer: Examples of work* (unless on the site of someone you know and they've been openly using it for at least 3-6 months) Testimonials (unless from someone you know - see 1 above) Reviews (unless from someone you know - see 1 above) Sites they've developed (see 1 above) Certification of ownership/rights (coders can disappear overnight when they are found out) Statistics (PR can be forged, traffic can easily be diverted, forum posts/comments/testimonials can be forged) My experiences: Good coders cost good money. Almost all of the time, when starting a fledgling project, money is tight and you have a deadline - some coders take advantage of this. Do as much of it yourself - within your capabilities - get your coder to do the coding part. Just because someone is working in your office - it doesn't mean that they can actually do what they've said they will/can do! They can always walk away... ALWAYS Write a full specification document with at least the following: Objectives (what the script/program has to do), Deliverables (what the programmer has to do) Constraints (when you need it by, where you want it installed etc) Budget** (If you don't tell your coder the budget, he won't know how much to charge you) Database requirements (Some/most coders are crap database developers - get advice on normalizing your database - build for future projects too) Sourcing (Tell your coder if you want him to code from scratch or if it is acceptable for him to use open source or GPL code) - this WILL affect the price drastically! NEVER Give away your ideas (If you have a great cutting edge idea that you think/know will be valuable in the future NEVER give the whole job to one coder) Expect them to deliver on time (Most good coders keep you informed and give you regular updates etc - Lots either pretend they are working and never deliver) Pay up front*** (If a coder asks for money up front, delete him from your contact list) Wait until the job is delivered before testing it (test it on their server, pay them half, test it on your server, pay them the remainder) *Some coders steal code and put their name on it - take my word for it, the original coder or copyright owner of the code WILL find out and chase you for their share. **Budget Lots of people shy away from this - "If I give the coder a budget of $100 - he will say it costs $99.99" - exactly - more importantly he will know exactly how much you are willing to pay for the work and will work to that budget, he'll know that if it goes over you won't pay him) ***If you use a good coder, you don't pay upfront EVER. If they are asking for money up front, they are either a scammer or they are inexperienced and unsure of their abilities. Message for both coders and clients Trust goes both ways - some clients will try to scam coders and some coders will try to scam clients - You have to give and take. If you are unsure - use an escrow service or use scriptlance/elance etc
Great points SecretDownload, I have also been conned by local/DP clients. It really doesn't matter. The honest ones will pay you, the bad ones won't. It's as simple as that. "Good coders cost good money". If I could convince the DP members of that and not have to complete against $1 bids on jobs I'd be a happy person. The same rule applies to anything: web design, hosting, SEO, etc.