Να το φτιάξουμε; Το ερώτημα που θέτουμε πριν γράψουμε κώδικα

Πριν μιλήσουμε για τεχνολογία, προϋπολογισμούς ή ημερομηνίες παράδοσης, υπάρχει ένα ερώτημα που αξίζει να απαντηθεί πρώτο: πρέπει πραγματικά να το φτιάξουμε; Γιατί η LSR προτείνει κάποιες φορές αγορά προϊόντος, σύνδεση υπαρχόντων συστημάτων ή διόρθωση της διαδικασίας.

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

Πρέπει πραγματικά να το φτιάξουμε;

Στη Libertas Software Research (LSR), πιστεύουμε ότι το να ξέρεις αν πρέπει να αναπτυχθεί λογισμικό είναι εξίσου σημαντικό με το να ξέρεις πώς. Μερικές φορές μια εφαρμογή κατά παραγγελία είναι ακριβώς το σωστό. Άλλες φορές μια καθιερωμένη πλατφόρμα SaaS καλύπτει απόλυτα την ανάγκη, ή η σύνδεση των συστημάτων που ήδη έχετε φέρνει το αποτέλεσμα χωρίς το κόστος και την αναστάτωση της αντικατάστασής τους. Ο στόχος είναι να βελτιωθεί ο τρόπος λειτουργίας ενός οργανισμού, όχι να προστεθεί άλλη μία εφαρμογή σε ένα ήδη πολύπλοκο περιβάλλον.

Ξεκινήστε από το πρόβλημα, όχι από τη λύση

Οι οργανισμοί τείνουν να περιγράφουν τη λύση που νομίζουν ότι χρειάζονται αντί για το πρόβλημα που έχουν. Ένα «ταμπλό αναφορών» ή μια «εφαρμογή που θα αντικαταστήσει τα υπολογιστικά φύλλα μας» ακούγεται καλά ορισμένο, αλλά λέει λίγα για το τι προκάλεσε το αίτημα.

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

Πότε η αγορά έχει περισσότερο νόημα

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

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

Μερικές φορές η απάντηση είναι να συνδέσετε ό,τι ήδη έχετε

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

Η αντικατάσταση όλων με μία εφαρμογή είναι δελεαστική, αλλά επικίνδυνη. Οι υπάρχουσες πλατφόρμες κρύβουν χρόνια λειτουργικής γνώσης και κρυφές ενοποιήσεις. Ένα προσεκτικά σχεδιασμένο επίπεδο ολοκλήρωσης (σύνδεση API, αυτοματοποίηση μεταφορών, ενοποίηση αναφορών από έγκυρες πηγές) μπορεί να παρατείνει τη ζωή αυτών των επενδύσεων. Χρειάζεται σοβαρή σκέψη για την ταυτοποίηση, την κυριότητα δεδομένων, τον χειρισμό σφαλμάτων και τη δυνατότητα ελέγχου, αλλά το να προτείνεις ολοκλήρωση αντί για αντικατάσταση δεν είναι κατώτερη μηχανική. Είναι συχνά η πιο μελετημένη αρχιτεκτονική απόφαση.

Πότε η ανάπτυξη κατά παραγγελία είναι η σωστή επένδυση

Ορισμένες απαιτήσεις πραγματικά δεν ταιριάζουν σε τυπικά προϊόντα: εξειδικευμένες λειτουργίες, ασυνήθιστες ανάγκες ασφάλειας ή δεδομένων, ή λογισμικό που αποτελεί από μόνο του ανταγωνιστικό πλεονέκτημα. Εδώ το λογισμικό κατά παραγγελία επιτρέπει στην αρχιτεκτονική να ακολουθεί τον τρόπο που η επιχείρηση πραγματικά λειτουργεί.

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

Όχι κάθε πρόβλημα χρειάζεται περισσότερο λογισμικό

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

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

Κοιτάξτε πέρα από το αρχικό κόστος

Τα έργα κατά παραγγελία έχουν μεγάλο αρχικό κόστος, ενώ το SaaS κατανέμει το κόστος του σε συνδρομές, γεγονός που κάνει τη σύγκριση να φαίνεται άνιση. Μια δίκαιη σύγκριση καλύπτει ολόκληρη τη διάρκεια ζωής: υλοποίηση, αδειοδότηση, φιλοξενία, υποστήριξη, συντήρηση, ολοκλήρωση, εκπαίδευση και μελλοντικές αλλαγές.

Συμπεριλάβετε και το κόστος του να μην κάνετε τίποτα. Μια αναποτελεσματική διαδικασία που καταναλώνει 20 ώρες προσωπικού την εβδομάδα είναι περίπου 1.040 ώρες τον χρόνο. Με ενδεικτικό ωρομίσθιο 35 £, αυτό είναι περίπου 36.400 £ ετησίως, υποθέτοντας ότι ο χρόνος μπορεί πραγματικά να ανακτηθεί και να αξιοποιηθεί αλλού. Προσθέστε την κακή ποιότητα δεδομένων και τις αργές αποφάσεις, που είναι πιο δύσκολο να αποτιμηθούν αλλά εξίσου πραγματικές. Η καλύτερη επιλογή δεν είναι η φθηνότερη, αλλά αυτή με τον ισχυρότερο συνδυασμό αξίας, αποδεκτού κινδύνου και μακροπρόθεσμης βιωσιμότητας.

Γιατί μια εταιρεία λογισμικού θα πρότεινε να μην φτιάξετε λογισμικό;

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

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

Το να προτείνεις ανάπτυξη που δεν χρειάζεστε είναι αντιπαραγωγικό. Ένα έργο που παραδίδεται εγκαίρως και σύμφωνα με τις προδιαγραφές αποτυγχάνει παρ' όλα αυτά αν δεν ήταν η σωστή λύση. Το να βοηθήσεις έναν πελάτη να αποφύγει περιττές δαπάνες χτίζει το είδος της εμπιστοσύνης που διαρκεί.

Το ότι μπορούμε να το φτιάξουμε δεν είναι λόγος να το φτιάξουμε

Η τεχνητή νοημοσύνη και τα σύγχρονα εργαλεία κάνουν τον κώδικα πιο γρήγορο και φθηνό στην παραγωγή. Αυτό είναι χρήσιμο, αλλά κάνει τη σκέψη εκ των προτέρων πιο σημαντική, όχι λιγότερο, γιατί η προσπάθεια που κάποτε ανάγκαζε τους ανθρώπους να ρωτήσουν «το χρειαζόμαστε πραγματικά;» εξαφανίζεται. Είναι απολύτως πιθανό να φτιάξετε κάτι τεχνικά άριστο, να το παραδώσετε αποτελεσματικά και να ανακαλύψετε ότι ήταν η λάθος απάντηση.

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

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

Πριν ρωτήσουμε πώς πρέπει να φτιάξουμε κάτι, αξίζει να διαπιστώσουμε αν πρέπει να το φτιάξουμε καθόλου.

Η Libertas Software Research συνεργάζεται με οργανισμούς για να ερευνά, να αξιολογεί, να σχεδιάζει και να αναπτύσσει λύσεις λογισμικού, με έμφαση στη μακροπρόθεσμη συντηρησιμότητα, τη λειτουργική αξία και τις τεκμηριωμένες επενδύσεις σε τεχνολογία.

Επιστροφή στο Κέντρο Γνώσης