Sponsored Link •
|
Summary
Some of the skills taught to first graders appear to foreshadow modern development practices. You decide.
Advertisement
|
Yesterday, my wife asked me to replace her as a volunteer in our daughter's first grade classroom. To my surprise, I found the experience relevant to my day job. Two practices of the first graders stood out: "imaginative spelling" and "sloppy copy". The first stipulated that when writing stories the students are only responsible for correctly spelling the words that they have explicitly studied. The second, encouraged students to jot down their thoughts in a stream-of-consciousness mode and then do another pass focusing on correctness and neatness of letters.
Holy cow! The kids were being taught the practice refactoring! Just as in literary writing, episodes of stream-of-consciousness coding are an important part of the process, but unlike writers, many developers feel that their code is good enough and that they are measured solely on the quantity of implemented features. This is a short-sighted view. For example, the deficiency I most often spot on projects is the lack of knowledge and practice of the the "compose method" refactoring which is the number one cure for unreadable code. See: http://www.industriallogic.com/xp/refactoring/composeMethod.html
At the end of the day, customers need to define that "done" means for any particular piece of software. Most customers - often with the help of a trusted adviser - will opt for code that is readable, DRY, layered, modularized, loosely coupled and testable. Getting there usually involves significant code refactoring and should be treated as a sign of a mature development culture. In such a culture you will often spot practices such as peer code reviews, pair-programming, and test-driven development -- they all help us stay honest and disciplined. Now, honestly, is your shop still shipping "sloppy copy"?
Have an opinion? Readers have already posted 2 comments about this weblog entry. Why not add yours?
If you'd like to be notified whenever David Vydra adds a new entry to his weblog, subscribe to his RSS feed.
David Vydra specializes in test-driven development, continuous integration, QA automation, and QA/developer collaboration. He has used Agile methods since 1998 and runs the testdriven.com on-line community. |
Sponsored Links
|