...και απαντώ:
Δεν αποκλείει το ένα το άλλο. Αντίθετα. Σε ένα έργο ανάπτυξης λογισμικού του οποίου ο χαρακτήρας επιβάλει την ιοθέτηση πειθαρχημένων καλών πρακτικών του engineering, δηλαδή αυτών που μας απασχολούν στο μάθημα, επιβάλλονται και τα δύο.
Ενας σπουδαίος πηγαίος κώδικας από μόνος του μπορεί να λύνει όλα τα προβλήματα ταχύτητας και χρήσης πόρων με τον καλύτερο τρόπο. Ομως: σε ένα πραγματικό σύστημα, ο πηγαίος κώδικας πρέπει να μπορεί να συντηρηθεί σε βάθος χρόνου και από άλλους εκτός του κατασκευαστή του. Αν το μόνο που έχουμε καταγράψει για τον κώδικα αυτό, είναι ο ίδιος ο κώδικας (ή ένα "δικό μας" σχέδιο, σημειώσεις κλπ), τότε αυτό (η συντήρηση) στη γενική περίπτωση γίνεται πολύ δύσκολα έως καθόλου και έχει ενδεχομένως πολύ σοβαρές επιπτώσεις.
Οπότε απαιτείται και η σωστή σχεδίαση, η οποία πρέπει να αποτυπώνεται με μορφές που μπορούν να τις καταλάβουν "όλοι". Δηλαδή με πρότυπες μορφές. Τέτοιες είναι όλα τα διαγράμματα που κατά περίπτωση απαιτούνται, τα οποία είναι η ελάχιστη υποχρεωτική απαίτηση.
Ο χαρακτηρισμός "σωστή" είναι δύσκολο να τεκμηριωθεί και δεν υπάρχει καν μία μόνο "σωστή" σχεδιαστική επιλογή σε κάθε περιβάλλον: αντικείμενο εφαρμογής, οργανωσιακό και τεχνικό οικοσύστημα, περιορισμοί κάθε είδους. Ακριβώς για το λόγο αυτό οι σχεδιαστικές επιλογές, οι οποίες απαιτούν δημιουργικότητα, εμπειρία, φαντασία και γνώση, πρέπει να τεκμηριώνονται.
Κοντολογίς:
ΟΧΙ, για συστήματα λογισμικού που είναι κρίσιμα στο ρόλο τους, ένα καλό πρόγραμμα που είναι μόνο πηγαίος κώδικας, δεν είναι αντίβαρο στην ανάγκη σχεδίασης και τεκμηρίωσης.