1000 Lines Of Code
Scott Watermasysk, of .Text and Community Server fame, has a post on his new blog which talks about the start of his current project at Telligent called Graffiti. In it he discusses his opinion that if a first version of your project cannot be accomplished in under 1,000 lines of code, then it probably is being over-engineered from the get go.
Key to this premise though is the idea that you re-use pieces produced by others in order to avoid writing your own code. He discusses a large variety of other libraries which Graffiti uses, or used in the first few releases. Some have been replaced, some are still used, but the point is something that is discussed in "agile" circles quite a bit and circles around lots of catch phrases like "Release Often", "Keep It Simple", "YAGNI" and the like. What I particularly like about Scott's example is that it is a stand against "Not Created Here" which is a horrific airborne virus that many corporate IT departments have caught.
How many things that you've written code for do you know for a fact have been solved before and you're re-writing simply yo re-write? Data Access, yup. ORM, yup. Security, yup. Nearly every problem has been solved before, and using an existing library does not diminish the value of your project in fact it increases it because your "Time to Market" will be much higher.
Go read Scott's post, and when your done riddle me this dear reader : What is the biggest piece of code have you personally written that you know you shouldn't have? Mine is easy, I've re-engineered an entire Rules Engine when BizTalk Server's Rules Engine was available to me. That was a big piece of code, like 3 developers for 4 months kind-of big. Live and learn.