Ti preoccupi mai di essere più interessato a come viene costruita qualcosa piuttosto che a quello che stai effettivamente costruendo?

11

Come programmatore ho un fastidioso fastidio inerente ai miei strumenti, al codice di altri popoli, al mio codice, al mondo in generale. Voglio sempre migliorarlo. Quindi mi rifatto, rimango in cima alle ultime tecniche. Provo a imparare i pattern, cerco di usare i framework per non reinventare la ruota. Posso scrivere una specifica tecnica che farà esplodere i tuoi calzini con la quantità di motivi che posso spremere.

Tuttavia, ultimamente mi sembra di conoscere meglio gli strumenti che utilizzo piuttosto che come implementare software di successo.

Mi sento come se mancassi il set di abilità dei fattori umani e credo che per essere un ingegnere del software di successo ci vuole molto più della conoscenza del framework più interessante. Penso che abbia bisogno anche di alcuni dei seguenti skillset.

  • Progettazione dell'interazione
  • Esperienza utente
  • Marketing

Ho un po 'di questo che ho imparato dalle persone con cui ho lavorato e dai grandi progetti su cui ho lavorato, ma non mi sento di possedere queste abilità.

Ho ragione? Dovrei cercare di sviluppare ulteriormente queste abilità, o queste dovrebbero essere lasciate alle persone che fanno queste per una carriera?

Come fai a essere sicuro di non rimanere troppo legato a come stai facendo qualcosa e di assicurarti di "rendere i tuoi utenti fantastici"?

Qualcuno sa di buone risorse per apprendere queste abilità da un punto di vista della programmazione?

    
posta Rob Stevenson-Leggett 08.02.2011 - 16:38
fonte

7 risposte

5

Il mio consiglio: parla il più possibile con i tuoi utenti. Non so se ti trovi in una grande azienda e sei in un altro continente rispetto ai tuoi utenti, o se sei in una posizione di tipo libero professionista, ma se possibile, parla solo con i tuoi utenti.

So che un sacco di volte, devo sedermi e ricordare che non è il mio lavoro costruire il più grande codice che il mondo abbia mai visto, o costruire una funzione che utilizza il minor numero di cicli e richiede il minor tempo possibile tecnologicamente, ma per fare tutto ciò che gli utenti hanno bisogno di fare il loro lavoro. In tal senso, trovo che oltre alla semplice capacità tecnica, (almeno per me stesso) i migliori 2 tratti da avere siano una buona conoscenza del business degli utenti, e un buon rapporto di lavoro con loro.

Lavoro in una società di piccole dimensioni (~ 50 persone) e mi piace essere in grado di raggiungere il cubo di qualcuno e chattare sull'ultima cosa che ho creato / risolto per loro. Il miglior feeling assoluto che ho ottenuto dal mio lavoro è quando riesco a sentirli parlare del loro lavoro e suggerire qualcosa che risolverà un problema che non hanno mai realizzato per cui una soluzione tecnica potrebbe esistere. Ciò non sarebbe possibile se non comprendessi i loro affari e non potessi avere conversazioni casuali con loro.

    
risposta data 08.02.2011 - 16:57
fonte
5

Direi che dipende da dove lavori e da quali tipi di aziende ti vedi trasferirti in futuro - che è davvero una discussione aperta.

Con le aziende più piccole, puoi indossare molti cappelli (anche se non sono sicuro del motivo per cui il marketing è in questa lista a meno che tu non intenda vendere il tuo prodotto).

Nelle aziende più grandi, possono tendere ad avere persone che si concentrano specificamente su queste cose.

Quindi, in realtà, tutto dipende da dove ti vedi andare e potenzialmente aprire più porte per te stesso.

    
risposta data 08.02.2011 - 16:44
fonte
2

Per ogni riga di codice che scrivi, inserisci la possibilità di un bug.

Quindi, i migliori design minimizzano la quantità di codice introdotto - forse attraverso il principio DRY (Do not Repeat Yourself). Tuttavia, le startup favoriscono l'approccio YAGNI (che non ne hai bisogno) che porta all'MVP (prodotto minimo vitale) molto più rapidamente.

Se il tuo obiettivo è creare un prodotto pulito e facile da usare che faccia esattamente quello che vogliono i tuoi utenti, allora YAGNI è il tuo modello di design definitivo. Buttare fuori tutto ciò che non contribuisce direttamente al codice di lavoro. Ciò include i processi di costruzione puristi e l'uso ossessivo dei modelli.

Alcuni materiali di lettura

Potresti leggere " Non farmi pensare " che è un libro eccellente sull'interfaccia utente design. Inoltre, qualsiasi serie di libri di Gitomer (in particolare The Little Green Book ) ti aiuterà con le tue vendite, networking e competenze di marketing.

    
risposta data 08.02.2011 - 19:10
fonte
1

Penso che una certa quantità di design dell'interazione e conoscenza dell'esperienza utente sia molto utile anche in una grande azienda per una ragione: tu come sviluppatore sei la prima persona a utilizzare effettivamente l'interfaccia, settimane o addirittura mesi prima che sia in una stato utilizzabile per un tester da testare.

Può essere molto utile nelle prime fasi di indicare un'interfaccia che non è altrettanto facile da usare come era stato pianificato, o qualche principio di progettazione che potrebbe essere stato trascurato. Queste cose a volte possono essere difficili da vedere prima di avere qualcosa di concreto su cui lavorare, e tu sei sempre la prima persona con qualcosa di concreto su cui lavorare.

    
risposta data 08.02.2011 - 17:05
fonte
1

Posso scrivere una specifica tecnica che ti farà esplodere le calze con la quantità di motivi che posso spremere.

Questa affermazione mi porta a credere che sia necessario lavorare su altri aspetti dello sviluppo del software.

    
risposta data 08.02.2011 - 19:00
fonte
1

Anche se potresti non essere mai responsabile di tutti gli aspetti del software della tua azienda, avere una vasta gamma di conoscenze su molti argomenti può essere estremamente prezioso. Se non altro, è più materiale che puoi lasciare in un colloquio, così puoi continuare la tua carriera.

Se non sei abbastanza sfidato in alcune aree del tuo lavoro, avvia il tuo progetto a casa per fare qualcosa che trovi interessante. O essere coinvolti in un progetto open source.

    
risposta data 08.02.2011 - 20:09
fonte
1

No, non è il mio lavoro preoccuparsi di ciò che sto costruendo, ma piuttosto di costruirlo secondo le specifiche del mio cliente / datore di lavoro. Sanno già quello che vogliono e il suo compito è di implementarlo correttamente in modo che sia mantenibile. Darò consigli quando se ne presenti la possibilità se posso dire che non sono del tutto sicuri del modo migliore per inserire una funzionalità nel software

Probabilmente a un certo punto vorrò creare il mio progetto e preoccuparmi di ciò che sto costruendo, ma penso che per un certo periodo quando inizi una carriera di sviluppo software è importante cercare costantemente di imparare il modo giusto di fare le cose

    
risposta data 08.02.2011 - 20:44
fonte

Leggi altre domande sui tag