Earlier this year, I picked up a freelance project. From the description, I figured it would be an easy problem to solve and a quick build.
So, I made the decision to forgo a requirements document, and just jump right in and develop what I thought was wanted/needed.
I can't believe that even after 4.5 years of doing this type of stuff, I still do things that stupid on occasion.
I was at a meeting with the guy last week, and discovered that our fundamental visions for how the application was supposed to work where off from one another. Sure, on the generals of the application, it was fine, it wasn't until the details were reviewed that we realized that I wasn't creating the functionality in a manner that was just slightly... well, off.
So, now I'm in the process of generating an SRS, SDD and DBDD, mainly because I'm sick of the hassle of not knowing exactly what it is I'm supposed to be doing here. Not that that isn't anyone's fault but my own of course.