Skip to content
This repository has been archived by the owner on May 8, 2020. It is now read-only.

Μέθοδος Ανάπτυξης Λογισμικού

Savvas Alexandrou edited this page Aug 14, 2015 · 1 revision

Η Μέθοδος Ανάπτυξης Λογισμικού που θ ακολουθηθεί είναι το Agile μοντέλο. Στο μοντέλο αυτό δεν υπάρχουν διακριτές φάσεις και όλα τα εμπλεκόμενα μέρη συμμετέχουν σε όλες τις φάσεις. Επίσης υπάρχει μια συνεχής εξέλιξη του λογισμικού και σε διάστημα 1-2 εβδομάδας/ων υλοποιείται μια καινούργια έκδοση.

Μέθοδος Καταγραφής/Συλλογής Απαιτήσεων

Η καταγραφή απαιτήσεων γίνεται μέσω της δημιουργίας "Ιστοριών του χρήστη" και δημιουργίας ομοιομάτων - σκίτσων της εφαρμογής με χαρτί και μολύβι.

Ιστορίες Χρηστών - SMART

Χαρακτηριστικά που πρέπει να πληρούν

  • Specific: Οι ιστορίες θα πρέπει να είναι τεκμηριωμένες.
  • Measurable: Μετρήσιμες και να μπορούν να ελεχθούν με συγκεκριμένες τιμές που θα αντιστοιχούν αναμενώμενο αποτέλεσμα.
  • Achievable: Εφικτές. Ιδεατά κάθε επαναληπτική φάση πρέπει να υλοποιούνται περισσότερες από μια ιστορίες. Αν συμβαίνει κάτι τέτοιο τότε πρέπει να σπάζουν σε μικρότερες.
  • Relevant: Σχετικές. Η κάθε ιστορία πρέπει να έχει μια επιχειρηματική αξία. Μια τεχνική για εντοπισμό της επιχειρηματικής αξίας είναι να γίνονται επαναλημένα ερωτήματα "Γιατί αυτή η λειτουργία" αναδρομικά μέχρι να φτάνει σε μια απάντηση που να έχει ουσιαστική σημμασία απάντηση για τους αρχικούς στόχους της εφαρμογής.
  • Timeboxed: Χρονοπρογραμματήσιμο, δηλαδή ο προγραμματιστής σταματά να αναπτύσει μια ιστορία εφόσον έχει ξεπεράσει το χρόνο. Είτε τα παρατά, σπάζωντας την ιστορία, ή επαναχρονοπραμματίζει. Εαν το σπάσιμο της ιστορίας δεν φαίνεται να βοηθά, μπορεί να ρωτήσει το πελάτη ούτως ώστε να βρεθεί το σημαντικότερο μέρος της ιστορίας.

Cucumber:

Το Cucumber είναι ένα εργαλείο που επιχειρεί να γεφυρώσει το χάσμα επικοινωνία μεταξύ του προγραμματιστή και αυτού που έχει την ιδέα για ένα πρόγραμμα. Χρησιμοποιεί τη γλώσσα Gherkin.

Κακά παραδείγματα Σεναρίων

Περιττές Λεπτομέρεις, ένα παράδειγμα

  • Σενάριο: Έλεγχος εισερχόμενων
    • Δεδομένου ενός Χρήστη "John" με κωδικό "password"
    • Και ενός Χρήστη "Sue" με κωδικό "secret"
    • Και ένας email από τη "Sue" στο "John"
    • Όταν εισέρχομαι στην εφαρμογή ως "John" με κωδικό "password"
    • Τότε πρέπει να δω 1 email από τη "Sue" στα εισερχόμενα μου

Θα μπορούσε να γραφτεί ως εξής:

  • Σενάριο: Έλεγχος εισερχόμενων
    • Δεδομένου ενός Χρήστη "John"
    • Και ενός Χρήστη "Sue"
    • Και ένας email από τη "Sue" στο "John"
    • Όταν εισέρχομαι στην εφαρμογή ως "John"
    • Τότε πρέπει να δω 1 email από τη "Sue" στα εισερχόμενα μου

Ή ακόμα καλύτερα ως εξής:

  • Σενάριο: Έλεγχος εισερχόμενων
    • Δεδομένου ότι έχω λάβει ένα email από τη "Sue"
    • Όταν εισέρχομαι στην εφαρμογή
    • Τότε πρέπει να δω 1 email από τη "Sue" στα εισερχόμενα μου

Mockup στο χέρι

  • Καλύτερη επικοινωνία μεταξύ των μελών της ομάδα όταν βρίσκονται στον ίδιο χώρο.
  • Στο χαρτί κάτι σχεδιάζεται πιο αυθόρμητα και είναι κατάλληλο όταν από την ομάδα πρέπει να μαζευτούν ιδέες - ιδεοθύελλα.
  • Ευνοεί μέλη της ομάδας που δεν έχουν δεξιότητες σε συγκεκριμένα λογισμικά δημιουργίας mockup

Mockup με χρήση υπηρεσία whiteboardfox.com

  • Μαθαίνεται εύκολα εφόσον οι λειτουργίες του είναι λίγες
  • Δεν χρειάζεται signup άρα μπορεί να χρησιμοποιηθεί πιο άμεσα όταν χρειαστεί.
  • Η υπηρεσία δίνει τη δυνατότητα να δουλεύουν 10 χρήστες στο ίδιο board ταυτόχρονα.
  • Tablet friendly
  • Δεν κοστίζει (προς το παρών)

Ένα αρνητικό της

  • Λίγες λειτουργίες (π.χ. δεν έχει να αλλάζεις το μέγεθος γραμματοσειράς, ευθύ ες γραμμές, copy-paste)

Προσφέρει σχεδόν όλα τα πλεονεκτήματα που μπορεί να έχει μια ομάδα όταν συναντιέται στον ίδιο φυσικό χώρο. (Η επικοινωνία μπορεί να γίνει μέσω skype, hangout ή κάτι αντίστοιχο). Κάποιες λειτουργίες που δεν προσφέρονται (πχ copy - paste) μπορούν να γίνουν με τα υφιστάμενα εργαλεία με λίγα περισσότερα βήματα (για copy-paste–. snapshot και μετά upload την εικόνα)

Δυναμική ομάδας

Η δυναμική της ομάδας εκτιμείται ως εξής: Σε κάθε "ιστορία" αναθέτονται βαθμοί ανάλογα με το χρόνο που εκτιμάται ότι χρειάζεται να υλοποιηθεί. Η κλίμακα μπορεί να είναι 1,2,3 είτε σειρά Fibonacci 1,2,3,5,8, η οποία προσφέρει μια καλύτερη ιεράρχηση. Όσο πιο περισσότερο χρόνο χρειάζεται να υλοποιηθεί τόσο πιο μεγάλος βαθμός. Η δυναμική της ομάδας ισούτε με το μέσο όρο αθροισμάτων των βαθμών που υλοποιηθηκαν ανα εβδομάδα.

Πηγές