Ti preoccupi mai di essere più interessato a come viene costruito qualcosa piuttosto che a ciò che stai effettivamente costruendo?


11

Come programmatore ho un fastidioso fastidio intrinseco nei miei strumenti, nel codice di altre persone, nel mio codice, nel mondo in generale. Voglio sempre migliorarlo. Quindi rifletto, rimango aggiornato sulle ultime tecniche. Cerco di apprendere schemi, cerco di usare quadri per non reinventare la ruota. Sono in grado di scrivere una specifica tecnica che ti farà esplodere i calzini con la quantità di motivi che riesco a comprimere.

Tuttavia, ultimamente sento di sapere di più sugli strumenti che utilizzo piuttosto che su come implementare effettivamente software di successo.

Sento che mi manca il set di competenze sui fattori umani e credo che per essere un ingegnere del software di successo ci vuole più che conoscere il framework più interessante. Penso che abbia bisogno anche di alcuni dei seguenti skillset.

  • Design interattivo
  • L'esperienza utente
  • Marketing

Ho un po 'di questo che ho imparato da persone con cui ho lavorato e grandi progetti a cui ho lavorato ma non mi sento di "possedere" queste abilità.

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

Come ti assicuri di non essere troppo legato al modo in cui stai facendo qualcosa e di assicurarti di "rendere fantastici i tuoi utenti"?

Qualcuno conosce buone risorse per apprendere queste abilità dal punto di vista della programmazione?


2
Sì, quelli sono un grosso problema. Se fossi una compagnia individuale, avresti sentito subito il pizzico. Una start-up potrebbe non assumerti perché non capisci che sta lottando per sopravvivere e devono o eliminare le cose di qualità beta il prossimo mese o morire, o perché non puoi allungare un po 'la verità quando parli con i clienti. Tuttavia, in una grande società mal gestita, forse è meglio perseguire l'interesse egoistico. La direzione lo fa sempre.
Lavoro

Mi piace usare ottimi prodotti, dove penso "wow, che funziona senza problemi". Quindi, provare a partecipare alla creazione di tali prodotti "wow" mi risulta naturale. Se questo non è naturale per te, forse tieni a mente solo quelli che si divertono e sono disposti a pagare buoni soldi (pensa ai prodotti Apple).
LennyProgrammers

2
Mi sembra che tu sia sulla strada dell'essere un lavoratore orientato al processo, piuttosto che un lavoratore orientato ai risultati. Ti concentri sul processo perché è quello che conosci. Impara a lasciar andare il processo e concentrati sui risultati. Come hai detto, i modelli e le cose di progettazione sono solo strumenti: la tua preoccupazione principale dovrebbe essere il problema che il prodotto che stai realizzando risolverà.
whatsisname

1
@whatisname, non è così semplice, certo che i "risultati" potrebbero sembrare che tale e tale applicazione funzionino benissimo per la versione 1.0 con un codice ad hoc che è stato violato insieme ma poi per la versione 2.0 è necessario un cambiamento importante, beh, sei ancora rimarrà bloccato con un "risultato" dello sforzo precedente che dovrà essere rielaborato. Penso che sia davvero una situazione in cui la funzionalità di un'applicazione dal punto di vista di un utente è solo la punta dell'iceberg e puoi ' t vincola il "risultato" a questo
programmx10

@whatisname Se questa fosse stata una risposta, l'avrei accettata ma concordo anche con te Rick. Quello che sto cercando di ottenere è un punto in cui uno dei 2 set di competenze è in equilibrio, quindi sono in grado di progettare una grande esperienza utente utilizzando gli strumenti e le tecniche migliori. Sembra proprio ora che l'uno o l'altro stia soffrendo. Devo rendere entrambi i set di abilità di seconda natura.
Rob Stevenson-Leggett,

Risposte:


5

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

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

Lavoro in una piccola azienda (circa 50 persone) e mi piace essere in grado di raggiungere il cubo di qualcuno e parlare dell'ultima cosa che ho creato / riparato per loro. La sensazione migliore in assoluto che abbia mai avuto dal mio lavoro è quando sono in grado di sentirli parlare del loro lavoro e suggerire qualcosa che risolverà un problema per il quale non hanno mai realizzato una soluzione tecnica. Ciò non sarebbe possibile se non capissi i loro affari e non potessi avere conversazioni casuali con loro.


+1 per parlare con gli utenti - fondamentale per la creazione di un prodotto utile
Gary Rowe

5

Direi che dipende da dove lavori e da quali tipi di aziende ti vedrai passare in futuro, il che è davvero una discussione aperta.

Con le aziende più piccole, potresti indossare molti cappelli (anche se non sono sicuro del perché il marketing sia in questo elenco 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 davvero, è tutto su dove ti vedi andare e potenzialmente aprire più porte per te stesso.


2
Grazie - punti interessanti. Considero il marketing più che la vendita, sto pensando a blog di sviluppo, SEO, affiliati, come dovrebbero essere integrati, ecc.
Rob Stevenson-Leggett

2

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

Quindi, i migliori design minimizzano la quantità di codice introdotto, forse attraverso il principio DRY (Don't Repeat Yourself). Tuttavia, le startup favoriscono l' approccio YAGNI (You Ain't Gonna Need It) che porta molto più rapidamente al MVP (Minimum Viable Product).

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

Un po 'di materiale di lettura

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


1

Penso che una certa quantità di design dell'interazione e conoscenza dell'esperienza dell'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 uno stato utilizzabile per un tester da testare.

Può essere molto utile nelle prime fasi evidenziare un'interfaccia non abbastanza facile da usare come previsto, o alcuni principi di progettazione che potrebbero essere stati trascurati. A volte queste cose possono essere difficili da vedere prima che tu abbia qualcosa di concreto con cui lavorare, e sei sempre la prima persona ad avere qualcosa di concreto con cui lavorare.


Non faccio parte di una grande azienda e in passato ho lavorato per un'azienda di design di interazione. L'ho scoperto perché a volte mancava la mia conoscenza, avrei rimandato. Hai qualche risorsa o consigli sui libri?
Rob Stevenson-Leggett,

1

Sono in grado di scrivere una specifica tecnica che ti farà esplodere i calzini con la quantità di motivi che riesco a comprimere.

Questa affermazione da sola mi porta a credere che tu debba lavorare su altri aspetti dello sviluppo del software.


C'era una certa ironia in questo :) Probabilmente non ci siamo imbattuti troppo bene nella domanda.
Rob Stevenson-Leggett,

@Rob, contento che tu l'abbia detto, ho avuto grandi luci rosse di abuso di pattern lampeggianti che si spengono dappertutto.
ocodo

1

Anche se potresti non essere mai responsabile di ogni aspetto del software della tua azienda, avere una vasta gamma di conoscenze su molte materie può essere estremamente prezioso. Se non altro, è più roba che puoi rilasciare in un'intervista, così puoi continuare la tua carriera.

Se in alcune aree del tuo lavoro non ti trovi abbastanza in difficoltà, avvia il tuo progetto a casa per fare qualcosa che ritieni interessante. Oppure partecipa a un progetto open source.


1

No, non è il mio lavoro preoccuparmi di ciò che sto costruendo, ma piuttosto costruirlo secondo le specifiche stabilite dal mio cliente / datore di lavoro. Sanno già cosa vogliono e spetta a me implementarlo correttamente in modo che sia mantenibile. Darò consigli quando si presenterà la possibilità se posso dire che non sono abbastanza sicuri del modo migliore per inserire una funzionalità nel software

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


Interessante, sei in minoranza. Non pensi che a volte le altre persone potrebbero sbagliarsi?
Rob Stevenson-Leggett,
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.