In che modo sono previsti progetti / pacchetti / strumenti software complessi?

-2

Dall'apprendimento di nuovi linguaggi di programmazione per inculcare le migliori pratiche di programmazione e progettazione nel codice, ho capito che tutto ciò richiede tempo e uno sforzo consapevole. Quello per cui non ho un sentimento intuitivo è, quanto grandi progetti (open source) (come i moduli AWS che nominano lambda, SQS o strumenti specifici come memcached, Redis, Docker, Kubernetes) sono immaginati e iniziati in primo luogo. Voglio sapere come ottenere intuizione per come sarebbe stato il progetto nella sua fase embrionale e come gli autori originali o il team avrebbero raggiunto quel punto con il loro processo di pensiero. Per rendere le cose facili da rispondere, quello che non sto cercando è: -

  1. Come contribuire all'open source e leggere il codice open source.
  2. Leggi il libro X per iniziare un grande progetto.

Quello che voglio sapere è come gestisci la situazione in cui non trovi l'intuizione del funzionamento di uno strumento che usi spesso nel lavoro. Per semplificare quello che sto cercando di dire, Brad Fitzpatrick ha scritto memcache per la gestione del suo sito web di LiveJournal. Non riesco a immaginare come scrivere il mio prototipo di memcache, solo per dirlo. Come gestirlo.

    
posta angrysumit 29.05.2018 - 15:49
fonte

1 risposta

0

Ho sviluppato un'applicazione che è iniziata come un piccolo pacchetto e ora è piuttosto complessa, con integrazioni, piattaforme, diversi utenti e alcuni algoritmi di intelligenza artificiale.

Il mio processo di pensiero si è sviluppato gradualmente ... per essere più precisi, l'implementazione del mio processo di pensiero è arrivata a passi. Quando ho iniziato a pensare se un'applicazione potrebbe essere in grado di risolvere alcuni problemi nel mio campo, i pensieri erano caotici. Non ero in grado di formulare i processi di flusso, quali collegamenti a cosa e come le cose dovrebbero essere sviluppate. Non ero nemmeno in grado di descrivere l'applicazione ad altre persone (specialmente non specialiste). Non potevo continuare la frase: La mia applicazione fa / permette / calcola ... (questo o quello)

Il mio approccio a questo è stato quello di documentare i miei pensieri. Ho letto alcuni articoli su come scrivere i requisiti del software e le storie degli utenti, ho installato alcuni software appropriati (nel mio caso JIRA e Confluence) e ho iniziato a scrivere in testo ciò che volevo che l'applicazione facesse, come gli utenti agissero / reagissero / usassero applicazione e in che modo il valore può essere raggiunto dal software.

Poi, ho finito con alcuni concetti ripetitivi e comuni e quelli hanno formulato il nucleo della mia app (funzionalità / funzionalità). Ho quindi identificato i pilastri dell'applicazione (i concetti centrali attorno ai quali l'intera applicazione si evolve) e li ho definiti in base a ciò che sono stato in grado di sviluppare e in quale ordine.

Ho trascorso circa 6 mesi (nel mio tempo personale) a fare tutto quanto sopra fino a quando non mi è stato chiaro come iniziare e quale tipo di funzionalità versione 0.1.0-alpha dovrebbe avere.

Quindi, ho introdotto un solido ciclo di sviluppo che, ancora, seguo religiosamente. Quando completo uno sprint (utilizzo lo sviluppo Agile), rilascio una versione alpha / beta / qualunque con l'installer completo, la documentazione, le risorse, ecc. Non importa quanto piccole siano le aggiunte / modifiche. Ma è molto più avanti la tua domanda.

    
risposta data 30.05.2018 - 01:07
fonte

Leggi altre domande sui tag