Στο Billit.io είμαι ο μόνος Developer άρα τα πράγματα είναι απλά για κάποια πράγματα. Τα πάντα γίνονται μέσα από ένα Trello board και κάθε έκδοση ορίζεται τελικά απ' ότι έχε τελειώσει εκείνη τη στιγμή.

undefined


Τι όμως θα μπορούσε να δουλεύει κανείς σε ένα web app; Αυτό αναρωτιέμαι συχνά για τα υπόλοιπα παρόμοιας δυναμικής web app οπότε σκέφτηκα να μοιραστώ ένα Screenshot και λίγες σκέψεις.

undefined


Τελευταία χρησιμοποιώ πολύ τα Tags, νομίζω ότι από την εικόνα γίνεται ξεκάθαρο το γιατί. Μπορώ πολύ γρήγορα όχι μόνο το τι δουλεύτηκε αλλά και τι τομέας του έργου ικανοποιήθηκε. Μετά από αρκετό καιρό κατάλαβα ότι κάθε νέα έκδοση είναι καλό να έχει μια ισορροπία ώς προς αυτά που γίνονται. Το συγκεκριμένο είχε ΠΟΛΥ refactoring. Όμως το Refactoring, ενώ είναι προφανώς πολύ καλό για τον Developer γιατί επικαιροποιεί τον κώδικα του και τον κάνει πιο ευκολοδιάβαστο συνήθως, πιο εύπλαστο και ενδεχομένως πιο σταθερό η επεκτάσιμο, ο τελικός χρήστης με το συμπάθιο...χέστηκε. Για τον τελικό χρήστη τίποτα απ' όλα αυτά, όσο σοβαρά και αν είναι, όσες εβδομάδες και αν χρειάστηκαν, δεν παίζει ρόλο. Τον χρήστη τον ενδιαφέρει αν του γλίτωσες χρόνο, αν του έφτιαξες κάτι καινούργιο που τον αφορά κ.ο.κ.

Οπότε έχοντας αυτό κατά νου, αποφάσισα κάθε νέα έκδοση να υποχρεωτικά και νέες δυνατότητες ή να βελτιώνει τις υπάρχουσες. Πάντως σίγουρα να βελτιώνει το UX ( User Experience - Εμπειρία χρήστη )

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

Ένα Release (νέα έκδοση) στο Billit λοιπόν περιλαμβάνει σε ισορροπημένες αναλογίες τα εξής:

  • Bug fixing: Σφάλματα που δεν λύνονται με ένα απλό Patch. Το Patch γίνεται καθημερινά.
  • Feature: Νέα δυνατότητα για την εφαρμογή. Συνήθως έρχεται από τους χρήστες που ευθυγραμμίζονται με την κατεύθυνση που θέλω να πάρει το Project. Τις περισσότερες φορές συνοδεύονται από Tests.
  • Refactoring: Γράψιμο ξανά πράγματος που υπάρχει, είτε για να γίνει πιο ευκολοδιάβαστο για μένα, είτε γιατί χρειάζεται επέκταση, είτε γιατί πρέπει να βελτιωθεί το UX σε αυτό το σημείο. Με την ευκαιρία που το συζητάμε, αν δεν υπάρχουν αυτοματοποιημένα Test, δεν μπορείς να κάνεις κάτι τέτοιο και να αποφύγεις το ρεζίλεμα.
  • System: Δημιουργία πραγμάτων που δεν αφορούν το κεντρικό App αλλά είναι αδύνατον να το διαχειριστείς αν δεν τα έχεις. Μέσα σε αυτά μπορεί να είναι Cleanup procedures λογαριασμών, διαδικασίες backup, στατιστικά εγγραφών, ανάλυση συμπεριφοράς χρηστών κ.ο.κ.
  • Marketing: Όταν τρέχεις κάτι μόνος σου πρέπει να κάνει και αυτά. Blog post για τις αλλαγές, Social media posts, Help Guides update, NewsLetter send κ.ο.κ.
  • Remove Feature: Όχι τόσο συχνά, αλλά μπορεί να συμβεί. Αφαίρεση πραγμάτων που δεν χρησιμοποιούνται ή δεν έχουν τόση σχέση πλέον με την κατεύθυνση που έχει πάρει το έργο.

Αυτά τα ολίγα, σταυρώνω δάχτυλα και πάω για push το βραδάκι. Cheers!