SlideServe
Menu
Préférences
© SlideServe · v2026

Best Practices in Software Development: Learning from Historical Insights and Modern Methods

lillith-gray avatar
29 diapositives · 467 Views · Nov 16, 2014

This document offers a comprehensive overview of software development best practices by examining historical perspectives and methodologies, including notable contributions from Ada Lovelace. It emphasizes the importance of good design principles, testing protocols, and the comparison of development methods like Waterfall and Iterative approaches. Recommendations are provided for improving project management, including adopting a clear process, maintaining documentation, and ensuring effective maintenance. By applying pragmatic strategies, teams can evolve their practices to enhance software quality and efficiency.

Best Practices in Software Development: Learning from Historical Insights and Modern Methods - slide 1
01 / 29Best Practices in Software Development: Learning from Historical Insights and Modern Methods
1 / 17

Télécharger la présentation

Best Practices in Software Development: Learning from Historical Insights and Modern Methods
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. FIO Development Process Bill Tomlin

  2. Introduction • Historical perspective • Good practice • Design • Testing • Development methods compared • Recommendations

  3. Ada – Enchantress of Numbers • Born December 10, 1815 • 1842 plan to calculate Bernoulli numbers using Babbage’s ‘Difference Engine’ • First programmer • 1979 ADA language “I am much annoyed at your having altered my Note. You know I am always willing to make any required alterations myself, but that I cannot endure another person to meddle with my sentences”

  4. Good Practice: Design • Top-down, Use Case driven • Identify high-level components • Decide interfaces • Apply to sub-components • Low coupling, high cohesion • A simple model says a lot…

  5. Example: The Database • Single, consistent access method • Hide implementation details • Good performance • Ease of maintenance • Access control • Pre-compilation • Connection pooling

  6. “Spend time on architecture not maintenance.” - Jean-Claude Wipple “Good and clear interfaces reduce bugs. Avoiding complexity reduces bugs.” - Linus Torvald

  7. Testing • Apply principles of engineering to software • Bottom-up unit testing • Catch errors early • Cheaper • Less embarrassing • Saves time

  8. January 28, 1986

  9. An “O-ring” fails

  10. “Major malfunction”

  11. What went wrong… • Rubber used to seal joints failed to expand at 0ºC • The component wasn’t tested in the right way • The engineer wasn’t listened to • The risk assessment was wrong (1/100 000 vs. 1/100)

  12. “For a successful technology, reality must take precedence over public relations, for nature cannot be fooled” - Feynman

  13. Methods • Waterfall • Iterative • Common depends on scale of project…

  14. …can be a lot of dogs to house

  15. Waterfall Method

  16. Advantages Simple Stability - harder to introduce late changes Testers get early specifications to work from Project planning is easier Waterfall Method Disadvantages • Risky - no early working releases • Inflexible – can’t change requirements or design • Cannot respond to changing circumstance • Testing late and on critical path • Projects usually too late and too expensive • Communications can break down…

  17. 4. Programmer Implemented: 1. Customer requested: 2. Analyst Specified: 5. Installed: 6. Customer really needed: 3. Designer Specified:

  18. Iterative Method

  19. Advantages Can calibrate and refine plan  more accurate Working releases all through  lower risk Allow reappraisal Whole development process regularly performed Iterative Method Disadvantages • Developers may keep writing fresh code, not bug fixing • Core product may need re-architecting with new functionality • Planning more complex • More chaotic

  20. "A complex system that works is invariably found to have evolved from a simpler system that worked" - Gall 1986

  21. Common Method

  22. Development in FIO… • Lack of clear method • Good people but high turnover • Assumed knowledge • Fragmented information • Interesting production environments • Sporadic use of CVS, SourceSafe • Eclectic, wordy document content, if they exist • High coupling between components

  23. Recommendations…

  24. Start with a simple process… • An “FIO project approach” document • Standard set of project artifacts • Requirements - what • Design (UML) - how • Code, makefiles, sql • Instructions: how to build & deploy • All artifacts in CVS/SourceSafe • Single repository for FIO • Obvious location • Consistent naming • All DB access via stored procedures

  25. …which we can evolve • Document templates • Code templates • Coding standards • Libraries • Reviews • Quality plans, testing • DevTestProduction environments • Release procedures • Widen scope beyond FIO ?

  26. Questions/Comments ?