Mental Wealth: Professional Life 1 (IT Project) · CN4005
Εβδομάδα 7: Χρονοπρογραμματισμός στην πράξη με το ProjectLibre
Σημειώσεις μελέτης για το εργαστήριο της Εβδομάδας 7: «Δημιουργία Διαγράμματος Gantt». Οι ασκήσεις της εβδομάδας είναι παρακάτω· τα αρχεία βρίσκονται στο Moodle.
Την Εβδομάδα 6 είδαμε στο χαρτί το διάγραμμα Gantt, το κρίσιμο μονοπάτι και την PERT. Αυτή την εβδομάδα τα φτιάχνουμε σε ένα εργαλείο διαχείρισης έργων, το ProjectLibre: δωρεάν, ανοιχτού κώδικα, και πολύ κοντά στο Microsoft Project. Το ίδιο εργαλείο ζητά και η εργασία του μαθήματος.
Τι κάνει ένα εργαλείο διαχείρισης έργων
- Διάγραμμα Gantt: δείχνει το χρονοδιάγραμμα και την πρόοδο κάθε δραστηριότητας.
- Διαχείριση πόρων: αναθέτεις ανθρώπους ή εξοπλισμό σε δραστηριότητες και βλέπεις αν κάποιος είναι υπερφορτωμένος.
- Κρίσιμο μονοπάτι: το εργαλείο το υπολογίζει μόνο του και το χρωματίζει.
- Αναφορές: πρόοδος, κόστος, χρήση πόρων.
Το μεγάλο πλεονέκτημα σε σχέση με το χαρτί: αν αλλάξεις μια διάρκεια, όλο το χρονοδιάγραμμα ξαναϋπολογίζεται αυτόματα.
Βήμα 1: δραστηριότητες και διάρκειες
Σε ένα νέο έργο ορίζεις πρώτα την ημερομηνία έναρξης. Μετά γράφεις τις
δραστηριότητες στη στήλη Name και τη διάρκειά τους στη στήλη Duration (π.χ.
5 days).
Οι μεγάλες δραστηριότητες σπάνε σε υποδραστηριότητες: γράφεις τις υποδραστηριότητες κάτω από τη «μητρική» και τις μετακινείς προς τα δεξιά (indent). Η μητρική γίνεται συνοπτική δραστηριότητα (summary task) και η διάρκειά της υπολογίζεται αυτόματα από τις υποδραστηριότητές της. Γι’ αυτό δεν της δίνεις δική της διάρκεια.
Βήμα 2: εξαρτήσεις
Στη στήλη Predecessors γράφεις τον αριθμό της γραμμής της προαπαιτούμενης δραστηριότητας. Ο πιο συνηθισμένος τύπος εξάρτησης είναι ο FS (Finish-to-Start): η δραστηριότητα αρχίζει όταν τελειώσει η προηγούμενη. Αυτό θέλεις σε ένα έργο καταρράκτη. Υπάρχουν και άλλοι τύποι:
| Τύπος | Σημαίνει | Παράδειγμα |
|---|---|---|
| FS (Finish-to-Start) | η B αρχίζει όταν τελειώσει η A | οι δοκιμές μετά την υλοποίηση |
| SS (Start-to-Start) | η B αρχίζει όταν αρχίσει η A | η τεκμηρίωση ξεκινά μαζί με την υλοποίηση |
| FF (Finish-to-Finish) | η B τελειώνει όταν τελειώσει η A | οι δοκιμές ενοποίησης τελειώνουν μαζί με την ανάπτυξη |
| SF (Start-to-Finish) | η B τελειώνει όταν αρχίσει η A | σπάνιο, π.χ. το παλιό σύστημα σβήνει όταν ξεκινά το νέο |
Μπορείς να προσθέσεις και καθυστέρηση (lag): το 3FS+2 days σημαίνει
«ξεκίνα 2 ημέρες αφού τελειώσει η γραμμή 3», π.χ. για να περιμένεις την έγκριση
του πελάτη.
Με το παράδειγμα της Εβδομάδας 6:
| # | Name | Duration | Predecessors |
|---|---|---|---|
| 1 | Ανάλυση απαιτήσεων | 3 days | |
| 2 | Σχεδίαση βάσης δεδομένων | 2 days | 1 |
| 3 | Σχεδίαση διεπαφής | 4 days | 1 |
| 4 | Υλοποίηση | 5 days | 2;3 |
| 5 | Δοκιμές | 2 days | 4 |
Το ProjectLibre σχεδιάζει μόνο του τις ράβδους και τα βέλη, και δείχνει με κόκκινο το κρίσιμο μονοπάτι 1 → 3 → 4 → 5. Στο Network Diagram βλέπεις το ίδιο έργο ως δίκτυο.
Προσοχή: οι ημέρες του εργαλείου είναι εργάσιμες. Με έναρξη Δευτέρα, ένα έργο 14 εργάσιμων ημερών τελειώνει την Πέμπτη της τρίτης εβδομάδας, όχι μετά από 14 ημερολογιακές ημέρες.
Βήμα 3: πόροι και κόστος
Στο Resources γράφεις τους πόρους (π.χ. «Αναλυτής», «Προγραμματιστής») με το ωριαίο κόστος τους. Μετά τους αναθέτεις στις δραστηριότητες, στη στήλη Resource Names. Το εργαλείο υπολογίζει το κόστος κάθε δραστηριότητας:
κόστος = ημέρες × 8 ώρες × ωριαίο κόστος × αριθμός ατόμων
Δύο προγραμματιστές με 30 €/ώρα σε μια υλοποίηση 5 ημερών κοστίζουν 5 × 8 × 30 × 2 = 2.400 €.
Η διάρκεια δεν μειώνεται αυτόματα όταν προσθέτεις ανθρώπους. Αν θέλεις οι δύο προγραμματιστές να τελειώσουν τη δουλειά πιο γρήγορα, πρέπει να το ορίσεις. Στην πράξη, άλλωστε, δύο άνθρωποι σπάνια τελειώνουν στον μισό χρόνο.
Βήμα 4: παρακολούθηση
Καθώς προχωρά το έργο, ενημερώνεις τη στήλη % Complete. Μέσα στη ράβδο του Gantt εμφανίζεται μια πιο σκούρα γραμμή με την πρόοδο. Αν πριν ξεκινήσεις αποθηκεύσεις μια γραμμή βάσης (baseline), μπορείς μετά να συγκρίνεις το αρχικό πλάνο με την πραγματικότητα.
PERT όταν οι διάρκειες είναι αβέβαιες
Αν δεν ξέρεις με σιγουριά πόσο θα κρατήσει μια δραστηριότητα, δίνεις τρεις εκτιμήσεις (αισιόδοξη a, πιθανότερη m, απαισιόδοξη b), υπολογίζεις τον αναμενόμενο χρόνο tₑ = (a + 4m + b) / 6 και βάζεις αυτόν ως Duration. Αν για τις δοκιμές εκτιμάς a = 1, m = 2 και b = 6 ημέρες, τότε tₑ = (1 + 8 + 6) / 6 = 2,5 ημέρες. Αβέβαιες δραστηριότητες πάνω στο κρίσιμο μονοπάτι είναι ο μεγαλύτερος κίνδυνος για το χρονοδιάγραμμα.
Ερωτήσεις αυτοαξιολόγησης
1. Γιατί δεν δίνεις διάρκεια σε μια συνοπτική δραστηριότητα;
Γιατί το εργαλείο την υπολογίζει από τις υποδραστηριότητές της: ξεκινά με την πρώτη και τελειώνει με την τελευταία. Αν της έδινες δική σου διάρκεια, θα μπορούσε να μη συμφωνεί με τις υποδραστηριότητες.
2. Τι σημαίνει το «4FS+3 days» στη στήλη Predecessors;
Η δραστηριότητα ξεκινά 3 ημέρες αφού τελειώσει η δραστηριότητα της γραμμής 4.
3. Ένας σχεδιαστής με 25 €/ώρα δουλεύει 4 ημέρες σε μια δραστηριότητα. Πόσο κοστίζει;
4 × 8 × 25 = 800 €.
4. Γιατί η τεκμηρίωση μπορεί να συνδεθεί με την υλοποίηση με SS αντί για FS;
Γιατί δεν χρειάζεται να περιμένει να τελειώσει η υλοποίηση· μπορεί να ξεκινήσει μαζί της. Με FS θα ξεκινούσε μόνο στο τέλος, και το έργο θα κρατούσε περισσότερο χωρίς λόγο.
Πηγές: Υλικό του εργαστηρίου της Εβδομάδας 7· ProjectLibre.
Ασκήσεις της εβδομάδας
Άσκηση: Δημιουργία Διαγράμματος Gantt και Ανάλυση PERT για Έργο Ανάπτυξης Εφαρμογής
- Προθεσμία
- Χωρίς προθεσμία — για εξάσκηση
Εκφώνηση
Περιγραφή Έργου: Αναπτύξτε μια εφαρμογή κινητού για μια επιχείρηση που παρέχει υπηρεσίες. Το έργο περιλαμβάνει τις παρακάτω δραστηριότητες και υποδραστηριότητες:
Δραστηριότητες, Χρόνοι και Πόροι
| Δραστηριότητα | Χρόνος (ημέρες) | Προκατοχοι | Ανθρωποι (Πόροι) |
|---|---|---|---|
| 1. Ανάλυση Απαιτήσεων | 10 | - | 2 Αναλυτές |
| 1.1 Συλλογή Απαιτήσεων | 5 | - | 1 Αναλυτής |
| 1.2 Ανάλυση Απαιτήσεων | 5 | 1.1 | 1 Αναλυτής |
| 2. Σχεδίαση UI | 8 | 1 | 2 Σχεδιαστές |
| 2.1 Δημιουργία Wireframes | 4 | - | 1 Σχεδιαστής |
| 2.2 Σχεδίαση Εφαρμογής | 4 | 2.1 | 1 Σχεδιαστής |
| 3. Ανάπτυξη Backend | 15 | 2 | 3 Προγραμματιστές |
| 3.1 Δημιουργία Βάσης Δεδομένων | 7 | - | 2 DBA |
| 3.2 Ανάπτυξη API | 8 | 3.1 | 2 Προγραμματιστές |
| 4. Ανάπτυξη Frontend | 12 | 3 | 2 Προγραμματιστές |
| 4.1 Δημιουργία UI | 6 | 2 | 1 Προγραμματιστής |
| 4.2 Σύνδεση με Backend | 6 | 4.1, 3.2 | 2 Προγραμματιστές |
| 5. Δοκιμές | 10 | 4 | 2 Δοκιμαστές |
| 5.1 Δοκιμές Μονάδας | 5 | - | 1 Δοκιμαστής |
| 5.2 Δοκιμές Ενοποίησης | 5 | 5.1, 3.2 | 1 Δοκιμαστής |
| 6. Εκπαίδευση Χρηστών | 5 | 5 | 1 Εκπαιδευτής |
| 7. Υποστήριξη και Συντήρηση | 8 | 6 | 2 Τεχνικοί |
| 8. Ανάλυση Απόδοσης | 6 | 7 | 1 Αναλυτής |
| 8.1 Συλλογή Δεδομένων | 3 | - | 1 Αναλυτής |
| 8.2 Έκθεση Απόδοσης | 3 | 8.1 | 1 Αναλυτής |
| 9. Τελική Παράδοση | 4 | 8 | 1 Διευθυντής Έργου |
| 10. Ανατροφοδότηση Χρηστών | 5 | 9 | 1 Διευθυντής Έργου |
Ερωτήσεις
- Ποιες είναι οι πιο κρίσιμες δραστηριότητες για την ολοκλήρωση του έργου;
- Πώς μπορεί η αβεβαιότητα να επηρεάσει το χρονοδιάγραμμα του έργου;
- Ποιες στρατηγικές μπορείτε να χρησιμοποιήσετε για να μειώσετε την αβεβαιότητα;
- Ποιες ενέργειες μπορείτε να κάνετε για να διασφαλίσετε την ποιότητα της εφαρμογής;
- Πώς μπορεί η ανατροφοδότηση χρηστών να επηρεάσει το τελικό προϊόν;
Δυνατότητες στο Project Libre
- Δημιουργία Διαγράμματος Gantt: Μπορείτε να οπτικοποιήσετε το χρονοδιάγραμμα του έργου και την πρόοδο των δραστηριοτήτων.
- Διαχείριση Πόρων: Μπορείτε να αναθέσετε πόρους σε δραστηριότητες και να παρακολουθείτε τη χρήση τους.
- Ανάλυση Κρίσιμου Μονοπατιού: Θα μπορέσετε να προσδιορίσετε ποιες δραστηριότητες είναι κρίσιμες για την έγκαιρη ολοκλήρωση του έργου.
- Αναφορές και Εκθέσεις: Δημιουργία αναφορών για την πρόοδο, την κατανάλωση πόρων και την ανάλυση κινδύνου.
Φύλλο εργασίας PERT
- Προθεσμία
- Χωρίς προθεσμία — για εξάσκηση
Εκφώνηση
Για καθεμία από τις παρακάτω δραστηριότητες υπολόγισε τον αναμενόμενο χρόνο E = (a + 4m + b) / 6. Μετά σχεδίασε το δίκτυο του έργου, βρες τη συνολική διάρκεια και το κρίσιμο μονοπάτι.
| Δραστηριότητα | Προαπαιτούμενες | a | m | b |
|---|---|---|---|---|
| A | - | 2 | 3 | 4 |
| B | Α | 4 | 6 | 8 |
| Γ | Α | 1 | 4 | 7 |
| Δ | Β, Γ | 1 | 2 | 9 |
| Ε | Β | 3 | 5 | 7 |
| Ζ | Γ | 4 | 7 | 10 |
| Η | Δ, Ε | 1 | 2 | 9 |