Πέμπτη 28 Αυγούστου 2014

Οι 21 άγραφοι νόμοι των προγραμματιστών...


Όπως όλοι οι έμπειροι, αλλά και οι άσχετοι προγραμματιστές γνωρίζουν, σε αυτό το επάγγελμα (όπως και σε όλα) υπάρχουν κάποιοι άγραφοι νόμοι που διέπουν την ανάπτυξη του λογισμικού. 
Το ιδιαίτερο χαρακτηριστικό αυτών είναι ότι όχι μόνο τις περισσότερες φορές δεν υπάρχουν ποινές αν τολμήσουν και τους παραβιάσουν, αλλά αντιθέτως, μερικές φορές υπάρχει και ανταμοιβή! 
Ακολουθούν οι 21 άγραφοι νόμοι του προγραμματιστή...


1) Οποιοδήποτε πρόγραμμα, μόλις εκδοθεί είναι ήδη απαρχαιωμένο.
2) Είναι πιο εύκολο να αλλάξουν οι περιστάσεις κάτω από τις οποίες αναπτύσσεται το πρόγραμμα, παρά το ίδιο το πρόγραμμα.
3) Αν ένα πρόγραμμα είναι χρήσιμο, τότε σίγουρα πρέπει να υποστεί κάποια μετατροπή.
4) Αν ένα πρόγραμμα είναι άχρηστο, τότε σίγουρα χρειάζεται και το ανάλογο εγχειρίδιο χρήσης.
5) Μόνο το 10% του κώδικα οποιουδήποτε προγράμματος θα υπάρχει περίπτωση να εκτελεσθεί κατά τη λειτουργία του. (Σας θυμίζει κάτι από δημόσιο;)
6) Το πρόγραμμα αναπτύσσεται για να χρησιμοποιεί όλους τους πόροι (resource) που υπάρχουν. (Και ακόμη περισσότερο έτσι ώστε να δικαιολογούνται άμεσες αναβαθμίσεις.)
7) Οποιοδήποτε μη τετριμμένο πρόγραμμα οπωσδήποτε έχει τουλάχιστον ένα λάθος.
8) Η πιθανότητα μιας άψογης δοκιμαστικής έκδοσης (demo) είναι αντιστρόφως ανάλογη του αριθμού των ατόμων που παρακολουθούν, εις τη δύναμη του αριθμού των χρημάτων που έχουν δοθεί για την ανάπτυξή του.
9) Δεν υπάρχει περίπτωση να φανεί το πιο σοβαρό και επιβλαβές πρόβλημα σε ένα πρόγραμμα νωρίτερα από 6 μήνες μετά την τελική του έκδοση.
10) Τα ανεξιχνίαστα προβλήματα είναι άπειρα σε ποικιλία, σε αντίθεση με αυτά που μπορούν να εντοπισθούν, τα οποία εξ ορισμού είναι περιορισμένα.
11) Η προσπάθεια που χρειάζεται για να διορθωθεί ένα λάθος αυξάνεται εκθετικά με τον χρόνο.
12) Η πολυπλοκότητα του προγράμματος αυξάνεται συνεχώς μέχρι να ξεπεράσει τις δυνατότητες του προγραμματιστή που το συντηρεί.
13) Οποιοδήποτε κομμάτι κώδικα το οποίο δεν το έχεις ξαναδεί εδώ και μήνες, πολύ πιθανόν να έχει γραφτεί από κάποιον άλλο.
14) Μέσα σε οποιοδήποτε μικρό προγραμματάκι είναι ένα τεράστιο πρόγραμμα που παλεύει να βγει έξω!
15) Όσο πιο σύντομα αρχίσεις να προγραμματίζεις τόσο πιο αργά θα τελειώσεις.
16) Ένα απρόσεχτα σχεδιασμένο έργο (project) θέλει τρεις φορές περισσότερες τον χρόνο που χρειάζεται για να ολοκληρωθεί. Ένα προσεκτικά σχεδιασμένο project θέλει μόνο δύο.
17) Η πρόσθεση προγραμματιστών σε ένα καθυστερημένο έργο το κάνει να καθυστερήσει ακόμη περισσότερο.
18) Ένα πρόγραμμα δεν είναι ποτέ λιγότερο από 90% έτοιμο και ποτέ περισσότερο από 95%.
19) Αν αυτοματοποιήσεις ένα χάλι, παίρνεις ένα αυτοματοποιημένο χάλι.
20) Φτιάξε ένα πρόγραμμα που ακόμα και ένας χαζός να μπορεί να το χρησιμοποιεί και τότε μόνο ο χαζός θα το χρησιμοποιεί.
21) Οι χρήστες πραγματικά δεν γνωρίζουν τί θέλουν από ένα πρόγραμμα μέχρι την στιγμή που θα το χρησιμοποιήσουν.
Αν πιστεύετε πως είστε προγραμματιστής και κατά την ανάγνωση των πιο πάνω κανόνων, σε περισσότερους από 10 αναφωνήσατε αυθόρμητα «ναιιι» ή χαμογελάσατε με υπονοούμενο, τότε συγχαρητήρια, μπορείτε να θεωρείτε τον εαυτό σας επαγγελματία προγραμματιστή. :-)

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου

Το blog ΟΛΑ ΛΑΘΟΣ ουδεμία ευθύνη εκ του νόμου φέρει σχετικά σε άρθρα που αναδημοσιεύονται από διάφορα ιστολόγια. Δημοσιεύονται όλα για την δική σας ενημέρωση.