programming

So I added a form to a client's website last week. I charged $350 (the work was really worth $700 but I was trying an experiment).

I finally got the balls up to submit a simple patch for a Drupal module. It is a module called Twitter that lets you incorporate Twitter into your website.

I want to be able to distribute my drupal apps via my Drupal "command centre" (It's just a drupal installation I use to manage all my projects).

Ok boys and girls, if you know php, and Drupal Coding Standards, sink your teeth into my code here: http://drupalbin.com/3485 and rip it to shreds!

Collection of web APIs, great for mashups - I may turn this into a directory unless I can find a site that's already done it.

Twitter API - http://apiwiki.twitter.com/ - make your code tweet!

I look at the issue of finding good programmers to build web sites, and why clients often have so many problems with them.

I read an article recently, which I've been unable to source, about how someone had a great idea for a website, and had gone through 6 developers trying to get it done, including some quite high profile programmers. It would usually take 2 months to find another programmer to replace the original developer, and then another 2 months to get them up to speed, and not long after, the developer would disappear.

I've seen the story repeated, and actually had a client talk to me about a similar problem with one of their programmers the same day I read the original article. So what is going on?

Most web programmers are trying to earn a living - but they are going the wrong way about it, and I'd have to admit, I'm going about it the wrong way as well - but I'm fixing that.

Programmers will start out, and quote X amount for a job. They will under estimate, and the project usually turns into a nightmare for them. In the meantime, they need money, so they take on another project. They work their time between the 2 projects, and eventually finish one. That's where you are normally jumping up and down shouting Horray! But now the project requires maintenance, updates, and support. This starts eating into the second projects time, and the process repeats itself. The programmer doesn't want to turn down a project for fear of ruining their reputation, but lets face it - not getting the work done in a timely manner isn't helping their reputation any.

Yep - I've been there myself.

It takes time for a programmer to switch mind sets between different projects as they go, and this looses time for them as well.

When I think about it, there really needs to be a few different sort of programmers.

Project Programmer: This programmer works on one project at a time. They take a project from idea to release. Future projects are lined up so the programmer moves from one project to the next, once a project is complete - they do not chop and change between projects.

Maintenance Programmer: This programmer handles the small changes that are usually requested after the original programmer has finished on the project. They don't have to work on a solid project, and are able to work on small change requests as they come in. Each change is small, and only requires a short amount of time to complete.

If a maintenance task is obviously a full on project by itself, this is documented and queued for the project programmer to work on.

Could working in this manner actually get jobs done more efficiently? The project has 100% attention from the programmer who isn't being inundated by 100's of small changes being requested for previous projects they have completed. What do you think?