Welcome to the GoFuckYourself.com - Adult Webmaster Forum forums.

You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today!

If you have any problems with the registration process or your account login, please contact us.

Post New Thread Reply

Register GFY Rules Calendar Mark Forums Read
Go Back   GoFuckYourself.com - Adult Webmaster Forum > >
Come here to learn from top industry professionals. SEO, Content Management, Automation, Marketing, and much more!

 
Thread Tools
Old 02-22-2010, 10:31 AM   #1
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
How to Hire (and keep!) a Programmer

Introduction:

You see it everyday. People openly share their bad experiences with programmers; others, seek programmers to fix projects left unfinished or newly discovered bugs. Job openings are frequent and not quickly filled. This article aims to help, both the little guy and the "big dogs", in employing best practices and avoiding common pitfalls during the hiring process. I'll also touch base on how to avoid losing a good programmer once you have found one; make no mistake, once you have a great programmer, you need to hold on to him.

How Much Should I Pay?

Beyond the shadow of a doubt, this is easily the most frequent question nagging at potential employers. Programmer costs are as varied as programmers themselves; and price in and of itself is NOT reflective of quality. Generally speaking though, you do get what you pay for. While it's not impossible to find a diamond in the rough, waiting to be polished, few people have the time or desire to go on a treasure hunt.

Generally speaking, a quality in-house programmer should start somewhere in the range of $70,000 USD per annum. Anything less and you face a number of obstacles:
  • If they feel underpaid, they will not see a future with your company and may jump at the next offer to come along, leaving you high and dry.

  • They will be inexperienced, accepting your offer while seeking to learn on the job and move on to greener pastures. In some cases, this may be what you are seeking; if it is, as long as you don't set unrealistic expectations, you can easily find candidates within budget. This strategy works best if you have work needing to be done that isn't mission critical, which can handle bugs and delays.

  • Security. Are you aware that most "inside job" theft is performed by minimum wage workers? There is a reason for that. If your data and secrets are critical to your success, the last thing you want is an employee being offered a large sum of money to steal it for a competitor. This happens more than you think.

When it comes to outsourcing, you will find a much broader range of costs. Indian firms who charge $9 USD per hour sound almost too good to be true; in most cases, they are. The going rate for an experienced freelance programmer will fall in the $100 USD+ per hour range. Prices of $150 USD or even $200 USD per hour are not uncommon. However, the high cost of quality work is usually more than offset by the speed of delivery and finished product.

To get into a brief example, let's compare three programmers. "Programmer A" is an outsourcing firm based offshore who charge $10 USD per hour. "Programmer B" is an American-based but inexperienced programmer who charges $35 USD per hour. Finally, "Programmer C" is an experienced freelancer who charges no less than $125 USD per hour. You have a small project you absolutely need done in not more than 30 days. Earlier would be nice, but not required in this case as you have a set launch date.
  • Programmer A: It will be completed in 30 days for 200 billed hours.

  • Programmer B: It will be completed in 21 days for 75 billed hours.

  • Programmer C: It will be completed in 4 days for 20 billed hours.

You may think that's an extreme example, after all, how can a single programmer do in 20 hours what it takes another programmer 75 hours for, or an outsourcing company 200 hours? I have seen the numbers personally from a wide range of quote and projects and can say as fact that this is actually a very common situation.

Looking at the numbers, the outsourcers are the cheapest option, costing you an even $2000 USD. The experienced programmer, on the other hand, costs you a fair amount more at $2500 USD. You decide to drop "Programmer B" immediately, as he is the most expensive. What you are left with is a decision most companies or individuals currently face; do you get it done quicker and pay more, or save some money but risk missing your deadline?

If you opt for the third programmer, even if something unforeseen comes up, you should have PLENTY of time for testing or modifications before your launch date. With option A, you risk missing your deadline entirely, not to mention having zero time for testing or changes. Is the security of knowing you have a solid product at launch worth the extra $500 USD? I know it would be to me.

There are other benefits depending on the circumstance, one being time. Let's take the same situation and assume that if you got the product to launch quicker, you would likely be making money from it immediately. How does that factor into your decision? Well, if you would earn more than the $500 USD difference between Programmer A and C, the advantage is obvious.

We haven't even touched on the point of inferior or unfinished work; you will definitely pay more having incomplete work fixed or finished than if you had gotten it done properly in the first place.

In the end, you are the best person to judge who is right for the particular project or situation. Only you know all the factors involved, but hopefully you should now realize that you must contemplate all the angles before making a decision. Your business depends on it.

How Do I Know if a Programmer is Good or Not?

The simple answer is, there is no simple answer. Especially for those without programming knowledge themselves, this can often be the most difficult task in the hiring process. I will outline a few suggestions which should help you eliminate those who don't fit quickly.
  • Do they communicate in a prompt and professional manner? The assumption that all programmers are anti-social creatures of the night is rather unfounded in today's current landscape. Forget the image you have of the scrawny, pimple-faced hacker or overweight and balding guy in his parents' basement coding away. Many professional programmers today could easily be mistaken for a company CEO. If your programmer takes his time getting back to your inquiries, vanishes for days at a time or talks like he grew up on IRC or Social Networks, he should be dismissed almost immediately.

  • Examples of past work doesn't mean anything. This is not like design work; most programmers do not have a readily available portfolio for you to review. Unless they develop open-source applications in their free time, their previous work was likely for clients who wouldn't be happy with their code being shared. Not to mention they likely have signed NDAs. This shouldn't prevent you from looking deeper into a potential candidate at all. Not to mention, you have no real way to know they code they are showing you is their own and not stolen from elsewhere.

  • Have a small test developed and someone accessible to review the submissions. I generally like to choose something simple, like a Contact Form, for this purpose. Assign the candidate the task, provide him with the specifications and a deadline. Generally, a 24 hour deadline works well. This allows you a look into multiple factors. Did he refuse to "waste his time" completing the test? Move on and tell him thanks, but no thanks. Did he miss the agreed upon deadline? Expect it to happen to anything else you give him. Was his code messy, unstructured or redundant? Was his coding inefficient? Did he go outside your supplied parameters? All reasons to keep looking.

  • "He was recommended to me by a guy I trust". Recommendations from people you trust are a great way to wade through potential hires. Many programmers depend upon word of mouth for ongoing work. However, you should NOT just take their word for it. Even if they did a great job for them, there is no guarantee they suit your project. Moreso, is the referer qualified to evaluate their work properly? What if things appear to work for him at first glance, but fall apart as soon as his site traffic increases? Basically, recommendations should always be considered but they are not the be all end all in your decision-making.

  • Certifications do not make them a good programmer. I have seen Zend-certified PHP programmers whose coding skills left a LOT to be desired. To say nothing of their lack of professionalism or punctuality. While being certified from official sources is definitely a plus, it should not be a major factor in your choices.

  • Can they follow instructions and are they independant? You likely don't have time to babysit, as you are plenty busy with growing your business. Once you have provided concise specifications and deadlines, your involvement should be minimal until it comes time to review the finished product. If someone is sending you IMs and emails all day long, especially with questions that are clearly already answered in the task specs, they might not be who you are looking for.

CONTINUED IN NEXT POST
__________________
Skype variuscr - Email varius AT gmail

Last edited by Varius; 02-22-2010 at 10:40 AM..
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:31 AM   #2
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
The Importance of Specifications

Once you have found someone you think can do the job, you hit the step in the process where most people ultimately fail. Most employers fail to provide the worker with adequate specifications. They describe a project briefly, perhaps provide examples of other sites with similar functionality, but leave many finer details to the imagination. This leads to miscommunication, loss of time and money and ultimately may even cause the otherwise solid worker to abandon a project. Let me show you a very small example showcasing the difference between a good specifications document and a bad one.

Specifications Example #1:
  • Please create a script which will scrape all the personal ads off Craigslist. Save them in a file. Upload the file to my server.

Specifications Example #2:
  • Please create a script which will scrape all the personal ads off Craigslist.

  • Only scrape ads from Canada.

  • Create one file per city, in the format: province_city_personals_strictly-platonic_w4m.txt

  • Zip the completed files and upload to my server in the following location: /home/ftp/cl.zip

  • The script should have the ability to resume where it left off should it crash or break.

Obviously neither of those are complete, actual specifications documents. However, you can see the difference between Example #1 and Example #2. The main problem with the first example (that is the bad one in case you couldn't tell ;p) is that it leaves so many details up to the programmer. It should not be his job to think up possibilities of how you may want things done, or features you may like to have. It is his job to perform the task you specify. Frankly, whenever I have been given incomplete specs, I simply send them back and ask for a more detailed document.

On the flipside, some people go overboard with regards to specifications and documentation. The programmer often does not need a book to read through; a few simple pages will suffice. Keep it simple and to the point.

How Can I Keep My Programmer (Happy)?

Once you have found a programmer you are happy with, you want to keep them happy. After all, you already know how much of a hassle it will be to find another one. The first and easiest way to do that, is with monetary compensation. Set attainable bonuses often. Is he working late again so your project can be finished ahead of schedule? Treat him to dinner or drinks. Buy him that latest tech gadget he has his eye on. In the grand scheme of things, little things can go a long way. Have regular performance reviews and afford raises accordingly. The most important thing to most programmers is the feeling they are being properly rewarded for their contributions to the company; which are often key in the company's success.

In some situations, revenue or profit-sharing are an excellent solution depending on your company structure, of course. It's a known fact that when an employee shares directly in the success or failure of a company, they will not only be motivated to work harder and more productively, but are MUCH less likely to ever jump ship.

As long as you don't take your programmer for granted, you should be able to enjoy a fruitful long-term relationship and have one less thing to worry about than your competitors.

Closing Notes

To conclude, I hope you find at least some part of this document helpful to your hiring process. While much of it is common sense, it's evident that many out there do not know where to begin when seeking new programming talent. One more piece of advice; if you have a great programmer, keep him to yourself. The moment you start bragging is the moment you find he is no longer available for your work.

As for those programmers who read this, I hope it highlights some points for you to improve upon your own work and skills. No matter how good you think you are, there is always something more to be learned. There is always a better way to do things. Even after a decade, I find myself learning new techniques and meeting new challenges daily. If you aren't pushing yourself to be better, you might as well find a new profession.

About the Author:

An industry veteran of over ten years, Keith is best-known for his time with dating site IwantU.com; he has also been involved with numerous other adult projects and ventures and counts a large number of current adult companies as former clients. He is currently involved in the gaming industry with Sports.com.
__________________
Skype variuscr - Email varius AT gmail

Last edited by Varius; 02-22-2010 at 10:38 AM..
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:34 AM   #3
myjah
Back in the harbor
 
Industry Role:
Join Date: Sep 2003
Posts: 11,482
Excellent addition to this series! Thanks for taking the time to share and participate - this is valuable information for anyone hiring programmers in this industry.
__________________
VP of Marketing
AVN Media Network
Skype: AVNJill
[email protected]
myjah is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:48 AM   #4
Cyber Fucker
Hmm
 
Cyber Fucker's Avatar
 
Industry Role:
Join Date: Sep 2005
Location: On an endless road around the world for rock and roll.
Posts: 12,642
Good info!
__________________
Cyber Fucker is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:49 AM   #5
Barefootsies
Choice is an Illusion
 
Barefootsies's Avatar
 
Industry Role:
Join Date: Feb 2005
Location: Land of Obama
Posts: 42,635
:2cents

Nice one buddy. Good job.
__________________
Should You Email Your Members?

Link1 | Link2 | Link3

Enough Said.

"Would you rather live like a king for a year or like a prince forever?"
Barefootsies is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:50 AM   #6
jwerd
Confirmed User
 
Industry Role:
Join Date: Jun 2003
Location: Costa Rica
Posts: 1,953
I couldn't agree more with the clear, concise specs. So important when taking on a job or modifying what is already there.

Great words of advice.
__________________
Yii Framework Guru - Seasoned PHP vet - Partner @ XXXCoupon.com
jwerd is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:54 AM   #7
96ukssob
So Fucking Banananananas
 
96ukssob's Avatar
 
Industry Role:
Join Date: Mar 2003
Location: If I was in your ass you'd know it
Posts: 12,991
great info. i was actually thinking of this over the weekend as I've been struggling with two programmers that I hired.

__________________
Email: Clicky on Me
96ukssob is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 10:54 AM   #8
SmellyNose
Confirmed User
 
SmellyNose's Avatar
 
Industry Role:
Join Date: Aug 2009
Location: me at smellynose.com
Posts: 206
Very nice post!
__________________
I'm a PHP developer - 594086663 - [email protected]
SmellyNose is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:23 AM   #9
Got Porn?
Confirmed User
 
Got Porn?'s Avatar
 
Join Date: Nov 2005
Location: Charlotte
Posts: 1,264
Good read!
Got Porn? is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:26 AM   #10
sarettah
l8r
 
Industry Role:
Join Date: Oct 2002
Posts: 13,421
I was composing a similar post in my head on the way into the office this morning.

Thanx for saving me the time and effort.

Good post
sarettah is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:30 AM   #11
BestXXXPorn
Confirmed User
 
BestXXXPorn's Avatar
 
Join Date: Jun 2009
Location: Asheville, NC
Posts: 2,277
Great post!

Can I get the mods to please repost my previous post that was deleted

Eric and myjah said they might be able to do that for me ;)
__________________
ICQ: 258-202-811 | Email: eric{at}bestxxxporn.com
BestXXXPorn is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:33 AM   #12
easyBob
Confirmed User
 
easyBob's Avatar
 
Join Date: Feb 2010
Posts: 210
One thing to note. Make sure your programmer is good with documentation. If they leave, for what ever reason, poor or no documentation/commented code will make any future work much more difficult, and much more expensive.
__________________
easyBob is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:34 AM   #13
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by BestXXXPorn View Post
Great post!

Can I get the mods to please repost my previous post that was deleted

Eric and myjah said they might be able to do that for me ;)
Yeah they said it would be no problem to add your info in this thread as well, I'll send them an ICQ
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:36 AM   #14
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
Wow

Generally speaking, a quality in-house programmer should start somewhere in the range of $70,000 USD per annum. Anything less and you face a number of obstacles:


Do mainstream programmers even make that much?
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:38 AM   #15
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by easyBob View Post
One thing to note. Make sure your programmer is good with documentation. If they leave, for what ever reason, poor or no documentation/commented code will make any future work much more difficult, and much more expensive.
I agree, but as long as the code is clean, well-structured, standardized, modular, functions well named and there are project specifications, actual documentation (while always appreciated) isn't as necessary. Most programmers, even great ones, hate to document. Of course, you may argue they do that for their own job security heh.

However, I remember years ago when I worked on someone's code where every variable was named after their girlfriend, their pet's names, what they were watching on tv at the time, etc... What a mess!
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:38 AM   #16
J. Falcon
www.AdultCopywriters.com
 
J. Falcon's Avatar
 
Industry Role:
Join Date: May 2006
Posts: 29,114
That was a great write-up, thanks.
__________________
Adult Copywriters



SEO Content for Porn Sites
sales at adultcopywriters dot com
J. Falcon is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:40 AM   #17
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by datatank View Post
Wow

Generally speaking, a quality in-house programmer should start somewhere in the range of $70,000 USD per annum. Anything less and you face a number of obstacles:


Do mainstream programmers even make that much?
I know a few who work for mainstream US and CA companies and they all earn $100K+ per year (of course they have to pay taxes on that...) even after only being there a year or so. Of course, if you take someone less experienced or desperate for a job, you can easily get them for less than half of that, but then you may run into losing them or the other hazards I outline above.
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:40 AM   #18
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
Quote:
Originally Posted by Varius View Post
However, I remember years ago when I worked on someone's code where every variable was named after their girlfriend, their pet's names, what they were watching on tv at the time, etc... What a mess!
LOL oh man what a nightmare.
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:42 AM   #19
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
one thing I suggest also is ALWAYS use a good version control software/ repository thingie.
Not sure the fancy name of it but it can save you alot of frustrations
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:46 AM   #20
Ditosta
Confirmed User
 
Ditosta's Avatar
 
Join Date: May 2006
Location: http://www.neonasty.com
Posts: 2,107
Great post, and this comes just in time!
__________________
306213883

New Pantyhose Fetish Model
LilyDouce.com Rhinopays.com
Ditosta is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:50 AM   #21
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by datatank View Post
one thing I suggest also is ALWAYS use a good version control software/ repository thingie.
Not sure the fancy name of it but it can save you alot of frustrations
SVN is probably the one most people are familiar with these days.

I think, if you have a large team, then yes this is a necessary solution; however unless it's perfectly setup and managed/maintained, it can lead to more problems, delays, hassle.

Personally, I hate every version control system I have ever used/tried out; I found bugs and issues in all of them and they slowed down production
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:53 AM   #22
CaptainHowdy
Too lazy to set a custom title
 
CaptainHowdy's Avatar
 
Industry Role:
Join Date: Dec 2004
Location: Happy in the dark.
Posts: 91,270
Great read!
__________________
Get Your Free Backlinks Today 127 URLs to pick from - Go To The Thread here!
Join the SWAG Affiliate Asian Live Cam Program Non-Saturated Models and Exclusive Content.
CaptainHowdy is online now   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:56 AM   #23
FreeHugeMovies
Too lazy to set a custom title
 
Join Date: Dec 2001
Location: Charlotte, NC
Posts: 14,136
Very nice post!
FreeHugeMovies is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 11:57 AM   #24
Jack OAT
Confirmed User
 
Jack OAT's Avatar
 
Join Date: Nov 2009
Posts: 176
Very well done. A lot of this advice can apply to other aspects of web development like designers too.
__________________




my icq...... 615294405..... .....jackoatwebmaster@gmail

I am a webmaster toolbox.. I can do it all.. I am Jack OAT
mobile sites + xhtml/css + design + wordpress + script install/integration
Jack OAT is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:06 PM   #25
quantum-x
Confirmed User
 
quantum-x's Avatar
 
Join Date: Feb 2002
Location: ICQ: 251425 Fr/Au/Ca
Posts: 6,863
Quote:
Originally Posted by Varius View Post
SVN is probably the one most people are familiar with these days.

I think, if you have a large team, then yes this is a necessary solution; however unless it's perfectly setup and managed/maintained, it can lead to more problems, delays, hassle.

Personally, I hate every version control system I have ever used/tried out; I found bugs and issues in all of them and they slowed down production
Try http://git-scm.com/
quantum-x is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:13 PM   #26
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by quantum-x View Post
GIT actually is pretty nice and simplistic, I just find as for years now I'm the only person touching my own code 99.9% of the time, it was unecessary.

For companies though, with multiple developers on the same project modules, it is definitely a useful tool.
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:20 PM   #27
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
Quote:
Originally Posted by Varius View Post
GIT actually is pretty nice and simplistic, I just find as for years now I'm the only person touching my own code 99.9% of the time, it was unecessary.

For companies though, with multiple developers on the same project modules, it is definitely a useful tool

I do not want to come across as being negative but most of us who hire programmers are not in that position.

It might slow you down but if the programmer bails it can often save a project
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:24 PM   #28
EscortBiz
Fuck Checks, CASH only!
 
Join Date: May 2002
Location: New York City
Posts: 19,422
very solid info, this gfy educational thing is amazing so far thanks for this post
EscortBiz is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:24 PM   #29
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by datatank View Post
I do not want to come across as being negative but most of us who hire programmers are not in that position.

It might slow you down but if the programmer bails it can often save a project
Yeah, that's why I stressed the importance of it being properly setup and maintained though; I understand most have a serious need for control software.

I was just later expressing my own opinions of it, in that I personally hate them. Not trying to dissuade anyone from using one
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:37 PM   #30
BradM
Confirmed User
 
Join Date: Dec 2003
Location: 1123,6536,5231
Posts: 3,397
cliffnotes
BradM is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 12:37 PM   #31
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
Quote:
Originally Posted by Varius View Post
Yeah, that's why I stressed the importance of it being properly setup and maintained though; I understand most have a serious need for control software.

I was just later expressing my own opinions of it, in that I personally hate them. Not trying to dissuade anyone from using one
That is exactly what I mean ;-)

You are acting like the typical programmer we all have to deal with. hehe.
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 03:32 PM   #32
borked
Totally Borked
 
borked's Avatar
 
Industry Role:
Join Date: Feb 2005
Posts: 6,284
That is a great writeup Varius. Some common sense stuff in there.

I do disagree with you however on the importance of version control ;)
Personally, all my code is versioned, and each client can access their own repository if they want to (l/p are sent on billing so further programmers can take it on if required).
I've had, too many times franckly, a client say how about add XYZ, and then scrub that idea when it gets delivered cos it doesn't work the way expected. A simple rollback saves me more pain, and the client more $.

Also, because it's versioned, they/I can deploy easily any upgrades additions with a simple svn up.

Trac goes without saying as it means I can have XX clients at any one go and keep my workflow and clients happy, since I'm not having to rely on emails to track what the problem/request is w/r to code. If the customer wants, they can post directly to trac to submit tickets, or they can just email me and I add it as a ticket for them (haven't streamlined my workjflow to auto-add trac tickets yet ;) )

Each to their own, but setting up SVN with Trac is like a 10 minute job if you know what you're doing, and should be the entire core of any freelance programmer's workflow IMVHO.
__________________

For coding work - hit me up on andy // borkedcoder // com
(consider figuring out the email as test #1)



All models are wrong, but some are useful. George E.P. Box. p202
borked is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 03:42 PM   #33
Altwebdesign
Guest
 
Posts: n/a
Some brilliant and professional key points I've taken away multiple things to integrate into my work ethic
  Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 04:02 PM   #34
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by borked View Post
That is a great writeup Varius. Some common sense stuff in there.

I do disagree with you however on the importance of version control ;)
Personally, all my code is versioned, and each client can access their own repository if they want to (l/p are sent on billing so further programmers can take it on if required).
I've had, too many times franckly, a client say how about add XYZ, and then scrub that idea when it gets delivered cos it doesn't work the way expected. A simple rollback saves me more pain, and the client more $.

Also, because it's versioned, they/I can deploy easily any upgrades additions with a simple svn up.

Trac goes without saying as it means I can have XX clients at any one go and keep my workflow and clients happy, since I'm not having to rely on emails to track what the problem/request is w/r to code. If the customer wants, they can post directly to trac to submit tickets, or they can just email me and I add it as a ticket for them (haven't streamlined my workjflow to auto-add trac tickets yet ;) )

Each to their own, but setting up SVN with Trac is like a 10 minute job if you know what you're doing, and should be the entire core of any freelance programmer's workflow IMVHO.
Some good points and I'm sure many will agree. I am not trying to tell people NOT to use version control system, I was ust sharing my personal preferences when it comes to them

I suppose my personal opinion may be due more to the fact that most freelancing I did was fixing problems, scripting, optimizing queries and generally urgent work on clients' own servers as opposed to building sites from the ground up. Sites I have built from the ground up, in almost all cases, were never worked on by anyone other than myself (though I still strive to maintain clean, modular code at all times).

Also, I write all my code with vi/nano via SSH; I don't think I have developed on a workstation or my laptop in over ten years. That fact probably also contributes to my dislike of third-party applications for version control and having to transfer/sync files.

Regardless, the opinions by yourself and others above seem to indicate I'm the exception not the rule, so I think those reading the article should definitely look into version control structures if it fits their needs - it has just never suited my own
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 04:12 PM   #35
borked
Totally Borked
 
borked's Avatar
 
Industry Role:
Join Date: Feb 2005
Posts: 6,284
Quote:
Originally Posted by Varius View Post
Also, I write all my code with vi/nano via SSH; I don't think I have developed on a workstation or my laptop in over ten years. That fact probably also contributes to my dislike of third-party applications for version control and having to transfer/sync files.
Why on earth do you write code on the command line remotely????

Each to their own indeed, but there are many reasons for developing on a dev server with a GUI, not least for speed. I don't believe you can type without introducing syntax errors, in which case a GUI will save you a lot of time trying to debug.

Also, liek you mentioned for freelance work - mini scripts etc etc... working on a dev server means you can deploy once client has paid in full. I wouldn't expect a client to pay for something not received, nor would I ask of it. That way a remote demo of the working script is proof the work is done, I get paid, the client gets script. Signed, sealed and delivered.

And how difficult is it to "svn ci -m "some message" to remotely commit new changes to a repository? Followed by "svn up" on the client machine?

Old school is admirable and all, but you're the first person I've heard of that develops/writes in vi/nano.
__________________

For coding work - hit me up on andy // borkedcoder // com
(consider figuring out the email as test #1)



All models are wrong, but some are useful. George E.P. Box. p202
borked is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 04:33 PM   #36
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by borked View Post
Why on earth do you write code on the command line remotely????

Each to their own indeed, but there are many reasons for developing on a dev server with a GUI, not least for speed. I don't believe you can type without introducing syntax errors, in which case a GUI will save you a lot of time trying to debug.
I guess it is old-school, but vi is extremely powerful once you are familiar with it; nano is just simple when you don't need any of the extra vi bells and whistles. I haven't experienced any problems yet when it comes to syntax errors or such to the point where a GUI would enhance my production.

Quote:
Originally Posted by borked View Post
Also, liek you mentioned for freelance work - mini scripts etc etc... working on a dev server means you can deploy once client has paid in full. I wouldn't expect a client to pay for something not received, nor would I ask of it. That way a remote demo of the working script is proof the work is done, I get paid, the client gets script. Signed, sealed and delivered.
As I was never a full-time freelancer, my situation was probably different. When I did decide to take on work, it was always on my terms. If they were a new client, 100% upfront payment only. If they were someone I knew but had never worked with, 50% before and 50% after. If it was someone I had a solid working relationship with or was a close friend, I would not worry about being paid until after the task was taken care of. Call it luck I suppose, but I've never had a client complain about work they paid for nor have I ever not been paid for freelance work.

However, for someone who would rely on freelancing as their only income stream or someone who hasn't yet built up a solid base of references/reputation who could not charge 100% up-front if they hope to attract clients, your point is valid and taken.

Quote:
Originally Posted by borked View Post
And how difficult is it to "svn ci -m "some message" to remotely commit new changes to a repository? Followed by "svn up" on the client machine?
When I first used CVS and later SVN, we honestly gave it a good run at IwantU for about six months. The problems were numerous; corrupted repositories, merge bugs and so on. That was many years ago and yes, it's possible SVN has come a long way since and improved their offering. Some of those issues are still able to occur, however.

Not to mention, it isn't always feasible to replicate remote environments. Once you take into accounts data, hardware, software, load; if you had 10 clients, I suppose you could have 10 dev boxes on your end one mirroring each environment, but that's not practical nor affordable for many. Running multiple environments on a single box, may be adding additional factors that skew your debugging.

Quote:
Originally Posted by borked View Post
Old school is admirable and all, but you're the first person I've heard of that develops/writes in vi/nano.
I (think) I take that as a compliment
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 04:41 PM   #37
Domain Broker
So Fucking Banned
 
Industry Role:
Join Date: Oct 2004
Posts: 2,427
vi and nano are COMPLETELY different and should never be used together in a sentence.
Domain Broker is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 04:47 PM   #38
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by Domain Broker View Post
vi and nano are COMPLETELY different and should never be used together in a sentence.
In the words of Banky Edwards (Jason Lee) in Chasing Amy:

"Variety's the spice of life. I like a wide selection. Sometimes I'm in the mood for nasty close-ups, sometimes I like them arty and air-brushed. Sometimes it's a spread brown-eye kind of night, sometimes it's girl-on-girl time. Sometimes a steamy letter will do it, sometimes - not often, but sometimes - I like the idea of a chick with a horse."

Many times, nano will do the job. Other times, you need the power that comes with vi.
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:02 PM   #39
datatank
Confirmed User
 
datatank's Avatar
 
Join Date: Aug 2004
Location: My dog is blacker than Tupac
Posts: 5,471
Varius this thread got a little derailed IMO when you started offering your PERSONAL preferences.

Some great info in your first post
datatank is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:06 PM   #40
JoeS
Confirmed User
 
Industry Role:
Join Date: Aug 2003
Posts: 891
Excellent article Varius!
I especially agree with the idea of having some small test. There's nothing as frustrating as giving someone a shot at an important project and finding out halfway thru it they can't get the job done, don't follow instructions, doesn't comment code and can't keep a deadline (in sight).
The hard part for me is creating a small demo thats actually something I need done that will demonstrate the persons skill and work ethics.

I also think it's important to use Milestones. That way as a buyer you can get a usable section of code and pay for it step by step and if theres any problems and you need to part ways at least you have some modules or section completed and you can hope the new company can pickup where the old guy/company left you hanging. Also each Milestone gives you an opportunity to improve your communications with the Programmer moving forward to the next Milestone.

I'd say that spec'ing out your project as tightly as possible is critically important! I have even fully mocked up the wireframe in flash to show the site flow and even then you have to go over everything in your specifications document in great detail. You can't leave much to interpretation if you don't want to get disappointed.

What I have found is it's difficult to find a skilled reliable programmer who can also add suggestions to improve your application or site and bring up things you might have overlooked based on their own past experiences. Find someone like that and indeed do what you can to keep them happy!

Joe
__________________


Chat App that pays you!, Let's use this chat app that pays us for using it!

Why use ICQ or Skype when we could use a chat app (with video & voice) that pay$ you (up to 70%) of all the ad revenue they make!

All the best!
Joe S.
JoeS is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:27 PM   #41
fuzebox
making it rain
 
fuzebox's Avatar
 
Industry Role:
Join Date: Oct 2003
Location: seattle
Posts: 21,650
Quote:
Originally Posted by Varius View Post
The assumption that all programmers are anti-social creatures of the night is rather unfounded in today's current landscape. Forget the image you have of the scrawny, pimple-faced hacker or overweight and balding guy in his parents' basement coding away. Many professional programmers today could easily be mistaken for a company CEO.
I am easily the sexiest programmer on GFY
fuzebox is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:32 PM   #42
fuzebox
making it rain
 
fuzebox's Avatar
 
Industry Role:
Join Date: Oct 2003
Location: seattle
Posts: 21,650
Quote:
Originally Posted by borked View Post
Old school is admirable and all, but you're the first person I've heard of that develops/writes in vi/nano.
I still use vi for absolutely everything (including on my desktop)... Hell two years ago I still used it for composing emails. I stopped freelance programming 2 years ago, but even for my own sites and program I've got four ssh sessions to my servers, two with mysql command line and two with various files open in vi.

Can't type without creating syntax errors? Some of us are just prodigies I guess.
fuzebox is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:34 PM   #43
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by datatank View Post
Varius this thread got a little derailed IMO when you started offering your PERSONAL preferences.

Some great info in your first post
Yeah, I wrote the article with no person preferences in mind; it was meant to help those seeking to hire people. Arguing about what methods certain coders choose to employ would be another whole topic altogether
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:36 PM   #44
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by JoeS View Post
Excellent article Varius!
I especially agree with the idea of having some small test. There's nothing as frustrating as giving someone a shot at an important project and finding out halfway thru it they can't get the job done, don't follow instructions, doesn't comment code and can't keep a deadline (in sight).
The hard part for me is creating a small demo thats actually something I need done that will demonstrate the persons skill and work ethics.

I also think it's important to use Milestones. That way as a buyer you can get a usable section of code and pay for it step by step and if theres any problems and you need to part ways at least you have some modules or section completed and you can hope the new company can pickup where the old guy/company left you hanging. Also each Milestone gives you an opportunity to improve your communications with the Programmer moving forward to the next Milestone.

I'd say that spec'ing out your project as tightly as possible is critically important! I have even fully mocked up the wireframe in flash to show the site flow and even then you have to go over everything in your specifications document in great detail. You can't leave much to interpretation if you don't want to get disappointed.

What I have found is it's difficult to find a skilled reliable programmer who can also add suggestions to improve your application or site and bring up things you might have overlooked based on their own past experiences. Find someone like that and indeed do what you can to keep them happy!

Joe
All great points Joe and I know you've gone through dozens of bad programming experiences off which to base these points. Other readers would do well to heed your advice
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 05:59 PM   #45
sarettah
l8r
 
Industry Role:
Join Date: Oct 2002
Posts: 13,421
I have just finished reading what was added here after my first post and feel like I have to chime in.

It has been my experience that clients (and bosses in the employer-employee situation) do not want to pay the extra price that documentation and project management, version control can add to a project.

When I estimate something I give the full blown number, with documentation and project management included. Without an exception it always comes down to "That much? Isn't there any way you can do it for less???" or "That long, isn't there a way you can get it done quicker??".

Clients and employers do not seem to believe that there are jobs that actually take longer than 2 weeks to complete.

The first thing thrown out is documentation. Properly documenting code can/will dramatically increase the time of developement unless you happen to have a full library of all the modules that you will need to complete the job.

Project management and versioning is the next thing thrown out. It is not needed to get the job done (It could be argued that it is needed to get the job done properly but that is a different story).

I generally end up programming by the seat of my pants. Screw modular, my clients just want it to work.

I pride myself on writing very readable code (I call it kindergarten code) and given enough time to do it properly it is compact and modular and documented but in the real world that is usually not the case.

In the real world it is spaghettied (sp?) out and rambles on. You rarely get beyond cut 1 because the client wants to move forward. The code works, that is all they care about. They do not want to pay for clean up, they do not want to pay for the time it takes to do something properly.

So you fly by the seat of the pants and hope that you don't crash and burn.

Just my
sarettah is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 06:02 PM   #46
myjah
Back in the harbor
 
Industry Role:
Join Date: Sep 2003
Posts: 11,482
Quote:
Originally Posted by fuzebox View Post
I am easily the sexiest programmer on GFY
Shouldn't it be "I am 'arguably' the sexiest programmer on GFY? ;)

When are we gonna get an Educational Series article out of you??
__________________
VP of Marketing
AVN Media Network
Skype: AVNJill
[email protected]
myjah is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 06:04 PM   #47
CYF
Coupon Guru
 
CYF's Avatar
 
Industry Role:
Join Date: Mar 2009
Location: Minneapolis
Posts: 10,973
nice thread
__________________
Webmaster Coupons Coupons and discounts for hosting, domains, SSL Certs, and more!
AmeriNOC Coupons | Certified Hosting Coupons | Hosting Coupons | Domain Name Coupons

CYF is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 06:10 PM   #48
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by sarettah View Post
I have just finished reading what was added here after my first post and feel like I have to chime in.

It has been my experience that clients (and bosses in the employer-employee situation) do not want to pay the extra price that documentation and project management, version control can add to a project.

When I estimate something I give the full blown number, with documentation and project management included. Without an exception it always comes down to "That much? Isn't there any way you can do it for less???" or "That long, isn't there a way you can get it done quicker??".

Clients and employers do not seem to believe that there are jobs that actually take longer than 2 weeks to complete.

The first thing thrown out is documentation. Properly documenting code can/will dramatically increase the time of developement unless you happen to have a full library of all the modules that you will need to complete the job.

Project management and versioning is the next thing thrown out. It is not needed to get the job done (It could be argued that it is needed to get the job done properly but that is a different story).

I generally end up programming by the seat of my pants. Screw modular, my clients just want it to work.

I pride myself on writing very readable code (I call it kindergarten code) and given enough time to do it properly it is compact and modular and documented but in the real world that is usually not the case.

In the real world it is spaghettied (sp?) out and rambles on. You rarely get beyond cut 1 because the client wants to move forward. The code works, that is all they care about. They do not want to pay for clean up, they do not want to pay for the time it takes to do something properly.

So you fly by the seat of the pants and hope that you don't crash and burn.

Just my
Solid point. Many a time I have seen people wanting the fastest "band-aid" solution, which isn't a real solution. It may work now, but it'll come off later and leave you bleeding.

That just reminded me of a point I forgot to cover in the original post:

Many times, a programmer may tell you "your project has to be re-done from scratch, the current code is a mess/unusable". While often true, I have also found that programmers push that option when its unnecessary for their own benefit. This way they get to do it "their way" as well as likely make more money (as it will take longer). The client should always be wary of restarting a project from scratch unless it truly is an irreparable disaster.
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 06:19 PM   #49
Varius
Confirmed User
 
Industry Role:
Join Date: Jun 2004
Location: New York, NY
Posts: 6,890
Quote:
Originally Posted by myjah View Post
Shouldn't it be "I am 'arguably' the sexiest programmer on GFY? ;)
Yeah Fuze, I don't recall any girls screaming your name out on strange GFY bus rides in the middle of the night
__________________
Skype variuscr - Email varius AT gmail
Varius is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Old 02-22-2010, 06:20 PM   #50
sarettah
l8r
 
Industry Role:
Join Date: Oct 2002
Posts: 13,421
Quote:
Originally Posted by Varius View Post
Solid point. Many a time I have seen people wanting the fastest "band-aid" solution, which isn't a real solution. It may work now, but it'll come off later and leave you bleeding.

That just reminded me of a point I forgot to cover in the original post:

Many times, a programmer may tell you "your project has to be re-done from scratch, the current code is a mess/unusable". While often true, I have also found that programmers push that option when its unnecessary for their own benefit. This way they get to do it "their way" as well as likely make more money (as it will take longer). The client should always be wary of restarting a project from scratch unless it truly is an irreparable disaster.
Thanx.

On your point. There have been many times, when I have looked at someone else's code that I have arrived at the conclusion that I can write it from scratch faster than I can figure out what the other coder was doing.

If the job is something that is up and running, then I never push for a rewrite.

If the job is a rescue (and often that is where I come in) then I will push the re-write. It is not to put more cash in my pocket though. It is to get a job up and working as quickly as possible.

I don't know of a programmer around that while looking at someone else's code doesn't have the immediate reaction "Who wrote this shit?".

I try to get past that reaction and properly evaluate the code. Am I reacting to style or substance? If I am reacting to style I try to live with the code. If I am reacting to substance I push for the re-write.

I have found through the years that there are a bazillion (yes, thats a number) ways to code something. If all bazillion ways arrives at the same answer then they are all correct. Some may be faster, some may be more elegant but if they all reach the same result then they are all correct.

Just a little humor. I was in working on something about 2 weeks ago and had the usual reaction of "who wrote this shit?". Well, I wrote that shit about 8 years ago ;p It was a journey through what I had added to my knowledge base across the past decade to read through it and yes, I did a re-write.
sarettah is offline   Share thread on Digg Share thread on Twitter Share thread on Reddit Share thread on Facebook Reply With Quote
Post New Thread Reply
Go Back   GoFuckYourself.com - Adult Webmaster Forum > >

Bookmarks
Thread Tools



Advertising inquiries - marketing at gfy dot com

Contact Admin - Advertise - GFY Rules - Top

©2000-, AI Media Network Inc



Powered by vBulletin
Copyright © 2000- Jelsoft Enterprises Limited.