On Tue, 12 May 2009 09:33:28 -0700, "William Chops Westfield" said: > Yes, and no. A good "programmer" is capable of generating a "detailed > specification" from vague explanations (yes, given time to do so, but > I think a good programmer will generate a mental concept from a vague > desciption (and/or conversation, and/or "other data", and be able to > write code based on the mental concept.) A bad coder can take a > detailed specification and STILL produce crap. I'm pretty sure we've > all seen websites or other application with fill-in forms/etc that do > what they have to do, are marvels of modern technology, and yet ... > suck. (please? They can't ALL be internal?!) Sometimes this isn't about "good" and "bad" coders. Sometimes it's about more basic things like their ability level and whether or not they're naturally creative or linear. Hiring a linear thinking coder to write anything other than a well-specified program is a nightmare, as is hiring a creative programmer who can "fill in the blanks" on their own, to write anything that was already well-specified. > For example, if I want someone to write a new network interface driver > for a cisco router, I want them to write it in the style of existing > drivers, based on existing code and scattered specs and documentation, > rather than needing a special spec written for just the new driver. > Reading the existing code, finding the applicable documentation, and > ASKING THE RIGHT QUESTIONS is part of programming. That last part is key, but you WILL run into coders who ask the right questions to fill in the blanks (linear thinkers) who'll drive you nuts PERSONALLY if you're not a linear thinker, and you can also run into coders who ask the right questions and still add 10 new features without thinking about the resulting QA/Test timeline requirements, even after they were told to "code EXACTLY this" by their manager or team. The trick is in having WHOLISTIC thinkers and TASK ORIENTED thinkers BOTH in your leadership team. The wholistic folks will see what's going on, and the task-oriented folks can assign the right people to the right tasks after consulting with the big picture folk. It really does take a TEAM to do great software, and yep... it's messy. Humans. Who'd have thought? :-) Nate -- Nate Duehr nate@natetech.com -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist