Wednesday, February 3, 2010

Leonardo & nature versus waterfall model

Leonardo da Vinci's study of a tree sketch.
I was just reading a book on the works of Leonardo Da Vinci. It has quotes from him, which indicates how he observed nature closely: 'If you say that sciences that begin and end in the mind exhibit truth, this cannot be allowed... above all because such mental discourses do not involve experience, without which nothing can be achieved with certainty.' He preferred for each one to learn directly from nature to create valuable work instead of philosophizing in the mind or taking other peoples experience as the authority.

Looking at nature, I think there is no plan. Just a tremendously powerful present through which subsequent moments are born. The trees don't sit and analyze/design and plan the fruits, do not predict the future, how much time it is going to take; they just implement spontaneously. It is not anybody's plan that stars should give light, moon has to go around the earth the earth around the sun. It just happens according to their characteristic suchness.

Waterfall model for software with a long term end goal in mind fails the natures test. It is just somebody's mental idea that a particular software/service with particular characteristics will be required 1 year from now. This idea is just a copy of someone else, something which Leonardo was against: 'Life is pretty simple: You do some stuff. Most fails. Some works. You do more of what works. If it works big, others quickly copy it. Then you do something else. The trick is the doing something else.'

Life is more of a sprint than a plan. It is agile adapting to changing situations and responding. Similarly in Agile methodology of software development, staying in the present one can look at one month ahead so I think Agile methodology is much closer to life than waterfall model. Waterfall model is for creating low standard copies, Agile is for creating something valuable in tune with nature.