Simeon Franklin

A Few Caveats

Following are the principles I'm formulating for pursuing web development projects. I should start out by quoting a freelance moral philosopher on the subject of rules:

... And thirdly, the code is more what you'd call "guidelines" than actual rules
Captain Barbossa, Pirates of the Caribbean

The principles I'm suggesting here are exactly that - principles, not rigid rules. However! They are the distillation of my study, experience, reading and researching about developing software, particularly web based software. From time to time I'll revisit this list and see how helpful it is in my continuing development...

Principles for Web Development

  1. Big jobs do not get quotes, they get estimates.

    This one is pretty non-negotiable and can only go away for ridiculous sums of money. Even better than giving estimates for big projects, however, is engaging in iterative development.

  2. Everybody pays a deposit

    The exact terms of this are negotiable and for repeat customers and small projects may even be waived. Sad experience, however, has taught me that until money has changed hands, no matter what verbal arrangements have been made, nobody is really committed to a project.

  3. I don't do cheap hosting

    This doesn't mean you need a dedicated server for every simple website. But let me do some simple math:

    Savings to the client due to using "cheap" ($3.50) hosting instead of "expensive" ($10.00) shared hosting:

    $10.00x12 - $3.50x12 = $78.00/year

    Amount spent opening trouble tickets because cheap hosting doesn't offer remote shell, patching PHP code because their server only has version 4.3 instead of 5.2, and copying .htaccess files to every subdirectory because the Apache config is ... weird:

    $100.00 + $250 + $175 

    Getting the picture? We've saved -$447 so far... Hosting is one of those places where cutting corners doesn't pay!

  4. All code that does not contain business specific rules or information is GPL'ed

    I'm really not interested in all the Intellectual Property negotiations that go on sometimes - development teams that want to sell the right to use the product but disallow any modification, resale, change of hands, etc etc. And on the other side some customers have visions of buying a product and reselling it or of having a competitive advantage by forbidding the developer from working on similar projects.

    Releasing the code under an open source license ensures the client has the right to modify the code, hire somebody else to work on it, or basically do anything they want to for their own internal use. To redistribute the product, however, the client would also have to release any changes they've made to GPL'ed code - if you want to hire me to write a closed source product for resale you'll have to be explicit about what it is that you want. The GPL does not take away any rights a user of a program normally has - it does give you a few extra ones if you agree to abide by some extra conditions. You can read all about it at gnu.org

  5. Markup is important

    This is one you'll have to trust me on - Sometimes I will apparently obsess over markup issues that don't make any difference to how you see the site in Internet Explorer. It really is important, even though you can't immediately see it. I won't do IE only sites. I will rewrite the template your previous designer made by exporting Adobe Go Live image slices to a jumbled mess of tabular HTML and compressed javascript driving image based rollovers... All to get a site that looks just the same to you I know. Let me just run over several of the benefits to you the client:

    • Clean semantic HTML will save you dollars in the long run as your site grows and changes.
    • Clean markup will help your search engine position tremendously.
    • And css styled modern markup is easier for a wide variety of devices (think cell phones) to access and format in readable ways

    Still not convinced? Well just think of it as a quirk of mine you'll have to live with - bad markup makes my efforts look amateurish. That's not good for me, and it's not good for you!