Scrivere un manuale per gli sviluppatori a livello aziendale


17

Lavoro per una piccola azienda. Il braccio di sviluppo software della società prima che venissi assunto era costituito da un ragazzo autodidatta oberato di lavoro. Ora che scrivo software per l'azienda da alcuni anni, mi è stato affidato il compito di stabilire pratiche formali di sviluppo software a livello aziendale. Al momento non abbiamo linee guida, a parte

Scrivi il codice, testalo, mettilo in un file .zip e invialo al client. Punti bonus per TDD e controllo della versione.

Il mio capo vuole che scriva un manuale per sviluppatori di software che definisce i processi generali, i protocolli, gli strumenti e le linee guida che usiamo per fare le cose. In altre parole, vuole un libro "Questo è quello che facciamo qui" per rendere più facile far conoscere a un nuovo dipendente il modo in cui facciamo le cose, oltre ad aiutare il mio capo a capire cosa stanno facendo i suoi seguaci e come fanno esso.

Per come la vedo, sto gettando le basi e deve essere fatto bene. Come sceglieresti argomenti per un simile manuale? Potete fornire alcuni esempi di argomenti?

Nota a margine: se è importante, siamo principalmente un negozio Microsoft .NET. E stiamo esaminando pratiche agili come XP e Scrum, ma potremmo doverle modificare pesantemente per farle funzionare nella nostra azienda.


3
Il tuo processo attuale è molto scarso. Hai il supporto dell'azienda per cambiare il tuo processo attuale, non sarà economico, il tipo di cambiamento richiesto richiederà denaro. Ci sono molti libri sull'argomento, la maggior parte di quelli pratici hanno strumenti che sono necessari per implementarli in un modo che non richiede un grande sforzo.
Ramhound,

acquisti per argomenti del manuale?
moscerino del

1
@gnat Buon punto. Vedi modifica.
Phil

buona modifica (apparentemente hai seguito il link). Modificherei anche Quali tipi di argomenti pensi siano importanti ... a qualcosa come Come misureresti l'importanza degli argomenti ... - in questo modo, sarebbe più in linea con la guida di Jeff per quanto la capisco
moscerino del

1
Non sono davvero preoccupato di come valutare l'importanza degli argomenti, poiché penso di poterlo già fare. Piuttosto, sto cercando degli esempi. Ho sempre considerato le risposte a domande astratte migliori se accompagnate da esempi. Vedi modifica. A proposito, apprezzo il tuo aiuto per migliorare la mia domanda.
Phil

Risposte:


20

Lo spezzerei in sezioni come

  • Personale attuale - nomi e titoli (idealmente con foto)
  • Applicazioni, accessi, dati da conoscere e richieste di autorizzazione da inviare
  • Segnalibri per siti aziendali e siti chiave esterni rilevanti per l'azienda
  • Applicazioni che l'azienda utilizza per comunicazioni, e-mail, prenotazione di sale conferenze, schermo condiviso
  • Procedure per attività connesse all'azienda come spese di spesa, prenotazione viaggi
  • Impostazione macchina sviluppatore. Descrivere in dettaglio il processo di impostazione di una nuova macchina per sviluppatori. Di solito, ci si aspetta che questo richieda solo un giorno, ma spesso ci vogliono 3-5 giorni nella realtà.
  • Il processo di sviluppo, il modo in cui il lavoro viene monitorato, assegnato e aggiornato e quali strumenti vengono utilizzati.
  • Come testare, cosa testare, quando testare, dove testare.
  • Standard di codifica incluse convenzioni di denominazione dei file e standard specifici della lingua.
  • Come gestire i bug, dove documentarli, come risolverli.
  • processo di distribuzione, quali sono le cose chiave da sapere per le spinte di produzione.
  • Come documentare, cosa documentare, quando documentare.
  • Dove roba "è", ad es. Posizione (i) per codice, dati, standard, documentazione, collegamenti e altre risorse.

Renderlo modulare consentirà anche a te o ad altri di aggiornare i pezzi separatamente, ad esempio i nomi e le posizioni dei dipendenti cambieranno frequentemente man mano che le persone vanno e vengono.

Per ogni sezione farei del mio meglio per scriverlo da un punto di vista "da principiante". La cosa più importante sarà assicurarsi che abbia davvero senso per un principiante. Il tuo capo, ovviamente, non è la persona giusta per esaminarlo perché non è il pubblico previsto. Ha ragione a volerlo, assicurati solo che il contenuto non finisca per essere testato da lui. Anche un "principiante" ha entrambi "1 settimana" solo come principiante ... e ha solo un punto di vista. Quindi è probabile (e raccomandato) che il documento venga perfezionato con ogni nuovo dipendente. In effetti è un compito piuttosto buono assegnarli anche alla loro prima settimana, ovvero "Aggiorna il manuale per principianti".

Per Agile / SCRUM:

La parte più difficile del fare Agile e SCRUM è "davvero" farlo.

Per leggere vorrei iniziare su http://agilemanifesto.org/ e andare da lì.

Vorrei anche leggere il noto http://www.halfarsedagilemanifesto.org/ che aggiunge peso al fatto che devi davvero abbracciare tutti gli aspetti affinché funzioni. Se è necessario modificare fortemente Agile per le proprie organizzazioni, è probabile che le persone desiderino i vantaggi, senza utilizzare i processi corretti. Questo fatto in dovrebbe essere presentato per scongiurare qualsiasi mezzo assurdo.


6
Mi piace la frequenza con cui lo stai modificando. Come ... agile da parte tua. :)
Phil

Non vogliamo necessariamente modificare i principi agili in generale. Modificheremmo solo pratiche specifiche come XP, dal momento che non abbiamo davvero la forza lavoro per implementare tutti i ruoli richiesti. Potrebbe essere un'altra domanda per un altro giorno.
Phil

Spiacenti, ho rimosso la risposta per ora perché la domanda è stata modificata.
Phil

1
Punti bonus se si imposta una wiki aziendale per contenere queste informazioni ...
Spencer Rathbun

Ciao Spencer, è interessante. Ho anche appena iniziato a utilizzare un wiki github con markdown. Qualche idea su come si confrontano. Ovviamente molte persone conoscono github dal codice e markdown da SO, quindi è facile essere adottati.
Michael Durrant,

4

Sembra che dovrai introdurre alcune pratiche prima di documentarle!

a) Controllo delle fonti: come archiviare le fonti e eseguire il controllo delle revisioni

b) Gestione e tracciamento delle versioni: come si fa a creare una build, numerare una versione, confrontare un candidato alla versione corrente con una versione precedente

c) Gestione dei problemi - come tenere traccia dei bug nelle tue versioni.

Queste sono cose piuttosto basilari ma possono impiegare molto tempo (e possibilmente costare denaro) per essere implementate.


2
+1 per mantenerlo semplice e concentrarsi su questioni importanti. Non abbiamo davvero bisogno di mandati di "grande governo" sugli stili di codifica.
kirk.burleson,

3

Argomenti che vorrei includere nel manuale di uno sviluppatore:

  • Ruoli / posizioni all'interno del dipartimento e relative responsabilità
  • Requisiti software della macchina per sviluppatori (ovvero ambiente di sviluppo richiesto)
  • Dove e come accedere al repository del codice sorgente
  • Strumenti di sviluppo utilizzati (ad es. IDE)
  • Stile / standard di codifica
  • Standard di documentazione
  • Processo di test
  • Processo di costruzione
  • Processo di distribuzione
  • Supporto e processo di gestione dei problemi
  • Dove ottenere la versione più aggiornata di questo manuale

Tieni presente che questo manuale dovrebbe contenere solo elementi specifici per lo sviluppo e non informazioni a livello aziendale (che dovrebbero essere contenute in un manuale per i dipendenti).


2

Uso del controllo del codice sorgente

  • Quale strumento di controllo del codice sorgente stai utilizzando.
  • Sintassi di comandi / strumenti comuni nell'IDE.
  • Strategia di diramazione / unione.
  • Quale dovrebbe essere l'unità di un commit? Quanto tempo è troppo lungo per il checkout / il commit di un file?
  • Quale livello di "doneness" indica un commit / check-in? Compila? Passano i test unitari? Rivisto?
  • Cosa dovrebbe essere incluso nelle note per un commit / check-in.
  • Procedure di rollback.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.