Brandon Savage has written up some thoughts on what can be a somewhat painful part of software development - creating the specification and schedule for the development of the application.
In the time that I have developed software, I don't know that I've ever met a developer who got excited about writing specs for anything. In fact, most developers loathe writing specs, or developing schedules of any kind. [...] Businesses need schedules to know when products will be finished and schedule things like trade shows, product launches, and write contracts with clients who need or want a particular product.
He has a few recommendations for things that could make the process a little easier including the fact that specs should not be considered documentation, that the developers should be the ones creating them and that scheduling out the development time line isn't all about the actual development.