Interesting article here by Jeff Cogswell, author of ‘Designing Highly Usable Software.’ I particularly liked the point about programmers understanding where things can go wrong. In my current gig, I receive specs all the time that indicate how something should work and be displayed under average use conditions. It’s the extreme cases where the UI breaks down or the specification does not work that can kill the product. Understanding and identifying these cases up front leads to spec modification that saves a lot of downstream headaches and refactoring.
Although the article does not deal with Flash, the principles are still valid. From your own experience managing or working with great programmers, what do you think makes a really great Flash/Flex programmer?
With the intricate ins and outs of Flash, I think one of the most desirable skills is debugging. Knowing how to troubleshoot a problem and really asking why, can save a ton of time in republishing, reloading and visually confirming the fix was implemented.
In the case of Flash development: a good programmer knows when he needs to switch from a full-spec high-end programming style to the flashy making-cool-stuff-that-works approach (and v.v.). You cant smother creativity with patterns and plans and endless documentation, and neither can you expect a big enterprise production to work without a solid project method. So the return question is: you need a good programmer, but to do what?
From my college programming projects, I can say planning is critical; I always have to go back and rewrite a lot of stuff if I just sit down and start coding. Seems like a minute of planning is worth an hour of reckless coding 🙂