Thursday, November 09, 2006

Picking a Programmer

So you have a great idea, rallied the troops, and are almost ready to consider developing the site.

Before you even begin that step you'll probably want to have a programmer there to understand exactly what you're planning on building. I believe that in the software development life cycle programmers should be, along with anyone you plan on testing the site with, an integral part of the development team. By giving the programmer an understanding of the processes you plan on implementing he can ask questions and help to develop the website to best fit your needs.

Now there are several ways you can recruit a programmer. They probably all are pretty bad but since you know nothing about programming (or you'd be doing it yourself) you have to at least give them a chance. That's not to say all of the candidates you'd find to fill the programming job will lack the experience to develop a well built database management system (which you'll want for an e-commerce site) but that they haven't experienced most of the pitfalls which come through trial and error via years of work experience in the corporate world.

Alright, anyhow, so here are the few ways I thought of to recruit a programmer:

1. Make Friends

Being a programmer myself, which is well known to many of my close friends, I've been asked scores of times about whether I will develop some website for them for the fee of splitting the future revenue (this is where shoving gold down throats is necessary, coding a good database management system takes time and a rather large amount of effort). Most of the time I've just explained why I don't think the idea would work, they ignore my complaints, and continue to bug me for a couple weeks until they realize I have no intention of changing my mind.

However, if a good idea came along or if they explained how they planned on generating their revenue and increasing customer retention perhaps I would join them on their e-commerce crusade.

2. Hire a Programmer
There are plenty of ways to hire a programmer these days, whether through classifieds (like craigslist) or by just asking around on the internet on a programming forum.

Without getting into their skill level, you put an awful lot of trust into someone you'll probably never meet in person so be cautious with how you plan on paying them. I suggest perhaps using a third party service to hold onto the money until both sides agree the job was done. I mean, can you really trust anyone on the internet?

And besides that, I've heard horror stories of inflated prices, long delays on programming, and negotiation tactics like nibbling and escalating demands from almost every friend of mine who has hired an outside programmer. If people don't have any interest in your future services or business be wary of how they'll treat you.

Skill, it matters:
The real issue you, as the e-commerce website brainchild, should care about shouldn't be solely on the idea of money (although it should matter to a degree). The real issue that should be at hand should be whether the programmer has the skill to develop the website in such a way that the code is easily readable, secure, without waste, and functional.

Easily Read:
If you look at every successful website on the internet you'll see that they changed the code behind their systems hundreds of times. The importance that the code is easily readable is that future programmers will have to look through the code to determine what is going on and you don't want them to have to waste time rewriting code. I won't go into too much detail in this area, I understand as a non-programmer it's hard to tell if the code is readable or not, but you should look out for a few things:
  • Whether or not the programmer labels his/her variables in a descriptive manner (variables hold data... ex: $phpVariableName = 2;)
  • Whether s/he uses comments in his/her code (Words that describe what's going on)
  • How messy things look in the code (the code of the best programmers I've met can, mostly, unless they are forced to write dirty code for a lack of alternatives, be read off as if it were in English it's so well written)
Secure:
Worst case scenario: you develop a great website for users to sign up, login, put some of their personal information into, and work around with whatever content you offer... suddenly, h4x0r King Rufio decides that he plans on stealing all of their personal data for his devious uses. In a matter of minutes your database is broken into, the information (including passwords which are hopefully hashed) are in his hands, and you have a negative publicity bomb on your hands that, if you're ethical, will go off within the next few business days.

How do you avoid it? You really can't, you have to trust that the developer knows how to build secure code. That means checking any input that goes against the database for SQL injections, encrypting your passwords, and just generally understanding every type of attack they can throw at you. Without advocating hacking, I believe that every good programmer should understand the different types of attacks in order to better protect himself from them. This material is widely available on the web and is only a search away. Know the enemy to know how to defeat him.

Without Waste:
If you do manage to create a monster of a site that is visited often, you better hope this programmer decided to minimize his/her calls to the database, worked to develop concise code which doesn't strain the server, and just generally understands how calls to the server and the client work enough to avoid future problems in this regards.

This reminds me of a college dating site put up on the web by some Bentley students back in the day. I was curious about it, being that they emailed me 100 times because I was on some mailing list of a club they belonged to, so I took a gander at it. Every picture of the students posted was, not only oddly resized to fit into the picture block, but was a 1 mb picture with only the width and the height attributes keeping it in the location. That means that every time someone loaded the page with, let's say, 20 people on it 20 mbs had to be downloaded by the end user. This, in turn, causes a huge strain on their bandwidth which probably was capped by the middle of the month (although it was never popular so I doubt they ever had a problem haha).

Functional:
Another big issue is the idea that the website is functional or not. I've probably already bored you with the last three items so I'll be as brief as I can with this one. If someone comes to your site, clicks a link, and they get an error message they generally will become annoyed and are less likely to come back to the site. Simple, eh?

Generally Speaking:
It's probably best to interview your programmer to see how well of a coder they have been in the past. Some sites, which I don't recall the addresses at this point in time, have programmers rated depending upon past jobs they've done. Perhaps that's one of the better ways to determine if the programmer is, indeed, a quality programmer or not. Personally, I think you should stick with your friends if at all possible. It's much easier to get them involved in the decision making process and keeps you from the headache of figuring out if this programmer is legit or just another guy trying to take as much money from you as he can by bogging you down with Geek-Speak.

Next, I'll go over something fairly more interesting... Revenue structure.
You won't survive long on the internet without one.

-Tim

5 Comments:

At 7:16 PM, Anonymous Anonymous said...

i think it would be in my best interest to not program anything by myself, and let you do it instead...

i would definetly hire you...if i possessed any form of income.

keep it real tim
-K.C.

 
At 5:36 AM, Anonymous Rob Blanchette said...

I see what you're saying here about programming. I'm a sophomore right now at Bentley, and prior to coming to Bentley I had no programming experience. I have a phenomenal idea, and I'd love to sit down a talk to you about it. I am teaching myself ASP, and I have done a good part of the site already. Whenver I need help I've gone to Dr. Frydenburg, but he's not always available. I think it'd be worth your time to hear my out, and possibly jump on once you hear what I'm working on. Get back to me: blanche_robe@bentley.edu, and goodluck in the contest!

 
At 9:27 AM, Anonymous rosario said...

http://www.elance.com might be the website you couldn't remember.

 
At 10:31 AM, Anonymous Anonymous said...

I'm not really into computers since I am majoring in Social Rehab at Assumption College, so I was wondering what kinds of applications I would need a programmer for.

Thanks,
Cara

 
At 6:51 AM, Anonymous Anonymous said...

Hemorrhoids are vascular tissues that assist in fecal control in
the rectum duct. In less serious cases, the best solution will be to increase the amount of fluid
and fiber in the diet. In most cases hemorrhoid treatment includes endoscopy or
surgery.

Look at my weblog; treatment for piles home remedies

 

Post a Comment

Links to this post:

Create a Link

<< Home