Post Pic

Ευέλικτες μεθοδολογίες ανάπτυξης λογισμικού

Οι γλώσσες προγραμματισμού αποτελούν την μία όψη του νομίσματος που ονομάζεται ανάπτυξη λογισμικού. Η άλλη είναι οι τεχνικές (μεθοδολογίες) ανάπτυξης. Ας δούμε λοιπόν κάποια πράγματα για την ανάπτυξη λογισμικού και τις αρχές μεθοδολογίας που ακολουθούνται

«Σχολές» ανάπτυξης λογισμικού

Είμαι σίγουρος ότι κάποιοι από εσάς έχετε ακούσει τον όρο «μοντέλα ανάπτυξης λογισμικού». Πρόκειται για μοντέλα τα οποία χρησιμοποιούνται κυρίως από Project Managers ώστε να μπορέσουν να οργανώσουν και τελικά να φέρουν σε πέρας ένα έργο με τον ταχύτερο, αποδοτικότερο και, κατά το δυνατόν, οικονομικότερο τρόπο. Τα πλέον διαδεδομένα μοντέλα ανάπτυξης είναι το μοντέλο Καταρράκτη (Waterfall Model) και το Σπειροειδές μοντέλο (Spiral Model). Φυσικά υπάρχουν αρκετά άλλα όπως και παραλλαγές αυτών των δύο.

Τα μοντέλα αυτά αποτέλεσαν την «ορθή» φιλοσοφία ανάπτυξης λογισμικού. Στα 2001 ωστόσο, εμφανίστηκε μία καινούρια, «εναλλακτική» σχολή ανάπτυξης λογισμικού που πρότεινε ένα σύνολο μεθοδολογιών που έμειναν γνωστές ως Ευέλικτες Μεθοδολογίες Ανάπτυξης Λογισμικού. Οι μεθοδολογίες αυτές στόχευαν κατά βάση στη δημιουργία μιας φιλοσοφίας ανάπτυξης λογισμικού που να διέπεται από πειθαρχία όσον αφορά τη διαχείριση του έργου, να προβάλει περισσότερο την έννοια της ομάδας παρά του ατόμου, να φθάνει γρήγορα σε αποτελέσματα που να μπορούν να παρουσιαστούν στον πελάτη και να μην επηρεάζεται, κατά το δυνατό, από τις συχνές αλλαγές στις απαιτήσεις. Η παραπάνω φιλοσοφία καταγράφηκε σε ένα κείμενο που έμεινε γνωστό ως Agile Manifesto και βρίσκεται διαθέσιμο στον παγκόσμιο ιστό.

Αρχές πίσω από το Agile Manifesto

Η φιλοσοφία ανάπτυξης λογισμικού κάνοντας χρήση των ευέλικτων μεθοδολογιών μπορεί να συνοψιστεί σε δώδεκα αρχές, όπως αυτές διατυπώθηκαν από τους δημιουργούς του Agile Manifesto. Παρακάτω θα προσπαθήσω να τις μεταφέρω, κατά το δυνατό καλύτερα, στα ελληνικά. Μπορείτε πάντοτε να ανατρέξετε εδώ για το αγγλικό κείμενο.

  1. Υψηλότερη προτεραιότητα αποτελεί η ικανοποίηση του πελάτη η οποία επιτυγχάνεται μέσα από συνεχή παραδοτέα από τις πρώτες κιόλας φάσεις του έργου.
  2. Οι αλλαγές στις απαιτήσεις του προς ανάπτυξη συστήματος θα πρέπει να γίνονται δεκτές ακόμη και σε τελικά στάδια ανάπτυξης λογισμικού. Οι ευέλικτες μεθοδολογίες προσδίδουν ανταγωνιστικό πλεονέκτημα στην εταιρία – πελάτη.
  3. Παράδοση εκτελέσιμου λογισμικού συχνά (από ένα παράθυρο χρόνου δύο εβδομάδων, μέχρι δύο μηνών, με προτίμηση σε κατά το δυνατόν μικρότερες χρονικές περιόδους).
  4. Προγραμματιστές και άνθρωποι άλλων ειδικοτήτων που σχετίζονται με το έργο θα πρέπει να δουλεύουν μαζί σε καθημερινή βάση.
  5. Το έργο πρέπει να αναπτύσσεται από ανθρώπους που έχουν κίνητρα. Πρέπει να τους δίδεται το σωστό περιβάλλον, να ικανοποιούνται οι ανάγκες τους και να εμπιστευόμαστε τις ικανότητές τους.
  6. Ο πιο αποτελεσματικός τρόπος επικοινωνίας προς την ομάδα ανάπτυξης αλλά και μεταξύ των μελών της ομάδας ανάπτυξης είναι οι κατ’ ιδίαν συνομιλίες.
  7. Η πρόοδος του έργου θα πρέπει να μετριέται κυρίως με παραδοτέα λογισμικού τα οποία είναι λειτουργικά..
  8. Κάνοντας χρήση των ευέλικτων μεθοδολογιών επιτυγχάνουμε ρυθμό στην ανάπτυξη λογισμικού.
  9. Δίνοντας έμφαση στην τεχνική υπεροχή και τον καλό σχεδιασμό, επιτυγχάνουμε αυξημένη ευελιξία.
  10. Η απλότητα – η ικανότητα δηλαδή του να μπορούμε να προσδιορίσουμε το μεγαλύτερο μέρος της δουλειάς που δεν έχει γίνει – είναι υψίστης σημασίας.
  11. Οι καλύτερες αρχιτεκτονικές, απαιτήσεις και σχέδια προκύπτουν από αυτοοργανούμενες ομάδες.
  12. Κατά τη διάρκεια διαλειμμάτων, που πρέπει να συμβαίνουν συχνά, η ομάδα πρέπει να βολιδοσκοπεί το πώς μπορεί να γίνει πιο αποτελεσματική και, στη συνέχεια, να κινείται προς την κατεύθυνση αυτή.

Είναι καλό; Να το χρησιμοποιήσω;

Είναι κάτι το διαφορετικό. Επιβάλει στην ομάδα συχνή ανάπτυξη μικρών τμημάτων του έργου και παρουσίαση στον πελάτη. Δίνει βάρος στην ομάδα ανάπτυξης αυτή κάθε αυτή και όχι σε κάποιον διοικητή έργου ο οποίος ακολουθεί ένα μοντέλο ανάπτυξης (π.χ. μοντέλο Καταρράκτη).

Σε σχέση με το μοντέλο καταρράκτη διαφέρει στο γεγονός ότι το μοντέλο καταρράκτη αποτελεί ένα μοντέλο χωρίς ευελιξία. Κάθε βήμα πρέπει να είναι καλά ορισμένο πριν διενεργηθεί ενώ πρέπει να υπάρχει και πειθαρχία στη σειρά εκτέλεσης των βημάτων. Σε αντίθεση, οι ευέλικτες μεθοδολογίες δεν απαιτούν κάποια αυστηρά ορισμένη σειρά ενεργειών ενώ η ομάδα μπορεί ανά πάσα στιγμή να επαναπροσδιορίσει τους στόχους και τη στρατηγική της.

Σε σχέση με το μοντέλο του Cowboy (Cowboy coding, μη τρομάζετε, έτσι λέγεται το περιβάλλον προγραμματισμού στο οποίο ο καθένας προγραμματίζει για τον εαυτό του χωρίς να δίνει σημασία στους υπόλοιπους) προφανώς υπάρχει διαφορά. Οι ευέλικτες μεθοδολογίες δεν προβλέπουν ατομικές ενέργειες αλλά λειτουργούν σε επίπεδο ομάδας.

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

Με αυτό το σύντομο, αλλά πιστεύω ενδιαφέρον άρθρο θα σας αφήσω. Μέχρι την επόμενη φορά,

Να είστε καλά και να φροντίζετε τον εαυτό σας

Σχετικά Άρθρα

Γίνετε Συνδρομητής

Γραφτείτε στις ενημερώσεις

Powered by FeedBurner

Γίνετε Συνδρομητής

2 Σχόλια

14:00 / 27.11.09
#1

Αυτό δηλαδή ενδείκνυται και για απλά projects? Ή μόνο για μεγάλα έργα?

17:38 / 29.11.09
#2

Ενδείκνυται για τα πάντα. Γενικά σε αυτά τα sites βρίσκεις έτοιμο κώδικα. Συνήθως δίνει λύσεις επιπέδου κλάσης. Τώρα, αν ασχολείσαι με αρκετά μεγάλο σύστημα μπορεί να είσαι τυχερός και να πετύχεις ολόκληρο component που να σου κάνει.

Στην τελευταία περίπτωση αν είσαι freelancer πηγαίνεις με την αγαπημένη σου σε κάποιο καλό restaurant, αν είσαι software house απλά βγάζεις το team για φαγητό :P

Trackbacks - Pingbacks

Αφήστε ένα σχόλιο

* Το όνομα σας, το Email, και το σχόλιο είναι απαιτούμενα

Γραφτείτε στις Email Ενημερώσεις

Εισάγετε το email σας:

Powered by FeedBurner

Log In

Register

Lost your Password?

Tag Cloud

Οι Φίλοι μας στο Twitter

lennondtps
FORADA
papaki
gegenos
jsclavos
tophostGR
gkapraras
wdfgr
nfountas
zouri9
Th3Ag3nt
ThodorisV
thevoyager
techfansGR
wp2blog
St0iK
andreas_m68
herath72
Dimitraakis
silve992
kymagr
papano
amorphis_
g_argyrakis
gstam78
nikos171984
gkatsampirhs
GamesHellasGR
kalliophhhh
dimsim7
giorgioret
Zoitsa_2010
ultrathunder
Weird_AL
fotisk
payne4life
splusgr
Chrysanthospro
Serderides
LewisHowes
bartvii
hambos227
ideodoxeio
BeBestT
gamosgamos
Φίλοι: 271 Μας ακολουθούν: 221

To GreekTuts Στο Διαδύκτιο

Bookmark & Share

Γίνε Συνδρομητής Στο GreekTuts


Κερδίστε πρόσβαση σε επιπλέον υλικό και άρθρα, αλλά και πολλές άλλες παροχές και προσφορές αγοράζοντας μία απο τις συνδρομές που σας προσφέρει το GreekTuts.

Γράψτε Για Το GreekTuts


Θέλετε και εσείς να γράψετε άρθρα για το GreekTuts; Διαβάστε περισσότερα εδώ. Οποιοσδήποτε μπορεί να στείλει, γι'αυτό αδράξτε την ευκαιρία και στείλτε μας και εσείς.