Fred wants an e-commerce website. He commissions Jo, a freelancer who is a good web
designer and knows a little about programming (from an extremely sub-standard
university), to create the website for him. Jo sets to work creating lots of pretty HTML
pages with calls to as-yet-unwritten PHP scripts mixed in with the HTML and Javascript.
To explain what these scripts are supposed to do, Jo inserts drastically brief comments
into the design pane of Dreamweaver. Of course, they are scattered across various
irrelevant places in the source code. There is no documentation or functional/technical
specs of any kind. Neither would Jo know what these were if one of them wrestled him to
the ground and jumped up and down on him. Jo commissions his friend, Henry the freelance
programmer, to write the PHP.
I've just started work as a freelance programmer. My only source of work (hopefully this
will not last) is my friend Henry. As my first job, he assigns me the PHP coding for
Fred's website (before either of us know what a mess Jo is going to create). I am
formally committed to this, and could not turn it down under the circumstances anyway.
Working with Jo's mess is, of course, impossible. When I explained my difficulties to
Henry (who went to a better university and understands due process), he forwarded my
concerns to Jo. Jo has now sent me the following:
###
Can you be a little more specific about what you want?
My idea is to send you a word document specifying everything a page is supposed to do. I
will also send you a graphic with the pages a customer will go thought to make an order
(typical).
Let me know if this would suffice
###
How can I explain to him the nature and necessity of Functional specs->Design->Code, and
that of clean separation of code (PHP) from data (HTML) ?