Hi all,

    I recently had a freelancing experience that has left me somewhat sour and
questioning myself. Unfortunately I don't feel I can fairly evaluate myself
and so I owuld like to put the question to my peers who populate the PHP
forum as to whether I have performed competently.

    Last week I took upon myself the task of fixing a clients shopping cart
system by way of adding session support and proper user registration
validation. To give you some idea of the parameters of the job...

    - VNC development connection
    - live server with no error output
    - no session support whatsoever
    - cart had no input validation, except basic javascript
    - user registration permitted clobbering of other users
      and had no validation either
    - PHP code was ad-hoc sprinkled through the pages
    - comments were almost non-existent

    The first day I decided it would be best to mirror the server so that
development time would be minimized (VNC is terrible for devlopment). This was
done without charge to the client despite it's time saving effect.

    The second day I spent 13 hours familiarizing myself with their code and
pages, and on this day I also implemented a session management library for
easily accessing and setting session data (this included hooks for permanent
cookie data storage). I also fixed the user registration process and add
security validation to ensure user information could not accidentally (or
deliberately via form hacking) be accessed by someone other than the
registrant. Previously re-registration of an existing email address regardless
of password would clobber existing customer. At this time I also fixed the
cart and ensured prepopulation of forms for updating registration information.

    The third day I first wasted an hour making my changes work on their
server because they decided to rename all the files I had changed thus
breaking all of the include() paths. After that I spent another 3 hours adding
support for returning to previous page before entering any of the cart
checkout or customer registration pages. At this time a response page was also
added to thank the customer for their purchase. Of course all of this was
tested to be functional and where necessary broken pre-existing code was
replaced or fixed to provide the correct functionality.

    On the fourth day I spent 3 hours adding support for input validation
feedback to the registration validation so that customer's would know exactly
why they could not continue. I also added support for a password reminder to
inform the user of their password when forgotten. This included adding the
page, adding the form, validating that the user id existed and outputting
appropriate feedback if the user did not exist - and of course testing.

    All in all I spent 20 hours total for the client at a rate of $40 USD/hr
which I believe is on the low end of freelance. I myself have 3 years
experience devloping PHP web applications. So the question I ask is whther
this time frame is reasonable, or am I just a slow crappy programmer that is
ripping these people off? They seem to think I should have had this done in
just a few hours, but my experience thus far indicates to me that they got
just service. Additionally it seems before I took the job, they had went
through several other PHP developers would said they couldn't do it (and I
don't really blame them considering the VNC connection and lack of comments or
error feedback).

    If it turns out that I am incompetent, then I will happily send them a
bill for zero hours, otherwise I would like to take comfort that I am not
ripping them off.

Sincerely,
Robert Cummings
-- 
.---------------------------------------------.
| Worlds of Carnage - http://www.wocmud.org   |
:---------------------------------------------:
| Come visit a world of myth and legend where |
| fantastical creatures come to life and the  |
| stuff of nightmares grasp for your soul.    |
`---------------------------------------------'

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to