in reply to How to calculate development time?

This seems like a "how long is a piece of string?/how many fairies can dance on the head of a pin?" question.

I find the following formulae useful for calculating development time:

$dev_time = ($deadline-$today) + $several_weeks; $dev_time = $developer_estimate*2 + $fudge_factor; # note $fudge factor is always a positive integer! if (use strict && use warnings) { $dev_time = 0.5*($dev_time); } if ($no_planned_approach) { $dev_time = $developer_estimate * (2+rand(5)); } if (#!/usr/bin/perl -T and use { $security_nightmares *= 0.01; }

Yes these formulae are silly but experience seems to bear out these basic principles.

The first step is to define your project in precise terms, what do you want your site to do, why, and how...This is vital and will save untold hours in the long run.

The answer then depends of course on your knowledge and experience, your spec, and how little you will actually have to code by adapting available modules/code to your needs.

One problem with modules is that they *can* have a steep learning curve, so you should possibly stick with the basics. will be essential.

One approach is to try to find a script that fulfills most of your criteria and then adapt it. Sadly you tend to get what you pay for but of course there are so many exceptions to this rule...especially in the give and let live Perl community. is the basis from which to start. It can generate HTML for you as well as get CGI input. It allows file upload so users could upload say HTML CVs.

Search engines to index your data can be complex to code. In a pinch you might consider one of the free site search engines. I use for a cheap and cheerful search, on shoestring sites. You can customise the search interface and the output template and it is free for ?1000 pages I think. To see simple example in use check out This site (still under construction of course!) took 6 hours to generate, graphics, search, etc. Try the search, and then look at the 4 lines of source HTML that are required. If you have CVs and Job Ads as *.html pages that can be spidered this will solve the search requirement in under an hour. Downside -> ads on result page. Hint, edit the template and dump the adds to the bottom - if you remove them they get replaced at the top, but if you move them to the bottom all is OK.

Consider employing a perl consultant to set up at least the basics for you to tweak

It should not be a problem to get modules installed at your ISP, often in your local bin where you may or may not be able to tweak them. When it comes to CGI most ISPs are aware of the security risks and have varying policies. Ideally you will want to be able to freely upload your script during testing but this requires that your ISP trust your code, or be non security concious. This is a real issue when it comes down to getting your script running. If you have to get your script vetted (often for a fee!) with each change the process becomes very slow. This *should* influence your choice of ISP. PS You may not want your prodution code to reside on an ISP that let's anyone edit their CGIs but.....

Finally (whew got a bit carried away here) if you want to simulate CGI, have relatively little experience, are familiar with win32 then perlbuilder 2 from solution soft is a very useful program. Trial copy at

Good luck, I'm sure you will have fun discovering the power of Perl, the greatest CGI lang on earth. If you have specific code problems that the Monks can sink their teeth into you will often find help here. Homework and writing your code for you is a lottery and you know what the odds are in lotteries!


Replies are listed 'Best First'.
Re: Re: How to calculate development time?
by Siddartha (Curate) on May 31, 2001 at 17:37 UTC
    Thanks for all the feedback from all of you.

    I know it's a very general question, and impossible to answer, but you are monks after all. I really appreciate the speed of replies.

    I have not decided on an ISP yet, but are looking for something in the UK with full CGI and MySQL support. at the moment Internetters seems like a good bet. I would appreciate other possible ISP's. I have worked with Internetters before, so that is probably why I would go with them. They hosted a site which I developed for my day job and it seems to be OK.

    My biggest problems are:
    1. I only have FTP access, no Telnet.
    2. I don't have access to the Apache error files

    Up till now it hasn't been the biggest problems since I developed everything on a development machine and tested it before I uploaded it. The development and hosting environments aren't exactly the same though, which creates a problem now and then.

    I am however a bit worried about MySQL development on a remote host with no error logs. Is there any way I can see what is not working without the ubiquitous Internal Server Error message?

    My next question regards searching. If I want to search through the MySQL DB, is it going to be as easy as:

    SELECT * FROM jobs WHERE creation_date < $search_max_date

    or do I need something like that you suggested?

    It's been a while since I did any SQL, but I'm sure that it's not going to be the biggest problem.

    Here are a list of what I think needs to be done: (My solution in brackets, comments would be appreciated.)

    1. User regestration ( .htaccess files, MySQL table for user profile from HTML form, basic CGI)
    2. Employer registration (same as 1)
    3. Upload jobs (MySQL table for jobs, linked to employer table. html form, basic CGI)
    4. Remove jobs (same as 3)
    5. Search (???, MySQL SELECT queries?)
    6. Credit Card Billing for employers (No idea..., maybe use something like NetBanx, help would be appreciated.)

    thanks for everything

      I am however a bit worried about MySQL development on a remote host with no error logs. Is there any way I can see what is not working without the ubiquitous Internal Server Error message?

      use CGI::Carp qw/fatalsToBrowser/;

      This prints nice error messages to the browser; however, if your script dies before compiling, you just get a (fairly) unhelpful "compile error."

      If you don't have a command line, maybe you can do your developing on another box somewhere and then move everything to your host? I personally could not bear to write any decently sized script without the debugger.

        Thanks, I'll try that.

        I do have a development box, so I can make sure that the syntax is correct and it can compile. I will need to test to see if this solves all my problems (probably not), but thanks for the input.

        My biggest problem however is not the Perl errors, but possible mySQL errors. I need to set up a testing environment with MySQL and start playing around, but I have no idea what is going to happen if MySQL has problems. Will MySQL return error codes to the CGI that I can catch, or will it just die?

        thanks for everyone's input. the whole thing doesn't seem so impossible anymore.


      i would wholeheartedly recommend Positive Internet ( if you are looking for an excellent Perl and Mysql hosting company in the UK.

      Having used a more well known host before Positive, i can state that the folk there are v helpful and the service is outstanding - they have even installed perl modules that they didn't have but that i wanted to use, which has been great.

      Tell them iain sent you if you go with them - they have a nice referral scheme too ;)

      also, i can't seem to locate an email address for you if you are looking for help via mail - anyone help?