What’s this got to do with software development?
- You have to have a frame, or constraints
- You have to have a vision of the final result
- You have to be amenable to changes in the required components
And if you are painting this software for someone else, they need to be part of the process (where do you think the lighthouse idea came from!). Even if you’re painting it for yourself (a lot of open source development comes about from programmers scratching their own itch), I’m willing to bet that what you end up with isn’t what you started out to do in every detail.
Is this a methodology? Not really – just an analogy to make sense of where I think programming should be at (or where I like it to be at). If you want methodology, I recommend Alastair Cockburn as a starting point, because what he suggests matches my own experience of both large and small projects. Cockburn is one of the proponents/authors of the Agile Development Manifesto, and a founding member of the Agile Alliance. I also like what he has to say about the value of the people in a development (or indeed, any other) team.