According to Professor Joe Hummel, of Lake Forest College, some of the best practices for software development include these elements:
*  Object-oriented programming: This style of programming makes pro-grams easier to understand and test.
* Components: Software that!s broken into components is easier to deploy. The upcoming section !Components Defeat Monoliths!– expand on the benefits of using components.
* Testing: Integration testing, or repeated automated testing, is important in order to see how components work together.
*  Code reviews: Standards are crucial for identifying how code should look. Having peers review each other!s code enforces standards and exposes developers to new styles. (As the adage goes, !Two heads are better than one.!–
*  Prototyping: You should build your software frequently, not only to make sure that it works, but also to get it in front of end users early and often so that they can validate your progress.
*  Tools, tools, tools: Use tools to help you manage your process and projects. See the next section for more about using tools.