Software Programming Fundamentals: Design and Development Best Practices