Lean Software Development Methodology and Principles