Software Development Best Practices
Contents |
[edit]
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.
[edit]
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.
[edit]
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.
[edit]
Other Resources
This page has been accessed 2,606 times. This page was last modified 04:51, 27 September 2006.