Con ogni prodotto, dobbiamo affrontare molti compromessi e sfide che determinano il futuro dell'impresa. Tuttavia, è la tecnologia, o meglio la scelta della tecnologia, a costituire il dilemma più importante, perché influisce su tutti gli aspetti del futuro. In questo articolo vorrei presentare gli enigmi associati a tale decisione.
Con ogni prodottoDobbiamo affrontare molti compromessi e sfide che determinano il futuro dell'impresa. Tuttavia, è la tecnologia, o meglio la scelta della tecnologiaQuesto è il dilemma più importante perché riguarda tutti gli aspetti del futuro. In questo articolo vorrei presentare gli enigmi legati a questa decisione.
Selezionare la tecnologia corretta per sviluppo del prodotto è un componente critico che può avere un impatto sostanziale su progetto successo. Questo post illustra le variabili più importanti da considerare per decidere la tecnologia più appropriata per la vostra azienda. sviluppo del prodotto esigenze. Ecco 5 regole per Scegliere la tecnologia giusta per lo sviluppo del prodotto:
1. Definire i requisiti del progetto
Prima di iniziare il processo di selezione della tecnologia, è fondamentale avere una visione completa delle esigenze del progetto. Ciò include la delineazione del problema che si sta cercando di risolvere, il pubblico di destinazione, le caratteristiche desiderate e le eventuali esigenze tecnologiche. Un elenco ben definito di requisiti può aiutarvi a valutare le diverse tecnologie rispetto alle esigenze del vostro progetto.
- Scalabilità
Con l'evoluzione del vostro prodotto, avrete bisogno di una tecnologia in grado di tenere il passo con il numero crescente di utenti, dati e funzionalità. Esaminate la facilità di scalare la tecnologia e la disponibilità di risorse di scala. L'uso di una tecnologia scalabile garantisce che il vostro prodotto sia in grado di adattarsi alla crescita futura.
3. Flessibilità e adattabilità
I requisiti del prodotto possono variare nel tempo, quindi è fondamentale scegliere una tecnologia in grado di adattarsi a questi cambiamenti. Cercate tecnologie che rendano semplice l'aggiunta di nuove funzionalità o la modifica di quelle esistenti, assicurando che il vostro prodotto rimanga rilevante e aggiornato.
4. Competenza dello sviluppatore
La competenza e l'esperienza del vostro squadra con le varie tecnologie è fondamentale per il successo del progetto. L'utilizzo di tecnologie già note può aumentare la produttività e ridurre la curva di apprendimento. Se una nuova tecnologia è più adatta al vostro progetto, assicuratevi che il personale sia adeguatamente formato e supportato.
5. La sicurezza
Con la crescente importanza della sicurezza e della privacy dei dati, è fondamentale valutare gli aspetti di sicurezza di ogni tecnologia. Accertatevi che la tecnologia scelta soddisfi i requisiti di sicurezza del vostro prodotto e sia conforme alle norme e agli standard di settore applicabili.
Nel mio lavoro di programmatore, ho avuto a che fare con molti prodotti e con molte CTOse sono riuscito a cogliere gli aspetti più importanti del lavoro e le problematiche che comporta, nonché le difficoltà legate ai progetti e alle tecnologie, eccone alcuni:
Facilità di manutenzione
Il vostro prodotto deve essere altamente disponibile e non deve causare problemi di implementazione e funzionamento. Ogni tecnologia è costruita per funzionare bene nell'ambiente giusto, ed è per questo che la decisione è così importante. Una scelta piuttosto rischiosa sarebbe quella di utilizzare C ++ per un'applicazione web ad alta disponibilità in un mondo in cui abbiamo Elixir e GoLang, che possono portare alla creazione di applicazioni robuste e scalabili. D'altra parte, se stiamo costruendo IOT e abbiamo poche risorse, la decisione potrebbe essere diversa. Rubino può anche essere la risposta a ciascuna delle domande sopra citate, tutto dipende dai compromessi e da ciò che vi sta a cuore nella manutenzione dell'applicazione o del sito web.
Maturità tecnologica
Ogni anno vengono create molte tecnologie, alcune delle quali sono rivoluzionarie al momento della loro creazione. La domanda è se questo è il momento di usarle. La maturità di una tecnologia non è data solo dalla disponibilità di specialisti, ma fondamentalmente da ciò che la comunità fa sotto forma di documentazione, biblioteche, corsi e articoli.
Non è possibile confrontare il numero di nuovi repository su GitHub per JavaScript con quelli di Ruby, poiché JavaScript ha molti nuovi framework e librerie di grandi dimensioni e ognuno richiede pacchetti di sviluppo e costruzione. In Ruby, abbiamo un framework leader e un ecosistema ad esso associato; pertanto, molte librerie di autenticazione o API sono già consolidate e gestite, e anche i problemi con esse sono ben noti. Pertanto, non possiamo sorprenderci del fatto che il sistema di transazioni del nostro banca si basa su Java e non JavaScript ed ExpressJS, e che una startup di cui siete a conoscenza ha problemi a domare l'architettura dell'applicazione perché nessuno ha risolto il problema con la nuova tecnologia scelta.
Tuttavia, c'è ancora una tendenza, perché tutti hanno sentito parlare di Perl o Cobol, tecnologie antiche e consolidate, ma purtroppo non sono abbastanza alla moda da incoraggiare gli sviluppatori a lavorarci. La tendenza è un fattore importante per attrarre talenti, soprattutto perché più alta è la fascia d'età, meno programmatori ci sono.
Numero di specialisti
Durante la gestione di un progetto IT, non abbiamo intenzione di programmare, ma dobbiamo capire esattamente cosa sta succedendo. Vale la pena di andare prima su LinkedIn e verificare quanti specialisti ci sono nel vostro Paese; questo ci dirà quanto è grande l'ambiente con cui abbiamo a che fare. Vale anche la pena di consultare il sito Frizione e controllando come il software house mercato sembra. Dovete essere pronti a una crescita improvvisa e a un rapido riempimento dei posti di lavoro vacanti. Naturalmente, l'abbondanza di potenziali candidati non equivale alla qualità, ma facilita l'acquisizione di talenti e il raggiungimento di vari specialisti con la vostra offerta.
Si deve anche partire dal presupposto che i dipendenti dell'azienda sono sostituibili; nel periodo post-covida, è particolarmente importante perché la quarantena è riuscita a bloccare molte aziende. Un approccio di questo tipo permette anche di evitare la crisi della fuoriuscita di specialisti e di ampliare la documentazione tecnica.
Costi operativi
La combinazione dei punti di cui sopra genera il costo operativo, quindi quanto costerà effettivamente mantenere l'applicazione e la team di sviluppo. Tutti noi scegliamo un team che soddisfi le nostre esigenze, ma è necessario ricordare l'intero back end dell'applicazione, o eventualmente optare per una soluzione IaaS e SaaS per i servizi che sono critici per il funzionamento del prodotto.
Ogni gestione di un servizio self-hosted è un costo aggiuntivo per voi e un peso che vi allontana dall'obiettivo. Nella fase iniziale dello sviluppo del prodotto, anche una soluzione ben nota, come Netlify o Heroku, mette l'intero ambiente in un'unica pipeline e non fa perdere tempo al team per creare tutto da zero.
Riassunto
A lungo termine, l'infrastruttura pronta per l'uso può essere più conveniente che reinventare la ruota. Il costo operativo, le prestazioni del team in relazione alla funzionalità data, la maturità della tecnologia e la portata dei dipendenti disponibili sul mercato sono di grande importanza.