Quale cappello non dovrebbe indossare un programmatore? [chiuso]


29

Nella mia esperienza, gli sviluppatori di software tendono a indossare più cappelli e ricoprono più ruoli con responsabilità diverse. Dalla codifica non solo, ma a volte anche alla scrittura di SQL, dalla progettazione dell'interfaccia utente, dalla progettazione del database, dalla manipolazione grafica, fino ai test di controllo qualità.

Se il ruolo principale è scrivere software / codice, quali ruoli lo sviluppatore non dovrebbe assumere? Ci sono?

L'intenzione di questa domanda non è perché uno sviluppatore non è in grado di ricoprire un altro ruolo, ma avere il ruolo aggiuntivo funziona effettivamente contro il ruolo principale , o dovrebbe davvero essere un ruolo dedicato di qualcuno che non programma principalmente.


20
Un cofano ... oh aspetta ...
ChaosPandion,

21
Un programmatore dell'IMO non dovrebbe indossare uno di quei grandi sombreri messicani, perché il bordo continuerebbe a sbattere contro il monitor.
Mason Wheeler,

1
@Peter Turner: il "cappello programmatore eccezionale" sarebbe uno di quei lavori di novità che monta due lattine di birra. Solo, niente birra. Red Bull.
BlairHippo,

4
Dannazione. Un titolo così promettente ...
Nessuno il

4
@Mason, tenendo il sombrero sul monitor si proteggerà dai riflessi negli schermi lucidi. In altre parole: tecnica.

Risposte:


54

Sysadmin. Lo sviluppo di software e la gestione dell'infrastruttura IT sono due diversi skillset simili a quelli di un estraneo. (Sta solo sbattendo sui computer, giusto?) Per una piccola azienda, la tentazione sarà molto forte per rendere The Computer Guy responsabile di tutte le macchine dell'ufficio.

Se hai le abilità per indossare effettivamente entrambi i cappelli, fantastico; ma è una di quelle cose che possono essere una perdita di tempo molto più grande di quanto la gente capisca, e se stai insegnando da solo mentre procedi, è probabile che non lo stai facendo molto bene.


7
QUESTO. Seriamente, solo perché lavoro sui computer non significa che posso riparare l'infrastruttura. Stai solo sprecando il tempo dei tuoi sviluppatori.
Jaco Pretorius,

5
+1 il danno che può essere causato da un amministratore di sistema dilettante è enorme.
davidtbernal,

E se ottieni il cappello da amministratore di sistema, potrebbero attaccarti anche con il cappello del responsabile delle strutture che deve essere evitato a tutti i costi.
HLGEM,

3
OTOH, lavoro in un'azienda con un dipartimento IT incredibilmente incompetente e lento. Cosa non darei per essere in grado di apportare le mie modifiche al firewall ...
Gabe Moothart,

1
Qualcuno ha sottolineato che il mio capo non era vestito, ma ha detto loro che si sarebbe sporcato dal pavimento per sistemare i computer. Mi hanno indicato che avrei dovuto farlo. Ho quasi saltato attraverso la scrivania e li ho strangolati, ma ho sorseggiato il mio caffè e ho detto che non faccio hardware.
JeffO,

35

Indossi qualunque cappello ti chieda il tuo datore di lavoro. Questo è ciò che ti rende un giocatore di squadra. Questo è ciò che ti rende un risolutore di problemi .

Le persone sono troppo prese dall'idea di essere uno "sviluppatore" o un "architetto" o un "analista". Fanculo. Dovresti essere un risolutore di problemi. Il codice è solo uno strumento nella tua cintura.

La risoluzione dei problemi non passa mai di moda.

Se il mio datore di lavoro vuole che io faccia supporto tecnico o costruisca computer, così sia. Pensa che stiano sprecando i loro soldi, considerando un salario degli sviluppatori, ma sono affari loro. Sono qui per risolvere i problemi. Comunque posso farlo, lo farò. E se ho la sensazione che, dopo un certo periodo di tempo, i miei talenti vengono sprecati o la mia soddisfazione sul lavoro non è dove voglio che sia, allora ho solo il diritto di passare a un altro lavoro.

Ma alla domanda di base - non c'è un cappello che non indossi. Diamine, se vogliono che tu vada a prendere il caffè, fallo. Risolvi i loro problemi; sappi solo che hai il diritto di trovare un altro lavoro se desideri un cambiamento.


5
@Josh: Penso che sarebbe una di quelle situazioni "trova un nuovo lavoro".
Adam Lear

21
Stai solo attento con questo. I capi tendono a trarre vantaggio da coloro che sono disposti a fare qualsiasi cosa. Assicurati solo di essere compensato correttamente.
Tony,

5
Non penso che Chris stia dicendo "fai qualcosa" (beh, è ​​un po 'alla fine; non prenderò il caffè per nessuno che non mi prenda anche un drink), ma dicendo "Sono uno sviluppatore, io non cambierà una cartuccia della stampante "è solo essere snob.
Peter Boughton,

10
Non sono d'accordo. È facile dire che uno sviluppatore dovrebbe essere in grado di fare qualsiasi cosa venga richiesta, ma ciò non significa che DOVREBBE. Ci sono alcuni notevoli problemi di conflitto di interessi che sorgono in queste situazioni. Non voglio avere accesso ai sistemi di produzione perché verrai incolpato quando scenderanno ("oh, beh, XXX è stato lì il mese scorso, quindi sono sicuro che ha incasinato qualcosa perché è uno sviluppatore, non un amministratore")
MBonig,

7
-1; c'è un nocciolo di verità qui, ma ci sono alcune forti limitazioni a questa mentalità che questa risposta non fa abbastanza per riconoscere. Che dire di quando il vero problema di fondo è che il tuo datore di lavoro fa schifo nella gestione del personale? Una volta ho assistito al crollo di un ufficio perché i superiori insistevano perché gli ingegneri intelligenti e capaci si scarpellassero in ruoli che odiavano e facevano molto male. Ci sono momenti in cui si dice "No!" è la cosa migliore che puoi fare sia per te che per il tuo datore di lavoro.
BlairHippo,

29

Tester!

Vi preghiamo di inviarci tester direttamente dalla scuola di prova, se necessario!

Senza tester le persone si aspettano che tutto funzioni alla grande perché il programmatore è il tester e sono molto intelligenti, quindi dovrebbe funzionare.

Non sto dicendo che il cibo per cani non sia una buona idea. Penso solo che i tester siano molto importanti ora che sono un programmatore.


4
I buoni tester dedicati sono decisamente sottovalutati!
Peter Boughton,

3
Cibo per cani!? Cucino solo aragoste a cinque stelle! ... ed è per questo che mi serve un tester per dirmi quando ho rovinato qualcosa. Ho fatto la cosa e so come funziona. Nessuno che abbia creato un'interfaccia utente è mai qualificato per testarlo a fondo, semplicemente perché sa come funziona, non come funziona con qualcuno che non lo fa.
Morgan Herlocker,

15
Non c'è niente di sbagliato nell'essere un tester in generale. È sbagliato essere l'unico tester per il TUO codice. I programmatori programmano tenendo presente una serie di presupposti e, se il tester ha ipotesi identiche, non eserciteranno parti inattese e mancheranno molti bug.
dbkk,

5
Testare il proprio codice è sicuramente un grande no-no. Un programmatore può coprire molte altre cose, ma i test funzionali reali (se non stai eseguendo test unitari potresti non essere un programmatore comunque) del tuo codice è una pessima idea. Il cibo per cani con esso è buono, mente.
glenatron,

3
+1: i programmatori pensano in modo nettamente diverso dai non programmatori in termini di utilizzo dei programmi. Scopriresti mai un bug nella voce di menu "File -> Salva"?

26

Dovresti stare attento a diventare il ragazzo di riferimento per i problemi hardware dell'ufficio . Ciò può includere la risoluzione dei problemi del PC, l'amministratore del server, i backup e persino il funzionamento del sistema telefonico. Ho commesso l'errore di menzionare la mia precedente esperienza hardware e, alla fine, i miei compiti di hardware / risoluzione dei problemi sono stati gravemente in conflitto con i miei compiti di programmazione.


Di 'ai colpevoli che hanno bisogno del permesso del tuo capo e registra tutto il tempo usato per questo.

@Thor La direzione per lavorare su materiale hardware -came- dal mio capo. È stato utile per l'ufficio, ma non potevo concentrare la mia carriera sulla programmazione quanto avrei voluto a quel punto.
Jon Onstott,

@Jon, se il capo dice che devi farlo, beh ... devi farlo. Puoi quindi discutere con lui se questo è soddisfacente o meno, e se non riesci a raggiungere un accordo, è tempo di partire.

+1 Mi è successa la stessa cosa. Vogliono che non solo scriva codice, ma anche che mi occupo di problemi di rete insieme ai venditori di browbeating e questo ha causato molto stress.
Rich

16

Un programmatore non dovrebbe essere l'unico tester per il proprio codice .

Gli sviluppatori scrivono codice con una serie di presupposti. Se i tester hanno lo stesso insieme di ipotesi, non eserciteranno la funzionalità imprevista al di fuori di tali limiti e molti problemi rimarranno inosservati.

Inoltre, al fine di andare avanti, gli sviluppatori non sono fortemente motivati ​​a provare a rompere le cose, mentre i tester lo sono (forse a livello subconscio).

Ciò non implica che il test di sviluppo sia inutile. Al contrario, un buon test di sviluppo consente ai tester di concentrarsi sulla ricerca di problemi più profondi. Tuttavia, il test di sviluppo non sostituisce un tester dedicato.


10

Due a cui riesco a pensare subito.

  1. Supporto tecnico. Non sono qui per aiutare i clienti a lavorare sul nuovo sito o insegnare loro come utilizzare le funzionalità.
  2. Sebbene possa essere necessario interfacciarsi con i clienti in vari punti del processo, a meno che tu non sia un programmatore di gestione, in realtà non dovresti comunicare direttamente con loro su funzionalità e implementazioni di progettazione.

Si potrebbe dire che lo sviluppo di CSS / UI sarebbe al di fuori del "regno" della programmazione, ma nella mia esperienza è oggi un'abilità necessaria. Non puoi semplicemente cavartela con le tabelle e dipendere da qualcun altro per implementarla correttamente. Potrebbe non piacermi l'implementazione del design o l'alterazione del codice per gestire un nuovo design, ma questo fa parte del lavoro.

Scrivere query va bene, il test Q / A va bene (e IMO dovrebbe essere il lavoro del programmatore, fare trovare un dipartimento esterno, ma prima dovresti testarlo). L'amministrazione del server è un po 'una zona grigia. A seconda delle dimensioni del progetto o se si dispone di un amministratore del server dedicato, potrebbe essere necessario o meno.


7
Per quanto riguarda il punto 2, esiste almeno una società che ha come principio fondante che la persona che scrive il codice dovrebbe parlare direttamente con il cliente: la disintermediazione ha i suoi vantaggi.
Frank Shearar,

10

In generale, è stata la mia esperienza che la maggior parte dei programmatori non dovrebbe sviluppare l'aspetto dell'interfaccia utente - anche se sono certamente in grado di sviluppare un'interfaccia utente (e spesso crearne uno durante la costruzione di un prototipo o una prova di concetto), questo è meglio lasciare a una persona di fattori umani (che nella nostra piccola azienda è un artista grafico che fa anche i layout dello schermo e crea la maggior parte dei manuali e delle brochure).

Inoltre, gli sviluppatori non dovrebbero eseguire test di controllo qualità: questo è il compito del dipartimento di controllo qualità (la società in cui lavoro produce dispositivi medici incorporati, quindi è necessario che i test vengano eseguiti da un reparto separato).

D'altra parte, non vedo alcun motivo per cui gli sviluppatori non possano progettare database e scrivere SQL, se hanno lo sfondo per farlo - l'ho fatto tante volte.


2
+1 Sono d'accordo sul fatto che i test di controllo qualità da parte degli sviluppatori che l'hanno scritto sconfiggono lo scopo.
spong

2
@JoshK Alcuni test di QA possono essere eseguiti dagli sviluppatori, ma i test di QA principali dovrebbero essere eseguiti da altri. Se provi la tua app che hai scritto, inconsciamente aggirerai eventuali problemi. Il punto è scoprire i problemi che gli sviluppatori non sono in grado di trovare, una sorta di occhi nuovi per così dire.
spong

2
@JoshK @ChaosPandion D'accordo, alcuni test precedenti da parte degli sviluppatori dovrebbero essere fatti-- ma non dovrebbe essere attendibile, quindi separare i test di controllo qualità da quelli che non lo hanno sviluppato.
spong

5
-1: Non sono d'accordo sul fatto che i programmatori non debbano progettare la GUI. Ho lavorato per 8 anni in una piccola azienda e ho progettato tutta l'interfaccia utente. Ho sempre seguito le eccellenti linee guida di progettazione di Microsoft e ho letto un paio di libri di progettazione HMI. Abbiamo affidato in outsourcing a illustratori esterni solo grafica.
Wizard79,

3
Una cosa che mi preoccupa qui è l'implicazione che una persona grafica è più adatta di un programmatore per progettare interfacce utente. Può darsi che il tuo artista grafico sia molto bravo a progettare interfacce, ma in generale può degenerare in un'interfaccia confusa, inutilizzabile, carina al contrario dell'interfaccia confusa, a malapena utilizzabile, brutta che avresti dal programmatore stereotipato.
David Thornley

8

Supporto tecnico

Gran parte della mia giornata è sprecata prendendo le chiamate di supporto tecnico ...

Alcuni popolari sono:

  • "Il mio account è bloccato" o "Ho dimenticato la mia password"
  • "Il mio [telefono | tastiera | mouse | computer] non funziona"
  • "Il mio computer è lento, puoi verificarlo per qualcosa di insolito?"
  • "Perché X accade quando faccio clic su questo pulsante? Dovrebbe essere Y"
  • "Continuo a ricevere questi popup ...." o "Penso di avere un virus"
  • "Questa persona non è più qui, puoi disabilitare tutte le loro cose?"
  • "Abbiamo un nuovo dipendente, puoi configurarlo con login, carta di sicurezza, telefono, email, ecc.?"

6

Qualsiasi ruolo che lo faccia gestire da solo. Nei piccoli team, c'è spesso la tendenza a rendere uno degli sviluppatori senior il project manager, ma anche a mantenerlo nel team come programmatore. Questo porta a tutti i tipi di problemi, dal momento che questo ragazzo, come programmatore, è sostanzialmente non gestito. Invece di delegare tutti i compiti agli altri membri del team, sarà spesso tentato di assegnarne molti a se stesso, in particolare i compiti più difficili. Quindi i compiti più difficili, quelli che hanno maggiori probabilità di causare problemi, sono assegnati a una persona che è disponibile solo come 50% come programmatore e come tale non riferisce a nessuno. Quando gli altri membri del team non sono in grado di consegnare, invece di prenderli a calci in culo, proverà a svolgere i loro compiti, perché, in quanto project manager, è responsabile del successo e il modo più sicuro per farlo è farlo da solo no?


5

Supporto tecnico per qualcosa che non hai avuto mano nello sviluppo, nella distribuzione o nella manutenzione e per il quale non hai ricevuto alcuna formazione e non sei aggiornato su importanti cambiamenti. Parte del mio lavoro è diventata rispondere al telefono per i clienti che chiamavano perché la loro Internet non funziona. Non mi occupo di quella metà del business, quindi non posso dire loro nulla di utile.

Non è necessario fare supporto tecnico, con cui non ci sono problemi. Sta facendo il segretario / ragazzo del supporto tecnico mentre cerca di sviluppare le cose.

È abbastanza faticoso dover ascoltare le persone che si lamentano tutto il giorno e non essere in grado di dire loro nulla. Consiglierei di evitarlo a tutti i costi.


Sì, è tassativo dover cambiare personalità più volte nel corso della giornata. È difficile lavorare su compiti che richiedono concentrazione quando si viene costantemente interrotti.
Rich

5

Vendite .

Qualche poveraccio deve farlo, ma sicuramente non dovrebbero essere gli sviluppatori.


4

Man mano che sono cresciuto, mi sono reso conto che è meglio se gli sviluppatori non eseguono le proprie implementazioni (ho combattuto con un dente e unghia). Non dovrebbero avere alcun diritto sul database di produzione tranne i diritti selezionati. Il nostro codice è diventato molto meno difettoso (e la stessa cosa non è cresciuta più volte perché la modifica è stata apportata solo in prod e una successiva distribuzione di sviluppatori l'ha sovrascritta di nuovo quindi riparata solo su prod in fretta, risciacquo e ripetizione) quando abbiamo ha dovuto iniziare a distribuirlo ad altre persone e non essere autorizzato a apportare modifiche rapide alla produzione perché la distribuzione non era corretta. Inoltre abbiamo smesso di avere quegli "aggiornamenti accidentali senza la clausola where evidenziata che ha modificato tutti i record nella tabella".


Sì, sì e sì. Non dare mai agli sviluppatori alcun accesso alla produzione e molto limitato (e preferibilmente nessuno) alla messa in scena. Se per nient'altro diminuisce lo stress a cui sono esposti.
ElGringoGrande,

1
Sì! Sono uno sviluppatore e non voglio accedere a tutte queste cose di produzione. E con altre persone che eseguono la distribuzione del software, questo è un altro test del processo di distribuzione. (E forse il recupero del disastro migliorerà anche da questo.)
rabbia

3

Artista e designer dell'interfaccia utente .

La maggior parte dei programmatori è molto povera di opere d'arte, ma le aziende non si preoccupano di pagare per un artista di disegnare immagini e icone per i loro prodotti e usano semplicemente "arte del programmatore" - con risultati orribili. (Fino a Windows Vista, questo era il fattore di differenziazione più immediatamente evidente tra Mac e PC: i Mac sembravano belli e amichevoli, i PC erano un pugno nell'occhio)

Allo stesso modo, molti programmatori non sono molto interessati all'interfaccia utente: si preoccupano principalmente del loro codice. Esse semplicemente espongono il contenuto delle variabili dei loro membri direttamente in alcuni campi modificabili, spesso non importa dove inseriscono pulsanti e campi nei loro moduli, e presumono che ciò sia sufficiente, risultando in un software inutilizzabile. (L'intero settore della telefonia mobile è stato molto colpevole fino a quando l'iPhone è arrivato per mostrare loro che potevi effettivamente creare un'interfaccia utente del telefono che fosse piacevole da usare)

Lotus Notes è un brillante esempio di quanto entrambe queste cose possano essere brutte se non si ottiene un designer professionista per aiutare i programmatori.


2
"La maggior parte dei programmatori sono molto poveri in artwook" e "Molti programmatori non sono molto interessati" non è lo stesso di "nessun programmatore è interessato" e "tutti i programmatori sono cattivi". In realtà ho conosciuto una coppia che se la cava abbastanza bene.
MIA,

1
@Jim Leonardo: Anzi. Ecco perché ho detto "più" e "molto" piuttosto che "tutto". :-)
Jason Williams il

3

Stesura di test generali e piani di test. Seriamente, ragazzi, posso scrivere i miei piani di test, ma ciò significa inserire nel prodotto qualunque apprensione, falsa ipotesi ed errore cognitivo che ho fatto mentre scrivevo le cose. Era l'unica cosa che odiavo di un'azienda in cui lavoravo; dove sono ora, abbiamo almeno recensioni di codice che probabilmente cattureranno queste cose.


Sì, la maggior parte dei test dovrebbe essere scritta accanto alle specifiche, prima di creare qualsiasi codice. Anche se avere uno sviluppatore aggiunge ulteriori test basati sulla conoscenza di ciò che hanno toccato non è una brutta cosa.
Peter Boughton,

3

Non indossare mai più "cappelli" di quelli che puoi ragionevolmente gestire e con cui ti senti a tuo agio, provando a fare il piccione agli sviluppatori dicendo che non dovrebbero fare A o B significa che un grande designer dell'interfaccia utente potrebbe passare inosservato perché qualcuno pensa che i programmatori dovrebbero stare lontano da l'interfaccia utente.

Alla fine della giornata tutti avranno diversi punti di forza e di debolezza e un buon manager / supervisore / team leader dovrebbe conoscere il modo migliore per indirizzare le persone che lavorano per loro per garantire che i talenti vengano utilizzati in modo appropriato. Allo stesso modo, se non hai dimestichezza con la progettazione di interfacce utente o con gli utenti finali, informa il tuo team in modo da ridurre al minimo il tuo ruolo in quella zona. Tuttavia, dovresti essere pronto a raccogliere qualche lavoro aggiuntivo in un'altra area.

Inoltre, se indossi troppi cappelli (ad es. Programmatore, designer dell'interfaccia utente, tester, analista aziendale, ecc.), O farai male ad alcuni di essi o ti esaurirai. Assicurati di sapere quanti cappelli puoi gestire e cerca di mantenere il carico di lavoro attorno a quel livello.

Oltre a ciò, non ci sono davvero "cappelli" che uno sviluppatore non dovrebbe indossare se ha le capacità per eccellere in quel ruolo.


1

Tendo a prendere qualsiasi lavoro che mi viene lanciato se e solo se:

  • Avviso in anticipo del mio livello di abilità e delle possibili implicazioni e il mio capo decide che è accettabile
  • C'è una persona di livello guru che può (e probabilmente ad un certo punto) mi aiuterà ad affrontare qualcosa di inaspettato
  • Leggi alcuni documenti, domande online, ecc.

In questo modo sono per lo più assicurato contro il mio capo e se qualcuno va storto è almeno riparabile.


1

Gli sviluppatori sono parti interessate alla situazione (come clienti, proprietari, ecc.), Quindi hanno il diritto di aspettarsi un lavoro significativo. Secondo me, ciò significa l'opportunità di lavorare con i tuoi punti di forza .

Quindi, uno sviluppatore non dovrebbe indossare un cappello che non si ecciti, non contribuisca alla crescita personale e porti a massime prestazioni - e ruba tempo ai "cappelli" che fanno queste cose per loro.

Oltre a non essere l'unico a testare il proprio codice, penso che qualsiasi "cappello" sia ok se è un lavoro significativo per lo sviluppatore che indossa il cappello.


1

Il "designer" o il "ragazzo creativo". Passerai dal mettere insieme innocentemente un mockup dell'interfaccia di un'applicazione alla scrittura di testo di marketing per la prossima campagna pubblicitaria online o discussioni infinite sulla sfumatura "giusta" di blu prima di conoscerla x_x.


0

quel cappello con le lattine di birra sul lato con una cannuccia. cattiva idea se vieni catturato.

modificare:

Ecco il cappello che odio ma che ha una grande ricompensa - è un grande segno per me che dice che se questa cosa si rompe è tutta colpa tua ... ah, ma se è buono, allora tu figlio mio sei il bravo ragazzo che tutti ti conosciamo sono - ora torna nel seminterrato ... bravo ragazzo ... tutto qui.

Il cappello della colpa.

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.