I'm with Susan on this.  My job as a consultant is to help
clients define what they want so that anyone can code it.  My job
as a programmer is to implement the spec that was defined.  These
are two separate skills.  Without specs the programmer codes what
he/she thinks is required, leaving the client later to ask "why
isn't 'this' in there", or "why did you do 'that'?"  A spec helps
to eliminate the questions, to make sure things aren't forgotten,
and to prevent rifts between client expectations and contractor
delivery.

It's certainly true that people can take specs to extremes, with
four hours spent on specs and one on code.  But there have been
times when some number of hours spent on a spec revealed that
there wasn't enough information to begin coding, or that the
project was much more extensive than imagined, so no programming
was done at all.  Compare this to situations where weeks or
months of coding is done and then trashed because someone down
the line realized the code wasn't necessary, or that it all
needed to be re-written because it didn't agree with existing
policies.

Getting the job done isn't just about creating functional code,
it's should include making sure that the next person in line
understands both what the code does and why it does it.  Creating
a proper balance between spec time and coding time is yet another
skill that people should develop over time - and this is what
helps to separate professionals from amateurs.  

Tony Gravagno
Nebula Research and Development
TG@ remove.pleaseNebula-RnD.com
NEW: Follow TonyGravagno on Twitter
remove.pleaseNebula-RnD.com/blog
Visit PickWiki.com! Contribute!

_______________________________________________
U2-Users mailing list
U2-Users@listserver.u2ug.org
http://listserver.u2ug.org/mailman/listinfo/u2-users

Reply via email to