wiki.chadlindstrom.ca

Web Development Best Practices and Design Patterns




Software Development Best Practices

Contents

Overall project management

  • Proof of Concepts: intended to mitigate risks by addressing big technical issues early in the lifecycle.
  • Iterative development: so many different names for this practice, but in brief making sure that projects are delivered in a collection of incremental releases.
  • Use Cases: although they could be documented in a number of different ways, this approach for managing requirements renders the best results for large projects.
  • Build Management: there is a quick guide available
  • Sharing accountability: whether it is pair-programming, coaching through some specific tasks or overall supervision, it is important that everyone can rely on a peer to reduce the risk of making decisions without the support from the organization.

Development management:

  • Test Driven Development: all code should have a Test Case.
  • Continuous Integration: all code committed to version control is automatically built into the development servers, allowing the team to gain visibility on overall progress.
  • Refactoring: as projects reach a certain maturity, maintaining the code in good shape is critical. The ultimate guide is the best way to get introduced to this concept.
  • Separated environments: Development, QA, UAT and Production should be independent from each other to support the different phases of a project.
  • Specialize in a Reference Architecture: Java or .Net are no longer enough specialization. Developers must learn specific Reference Architectures to improve their productivity.

Architecture:

  • UML: although we don't create exhaustive design documentation, whatever we do is done with UML.
  • Quality Attributes: should be used to document all non-functional requirements that will have an impact on the architecture. There is a better explanation in the Software Development Architecture Review Process page
  • Separation of Concerns: as a strategy to deal with complexity.
  • Inversion of Control: this principle of designing OO applications has been made popular by frameworks such as Spring.
  • Open Closed Principle: any module should be open for extension but closed for modification.

Other Resources

Retrieved from "http://wiki.chadlindstrom.ca/index.php/Software_Development_Best_Practices"

This page has been accessed 2,606 times. This page was last modified 04:51, 27 September 2006.


This page has been accessed 2,606 times. This page was last modified 04:51, 27 September 2006.