Με κάθε προϊόν, αντιμετωπίζουμε πολλούς συμβιβασμούς και προκλήσεις που καθορίζουν το μέλλον του εγχειρήματος. Ωστόσο, η τεχνολογία, ή μάλλον η επιλογή της τεχνολογίας, είναι το πιο σημαντικό δίλημμα, διότι επηρεάζει όλες τις πτυχές στο μέλλον. Σε αυτό το άρθρο, θα ήθελα να παρουσιάσω τα αινίγματα που σχετίζονται με τη λήψη μιας τέτοιας απόφασης.
Με κάθε προϊόν, αντιμετωπίζουμε πολλούς συμβιβασμούς και προκλήσεις που καθορίζουν το μέλλον του εγχειρήματος. Ωστόσο, είναι η τεχνολογία, ή μάλλον η επιλογή της τεχνολογίαςΑυτό είναι το πιο σημαντικό δίλημμα, διότι επηρεάζει όλες τις πτυχές του μέλλοντος. Σε αυτό το άρθρο, θα ήθελα να παρουσιάσω τα αινίγματα που σχετίζονται με τη λήψη μιας τέτοιας απόφασης.
Επιλογή της σωστής τεχνολογίας για ανάπτυξη προϊόντων είναι ένα κρίσιμο στοιχείο που μπορεί να έχει σημαντικό αντίκτυπο στην έργο επιτυχία. Αυτή η δημοσίευση θα εξετάσει τις πιο σημαντικές μεταβλητές που πρέπει να λάβετε υπόψη σας κατά την επιλογή της κατάλληλης τεχνολογίας για την επιχείρησή σας. ανάπτυξη προϊόντων ανάγκες. Ακολουθούν 5 κανόνες για επιλογή της σωστής τεχνολογίας για την ανάπτυξη προϊόντων:
1. Καθορισμός των απαιτήσεων του έργου
Είναι κρίσιμο να έχετε μια ολοκληρωμένη αντίληψη των αναγκών του έργου σας πριν ξεκινήσετε τη διαδικασία επιλογής τεχνολογίας. Αυτό περιλαμβάνει τη σκιαγράφηση του προβλήματος που προσπαθείτε να επιλύσετε, του κοινού-στόχου, των επιθυμητών χαρακτηριστικών και τυχόν τεχνολογικών αναγκών. Ένας καλά καθορισμένος κατάλογος απαιτήσεων μπορεί να σας βοηθήσει στην αξιολόγηση διαφορετικών τεχνολογιών σε σχέση με τις απαιτήσεις του έργου σας.
- Επεκτασιμότητα
Καθώς το προϊόν σας εξελίσσεται, θα χρειαστείτε τεχνολογία που να μπορεί να συμβαδίζει με τον αυξανόμενο αριθμό χρηστών, δεδομένων και λειτουργιών. Εξετάστε πόσο εύκολο είναι να κλιμακώσετε την τεχνολογία και τη διαθεσιμότητα πόρων κλιμάκωσης. Η χρήση κλιμακούμενης τεχνολογίας διασφαλίζει ότι το προϊόν σας θα είναι σε θέση να φιλοξενήσει τη μελλοντική ανάπτυξη.
3. Ευελιξία και προσαρμοστικότητα
Οι απαιτήσεις των προϊόντων μπορεί να μεταβάλλονται με την πάροδο του χρόνου, επομένως είναι κρίσιμο να επιλέξετε μια τεχνολογία που μπορεί να προσαρμοστεί σε αυτές τις αλλαγές. Αναζητήστε τεχνολογίες που καθιστούν απλή την προσθήκη νέων χαρακτηριστικών ή την τροποποίηση των υφιστάμενων, διασφαλίζοντας ότι το προϊόν σας παραμένει σχετικό και ενημερωμένο.
4. Εμπειρογνωμοσύνη του προγραμματιστή
Η τεχνογνωσία και η εμπειρία των ομάδα με διάφορες τεχνολογίες είναι ζωτικής σημασίας για την επιτυχία του έργου σας. Η χρήση γνώριμης τεχνολογίας μπορεί να αυξήσει την παραγωγικότητα, μειώνοντας παράλληλα την καμπύλη εκμάθησης. Εάν μια νέα τεχνολογία είναι καλύτερη για το έργο σας, βεβαιωθείτε ότι το προσωπικό σας έχει εκπαιδευτεί και υποστηρίζεται κατάλληλα.
5. Ασφάλεια
Με την αυξανόμενη σημασία της ασφάλειας των δεδομένων και της προστασίας της ιδιωτικής ζωής, είναι κρίσιμο να αξιολογούνται οι πτυχές ασφάλειας κάθε τεχνολογίας. Βεβαιωθείτε ότι η επιλεγμένη τεχνολογία πληροί τις απαιτήσεις ασφαλείας του προϊόντος σας και συμμορφώνεται με τους ισχύοντες κανόνες και τα πρότυπα του κλάδου.
Στην εργασία μου ως προγραμματιστής, έχω ασχοληθεί με πολλά προϊόντα και πολλές CTOs, και κατάφερα να καταγράψω τις σημαντικότερες πτυχές της εργασίας και των προβλημάτων που αυτή συνεπάγεται, καθώς και τις δυσκολίες που αφορούν τα έργα και τις τεχνολογίες, και ιδού μερικές από αυτές:
Ευκολία συντήρησης
Το προϊόν σας πρέπει να είναι εξαιρετικά διαθέσιμο και να μην προκαλεί προβλήματα στην υλοποίηση και τη λειτουργία. Κάθε τεχνολογία είναι κατασκευασμένη για να αποδίδει καλά στο κατάλληλο περιβάλλον, γι' αυτό και η απόφαση είναι τόσο σημαντική. Μια μάλλον ριψοκίνδυνη επιλογή θα ήταν η C ++ να τεθεί σε μια εφαρμογή ιστού υψηλής διαθεσιμότητας σε έναν κόσμο όπου έχουμε την Elixir και την GoLang, μπορούν να σας οδηγήσουν στη δημιουργία εύρωστων και κλιμακούμενων εφαρμογών. Από την άλλη πλευρά, αν κατασκευάζουμε IOT υπηρεσίες και έχουμε λίγους πόρους, η απόφαση μπορεί να είναι διαφορετική. Ruby μπορεί επίσης να είναι η απάντηση σε κάθε μία από τις προαναφερθείσες ερωτήσεις, όλα εξαρτώνται από τους συμβιβασμούς και από το τι σας ενδιαφέρει κατά τη συντήρηση της εφαρμογής ή του ιστότοπου.
Τεχνολογική ωριμότητα
Κάθε χρόνο δημιουργούνται πολλές τεχνολογίες, και ορισμένες από αυτές είναι επαναστατικές κατά τη στιγμή της δημιουργίας τους. Το ερώτημα είναι αν αυτή είναι η κατάλληλη στιγμή για να τις χρησιμοποιήσουμε. Η ωριμότητα μιας τεχνολογίας δεν είναι μόνο η διαθεσιμότητα ειδικών, αλλά βασικά το τι κάνει η κοινότητα με τη μορφή τεκμηρίωσης, βιβλιοθηκών, μαθημάτων και άρθρων.
Δεν μπορούμε να συγκρίνουμε τον αριθμό των νέων αποθετηρίων στο GitHub για JavaScript με αυτά για τη Ruby, καθώς το JavaScript έχει πολλά μεγάλα νέα πλαίσια και βιβλιοθήκες και το καθένα απαιτεί πακέτα ανάπτυξης και δημιουργίας. Στη Ruby, έχουμε ένα κορυφαίο πλαίσιο και ένα οικοσύστημα που σχετίζεται με αυτό- επομένως, πολλές βιβλιοθήκες αυθεντικοποίησης ή πελάτες API έχουν ήδη καθιερωθεί και συντηρούνται και τα προβλήματα με αυτές είναι επίσης γνωστά. Επομένως, δεν μπορούμε να εκπλαγούμε από το γεγονός ότι το σύστημα συναλλαγών στο τράπεζα βασίζεται σε Java και όχι JavaScript και ExpressJS, και ότι μια νεοσύστατη επιχείρηση που γνωρίζετε έχει προβλήματα με την τιθάσευση της αρχιτεκτονικής των εφαρμογών επειδή κανείς δεν έχει λύσει το πρόβλημά τους σε αυτή τη νέα τεχνολογία που επέλεξαν.
Ωστόσο, υπάρχει ακόμα μια τάση εδώ, επειδή όλοι έχουν ακούσει για την Perl ή την Cobol, πρόκειται για πανάρχαιες και καθιερωμένες τεχνολογίες, αλλά δυστυχώς δεν είναι αρκετά μοντέρνες ώστε να ενθαρρύνουν τους προγραμματιστές να δουλέψουν με αυτές. Μια τάση είναι σημαντικός παράγοντας για την προσέλκυση ταλέντων, ιδίως δεδομένου ότι όσο υψηλότερη είναι η ηλικιακή κατηγορία, τόσο λιγότεροι είναι οι προγραμματιστές.
Αριθμός ειδικών
Κατά το χειρισμό ενός έργου πληροφορικής, δεν πρόκειται να προγραμματίσουμε, αλλά πρέπει να καταλάβουμε τι ακριβώς συμβαίνει. Αξίζει να πάμε πρώτα στο LinkedIn και να ελέγξουμε πόσοι ειδικοί υπάρχουν στη χώρα σας- αυτό θα μας πει πόσο μεγάλο είναι το περιβάλλον με το οποίο έχουμε να κάνουμε. Αξίζει επίσης να πάμε στο Συμπλέκτης και ελέγχοντας τον τρόπο με τον οποίο η οίκος λογισμικού αγορά μοιάζει. Πρέπει να είστε έτοιμοι για ξαφνική ανάπτυξη και γρήγορη πλήρωση κενών θέσεων εργασίας. Φυσικά, η αφθονία των δυνητικών υποψηφίων δεν ισοδυναμεί με ποιότητα, αλλά διευκολύνει την απόκτηση ταλέντων και την προσέγγιση διαφόρων ειδικών με την προσφορά σας.
Θα πρέπει επίσης να υποθέσετε ότι οι εργαζόμενοι στην εταιρεία είναι αντικαταστάσιμοι- στην περίοδο μετά την καραντίνα είναι ιδιαίτερα σημαντικό, επειδή η καραντίνα μπόρεσε να μπλοκάρει πολλές εταιρείες. Μια τέτοια προσέγγιση σας επιτρέπει επίσης να αποφύγετε την κρίση της εκροής ειδικών και να επεκτείνετε την τεχνική τεκμηρίωση.
Λειτουργικό κόστος
Ο συνδυασμός των παραπάνω σημείων δημιουργεί το λειτουργικό κόστος, άρα πόσο θα κοστίσει πραγματικά η συντήρηση της εφαρμογής και η ομάδα ανάπτυξης. Όλοι επιλέγουμε μια ομάδα που ανταποκρίνεται στις ανάγκες μας, αλλά πρέπει να θυμάστε για ολόκληρο το back end της εφαρμογής, ή ενδεχομένως να επιλέξετε μια λύση IaaS και SaaS για υπηρεσίες που είναι κρίσιμες για τη λειτουργία του προϊόντος.
Κάθε αυτοδιαχειριζόμενη υπηρεσία διαχείρισης είναι ένα πρόσθετο κόστος για εσάς και ένα βάρος που σας απομακρύνει από το στόχο. Στην αρχική φάση της ανάπτυξης του προϊόντος, ακόμη και μια γνωστή λύση, όπως η Netlify ή η Heroku, βάζει όλο το περιβάλλον σε ένα pipeline και δεν σπαταλάτε το χρόνο της ομάδας για τη δημιουργία των πάντων από το μηδέν.
Συνοψίζοντας
Μακροπρόθεσμα, η έτοιμη υποδομή μπορεί να είναι φθηνότερη από την επανεφεύρεση του τροχού. Το λειτουργικό κόστος, η απόδοση της ομάδας σε σχέση με τη δεδομένη λειτουργικότητα, η ωριμότητα της τεχνολογίας και το εύρος των διαθέσιμων εργαζομένων στην αγορά έχουν μεγάλη σημασία.
