Original article:
Best practices for software development projects

Highlight résumé :

  1. Development process
    There are several choices, including the Rational Unified Process (RUP), IBM® Global Services Method, and eXtreme Programming (XP). Having a process is better than not having one at all, and in many cases it is less important on what process is used than how well it is executed.
    Recommended books:

    • Ambler, Scott and Constantine, Larry, The Unified Process Inception Phase, ISBN 1929629109
    • Ambler, Scott, The Unified Process Elaboration Phase, ISBN 1929629052
    • Ambler, Scott and Constantine, Larry, The Unified Process Construction Phase, ISBN 192962901X
    • Ambler, Scott and Constantine, Larry, The Unified Process Transition and Production Phases, ISBN 157820092X
  2. Requirements
    Quality requirements are broken up into two kinds: functional and non-functional. A good way to document functional requirements is using Use Cases.
    Recommended reading:

    Recommended books:

    • Armour, Frank and Miller, Granville, Advanced Use Case Modeling, ISBN 0201615924
  3. Architecture
    Recommended books:

    • Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns, ISBN 0201633612
    • Grand, Mark, Patterns in Java, ISBN 0471258393
    • Marinescu, Floydd, EJB Design Patterns, ISBN 0471208310
    • Alur, D., Crupi, J., Malks, D., Core J2EE Patterns, ISBN 0130648841

    And do NOT forget: antipatterns

  4. Design
    The two basic principles here are “Keep it Simple” and information hiding. For many projects, it is important to perform Object-Oriented Analysis and Design using UML.
    Recommended books:

    • Booch, G., Rumbaugh, J., and Jacobson, I., The Unified Modeling Language User Guide, ISBN 0201571684
    • Larman, Craig, Applying UML and Patterns, ISBN 0130925691

    Recommended reading:

  5. WebSphere application design
  6. Construction of the code
  7. Peer reviews
    Experience has shown that problems are eliminated earlier this way and reviews are as effective or even more effective than testing.
    Recommended reading:

  8. Testing
    It is also important that testing is done proactively; meaning that test cases are planned before coding starts, and test cases are developed while the application is being designed and coded.
    Recommended reading:

  9. Performance testing
    One method to catch some architectural defects is to simulate load testing on the application before it is deployed and to deal with performance issues before they become problems.
    Recommended reading:

  10. Configuration management
    Recommended reading:

    Recommended books:

    • Stephen P. Berczuk, Brad Appleton Software Configuration Management Patterns: Effective Teamwork, Practical Integration, ISBN 0201741172
  11. Quality and defects management
    By using defect tracking, it is possible to gauge when a project is ready to release.
    Recommended reading:

  12. Deployment
  13. System operations and support
  14. Data migration
  15. Project management
  16. Measuring success