Ανάπτυξη εφαρμογών: πώς δουλεύουμε από τον πρώτο κώδικα ως το production
Πώς οργανώνεται η ανάπτυξη εφαρμογών στην πράξη: επαναλήψεις, δοκιμές, deployment και παράδοση κώδικα, χωρίς εκπλήξεις στην πορεία.
Το πρόβλημα
Έχεις ήδη αποφασίσει ότι χρειάζεσαι εφαρμογή και ξέρεις ποιο πρόβλημα λύνει. Αυτό που σε ανησυχεί τώρα είναι το «πώς» — πώς προχωράει πρακτικά η δουλειά μετά την υπογραφή, ποιος γράφει τι, πώς ελέγχεται ότι δουλεύει σωστά πριν το δεις εσύ, τι γίνεται αν μια αλλαγή σπάσει κάτι που ήδη δούλευε. Έχεις ακούσει ιστορίες συνεργατών που παρέδωσαν κάτι που «δούλευε στον υπολογιστή τους» αλλά κόλλησε μόλις το χρησιμοποίησε πραγματικός χρήστης. Ανησυχείς για το τι συμβαίνει όταν χρειαστεί μια αλλαγή έξι μήνες μετά την παράδοση — αν κάποιος θα καταλάβει τον κώδικα κάποιου άλλου ή αν θα χρειαστεί να ξαναγραφτεί το σύστημα από την αρχή γιατί κανείς δεν το τεκμηρίωσε. Ανησυχείς επίσης για την ταχύτητα: αν θα μαθαίνεις για την πρόοδο μόνο στο τέλος, όταν είναι πια αργά να διορθωθεί κάτι που πήρε λάθος κατεύθυνση από την αρχή. Αυτές δεν είναι ερωτήσεις για το «τι» θα χτιστεί — είναι ερωτήσεις για τη μηχανική πίσω από το πώς χτίζεται κάτι που θα αντέξει.
Τι χτίζουμε
Δουλεύουμε σε κύκλους ανάπτυξης δύο εβδομάδων. Στην αρχή κάθε κύκλου συμφωνούμε ποια συγκεκριμένη λειτουργία θα ολοκληρωθεί, στο τέλος τη βλέπεις να δουλεύει — όχι σε παρουσίαση με διαφάνειες, αλλά μέσα στην ίδια την εφαρμογή, με σύνδεσμο που ανοίγεις όποτε θες. Κάθε κομμάτι κώδικα περνάει από έλεγχο πριν μπει στο κύριο σύστημα: αυτόματα τεστ που επαληθεύουν ότι η νέα λειτουργία δεν έσπασε κάτι παλιότερο, και έλεγχος από δεύτερο προγραμματιστή πριν συγχωνευτεί. Η υποδομή έχει τρία περιβάλλοντα ξεχωριστά: ένα όπου δοκιμάζουμε εμείς, ένα όπου δοκιμάζει η ομάδα σου πριν κυκλοφορήσει κάτι, και το πραγματικό περιβάλλον παραγωγής που χρησιμοποιούν οι τελικοί χρήστες — έτσι ένα λάθος δεν φτάνει ποτέ κατευθείαν σε αυτόν που δουλεύει με την εφαρμογή καθημερινά. Το deployment είναι αυτοματοποιημένο: μια αλλαγή που εγκρίνεται βγαίνει live σε λεπτά, όχι σε προγραμματισμένο «παράθυρο συντήρησης» που σε αναγκάζει να περιμένεις. Κάθε λειτουργία τεκμηριώνεται στο ίδιο repository με τον κώδικα, ώστε όποιος διαβάσει τον κώδικα σε ένα χρόνο να καταλαβαίνει γιατί γράφτηκε έτσι, όχι μόνο τι κάνει. Στο τέλος κάθε φάσης παίρνεις πρόσβαση στο ίδιο σύστημα παρακολούθησης που χρησιμοποιούμε εμείς, ώστε να βλέπεις πρόοδο και σφάλματα χωρίς να περιμένεις αναφορά. Η παράδοση δεν είναι ένα αρχείο zip στο τέλος — είναι συνεχής πρόσβαση σε ζωντανό repository από την πρώτη μέρα.
Τι παραδίδουμε
- Repository με πλήρες ιστορικό αλλαγών, προσβάσιμο σε σένα από την πρώτη εβδομάδα
- Λειτουργία ορατή και δοκιμάσιμη στο τέλος κάθε κύκλου δύο εβδομάδων
- Αυτόματα τεστ που τρέχουν πριν κάθε αλλαγή μπει σε παραγωγή
- Τρία ξεχωριστά περιβάλλοντα: ανάπτυξης, δοκιμής και παραγωγής
- Αυτοματοποιημένο deployment χωρίς παράθυρα διακοπής λειτουργίας
- Τεκμηρίωση κώδικα και αποφάσεων σχεδίασης μέσα στο ίδιο repository
Τεχνολογίες
Χρονοδιάγραμμα
Πρώτος κύκλος ανάπτυξης — βασικός σκελετός και πρώτη λειτουργία ορατή: 2 εβδομάδες. Επόμενοι κύκλοι — προσθήκη λειτουργιών, δύο εβδομάδες ο καθένας, συνήθως 3 έως 5 κύκλοι ανάλογα με το εύρος. Τελικός κύκλος — σκλήρυνση, δοκιμή φόρτου και οριστική μετάβαση σε παραγωγή: 1 έως 2 εβδομάδες.
Ενδεικτικό κόστος
Η ανάπτυξη τιμολογείται ανά κύκλο, ενδεικτικά 6.000€ έως 25.000€ και άνω συνολικά, ανάλογα με τον αριθμό κύκλων που χρειάζεται το έργο. Πληρώνεις στο τέλος κάθε κύκλου για δουλειά που ήδη είδες να δουλεύει, όχι προκαταβολή για το σύνολο. Υποστήριξη μετά την παράδοση από 150€ τον μήνα.
Συχνές ερωτήσεις
Πώς βλέπω την πρόοδο κατά τη διάρκεια της ανάπτυξης;
Στο τέλος κάθε κύκλου δύο εβδομάδων παίρνεις σύνδεσμο προς λειτουργία που δουλεύει πραγματικά, όχι παρουσίαση. Έχεις επίσης πρόσβαση στο σύστημα παρακολούθησης εργασιών, οπότε βλέπεις τι δουλεύεται τώρα χωρίς να περιμένεις αναφορά προόδου.
Τι γίνεται αν μια αλλαγή σπάσει κάτι που ήδη δούλευε;
Κάθε αλλαγή περνάει πρώτα από αυτόματα τεστ και δεύτερο έλεγχο πριν φτάσει σε παραγωγή, και δοκιμάζεται σε ξεχωριστό περιβάλλον πριν το δουν οι τελικοί χρήστες. Αν κάτι περάσει απαρατήρητο, η αναστροφή σε προηγούμενη έκδοση γίνεται σε λεπτά, όχι μέρες.
Ποιος καταλαβαίνει τον κώδικα αν χρειαστεί αλλαγή σε ένα χρόνο;
Ο κώδικας τεκμηριώνεται μέσα στο ίδιο repository, με εξήγηση όχι μόνο τι κάνει αλλά γιατί γράφτηκε έτσι. Αυτό επιτρέπει σε οποιονδήποτε προγραμματιστή, δικό μας ή τρίτο, να συνεχίσει χωρίς να ξαναγράψει το σύστημα από την αρχή.
Πόσο γρήγορα βγαίνει μια αλλαγή live μετά την έγκριση;
Το deployment είναι αυτοματοποιημένο, οπότε μια εγκεκριμένη αλλαγή βγαίνει σε παραγωγή μέσα σε λίγα λεπτά, χωρίς προγραμματισμένο παράθυρο διακοπής. Αυτό ισχύει και για τις μικροδιορθώσεις μετά την παράδοση, στο πλαίσιο της τεχνικής υποστήριξης.
Έχω πρόσβαση στον κώδικα κατά τη διάρκεια της ανάπτυξης ή μόνο στο τέλος;
Από την πρώτη εβδομάδα. Το repository είναι δικό σου εξαρχής, όχι μόνο μετά την τελική παράδοση, οπότε δεν εξαρτάσαι από εμάς για να δεις τι έχει χτιστεί μέχρι στιγμής.
Σχετικές υπηρεσίες
Θέλεις να το συζητήσουμε;
Στείλε μας τι προσπαθείς να λύσεις και απαντάμε με συγκεκριμένη πρόταση.
Επικοινωνία