River or Lake? The Water Theory of Software