Earlier quoted context omitted.
All of those things are approaches to crafting better software. It is my observation that a lot of projects developed with these methodologies still lack proper documentation. And I see documentation, especially in the form of a good Readme, as critical to the design, usability, and longevity of a project.
Do you consider projects like http://erector.rubyforge.org/ , http://pivotal.github.com/jasmine/user-guide.html , or http://github.com/pivotal/cedar to have good documentation?
Readme Driven Development
21–30 of 59 posts
Re: Readme Driven Development
#22Re: Readme Driven Development
#23Re: Readme Driven Development
#24Writing a README early on (and figuring out your general project scope, etc.) is a good idea, sure. Fundamentally, though, it sounds like he's just saying that a Software Engineering Methodology(TM) is no replacement for common sense.
When people attempt to formalize (and, often, brand & market) common sense, it tends to substitute checklists for thought.
Re: Readme Driven Development
#25I have a hard time thinking seriously about this, because all I can think of right now are those repos on GitHub that have nothing but a README file.
They obviously haven't gotten to step two... writing the code.
(declarative programming for the rest of us!)
Re: Readme Driven Development
#26Seems that mojombo practices what he preaches. First commit by mojombo (from march 29, 2010) of Github's Gollum wiki reads "readme driven development!" http://github.com/github/gollum/commit/c7875704971be998a5399...
You may also be interested to see how the Readme evolved over time as I implemented what I had specified. http://github.com/github/gollum/commits/master/README.md Writing your Readme first doesn't mean you should never change it. It should grow and become even more refined, comprehensive, and accurate as you write the code.
Re: Readme Driven Development
#27It would be nice, if we dont consider the fact that nobody reads README at all. "A perfect implementation of the wrong specification is worthless." The point of BDD is exactly this: bring specification to the scene, give it a first class citizen status, it becomes a live entity in the system, more influential than before. I don't believe Readme or any other document can be as influential as a Cucumber feature, for in…
From a "using stuff off of GitHub" perspective, the README file is front and center when you look at a project.
Re: Readme Driven Development
#28I like documentation-driven design - when I'm to write a long and complex routine I always write in pseudo-code-comments what I am to do.
This pseudo code usually ends up as the documentation of the routine (little grammar/language update might be needed)
Re: Readme Driven Development
#29this is an excellent post and quite relevant. i have found this kind of epiphany as well while writing a python based framework at my company. i would extend the README driven approach to even suggest a developer blog driven design methodology, since it allows for a more dynamic way to clarify points and also add diary entries for 'thinking aloud' while you are building complicated libraries.
ruby has been suffering this for too long.
blogs have several problems:
- they don't get updated - they don't get patched - they don't ship with the software - they break when the user dies / moves / leaves / changes software - they have a lower signal to noise ratio
Re: Readme Driven Development
#30It would be nice, if we dont consider the fact that nobody reads README at all. "A perfect implementation of the wrong specification is worthless." The point of BDD is exactly this: bring specification to the scene, give it a first class citizen status, it becomes a live entity in the system, more influential than before. I don't believe Readme or any other document can be as influential as a Cucumber feature, for in…
your idea works for libraries that are small, it's appalling for libraries of any significant size.
the point of a readme is to provide a useful summary that is quick to start using for the critical path use cases.
if you look at a web framework in a language you don't know as an example, and try to find the introductory use cases in the tests, this should give you some idea of what you're suggesting.