
Di solito titolo i miei discorsi perché voglio dirti di cosa ti parlerò
ma qui voglio andare un po ‘in giro con te
non sarà necessariamente … Non voglio dirti dove stiamo andando
quindi di conseguenza non c’è un titolo chiaro, ma il viaggio ha inizio
con una delle mie grandi frustrazioni con lo sviluppo di software agile
Voglio dire, la rivoluzione agile ha avuto un grande impatto
ed è stato notevole e molto gratificante vedere l’impatto che ha avuto
Ma ci sono state frustrazioni
E c’è una frustazione particolarmente grande che mi colpisce
Ora, uno dei vantaggi di agile
è nei giorni precedenti al pensiero agile
avevamo questa idea che se volevi creare un software devi inventarlo
tutto quello che volevi fare
metterlo insieme in un documento eccezionale e copiarlo e creare software.
E sappiamo quanto bene ha funzionato.
ed è molto buono, ma il mondo agile dopo ha diviso le cose
rompe le cose in piccole unità indipendenti di capacità
spesso chiamato storie e poi costruisci quelle storie una alla volta
e costruendo le storie una alla volta
otteniamo molti vantaggi: siamo in grado di ottenere feedback su dove stiamo andando tutti,
siamo in grado di vedere i nostri progressi
e in particolare siamo in grado di guidare, siamo in grado di cambiare direzione man mano che impariamo
e questa è ovviamente una parte vitale di ciò di cui tratta l’intera faccenda
ma c’è ancora un problema qui
e il problema è che la freccia lì. L’idea che le storie
sono dati da un qualche tipo di ruolo di analista di business
consegnando quindi agli sviluppatori per la codifica
ma il team di sviluppo finisce per essere un passivo destinatario di storie
e mi imbatto in questo grande affare in diversi posti
sia in Thoughtworks che all’esterno
dove gli sviluppatori fondamentalmente si vedono come se fossimo un motore
per trasformare alcune storie, forse alcuni test approssimativi, in codice reale.
Costruiamo tutto ciò che ci viene detto di costruire, non siamo veramente coinvolti
nel pensare a quale sia la volontà per l’edificio.
E questo è molto contrario all’idea che era al centro di
praticamente tutti i fondatori agili.
Se ottieni un gruppo di persone da Snowbird insieme e dici
Cosa ne pensi, che, sai,
che gli sviluppatori dovrebbero semplicemente costruire ciò che gli è stato detto di costruire?
Saranno inorriditi!
E … quando arrivavamo con nomi agili …
hmm … suggerì Kent
perché al momento non avevamo il termine software agile.
Dovevamo venire con quale parola usiamo.
Abbiamo finito per scegliere agile, ma uno dei suggerimenti che Kent ha avuto,
era la parola conversazionale, perché pensava che l’essenza
di questo approccio sono state queste conversazioni tra il team di sviluppo
e gli uomini d’affari su tutti gli aspetti dello sviluppo del software
compreso ciò che dovrebbe essere costruito.
E l’idea qui
è che sviluppatori e analisti
dovrebbe collaborare insieme per decidere
quali storie dovrebbero essere costruite, anziché l’analista
nutrire roba, o il business, dare da mangiare agli sviluppatori, dovrebbe essere giusto
anche io, penso.
E un piccolo esempio di questo.
Penso che lo illustri abbastanza bene. C’è una storia
e questa non sarà storia da Amazon, dove uno degli sviluppatori ha pensato che
sarebbe una buona idea
a, quando le persone stanno lavorando nel carrello della spesa,
mettere ‘ti potrebbe piacere comprare così e così’. Sai, analizzando ciò che hanno comprato
Analizzando tutti i dati che hanno, alcuni articoli suggeriti che potresti voler aggiungere.
E l’uomo d’affari coinvolto ha detto “no, no, non lo facciamo perché …
… non vogliamo distrarre le persone mentre fanno shopping nei carrelli della spesa, giusto?
Perché, sai, qual è la cosa più importante per gli americani? Shopping,
esattamente, quindi sai, ‘concentrati sul carrello della spesa!’
Ora, essendo questo Amazon, lo sviluppatore ha detto
“No, penso che abbia torto” e così ha effettivamente costruito una versione del carrello
con le cose suggerite in là e ha eseguito test A / B.
E fu in grado di dimostrare, guardando i numeri,
che ha aumentato le entrate. E essendo Amazon, tu sai,
gli uomini d’affari hanno detto “bene, sì, non possiamo discutere con i numeri”, così loro
portato avanti. E ora è quella nozione di collaborazione.
Come sviluppatori di software
abbiamo familiarità con il mondo del software e cosa può fare il software
il che significa che possiamo inventare idee.
Non c’è una regola che dice che tutte le storie devono essere sviluppate dall’azienda.
È vero, penso che dovrebbero dare la priorità a loro
E dovrebbero avere il segnale finale che cosa viene costruito in quale ordine
ma le idee che ti vengono in mente sono spesso basate sulla collaborazione.
Ricordo una storia di, un primo progetto ThoughtWorks,
dove stiamo facendo qualcosa con il database
e hanno fatto un piccolo demo nella fase iniziale del processo, e questo è stato solo una dimostrazione
tutti abbiamo queste informazioni nel database. E stavano mostrando il cliente
e il cliente guarda i dati e dice:
“Aspetta, se hai questi dati lì,
potresti rispondere a queste domande per me? “
E hanno avuto una conversazione e lo sviluppatore stava pensando a query SQL,
e la persona d’affari stava pensando al processo aziendale
e hanno capito: sì, potevano farlo.
E ha detto, beh, non l’ho mai chiesto, ma in realtà se potessimo costruire questo,
che sembra essere banale,
che in realtà giustifica l’intero costo del progetto proprio lì.
Non ho mai pensato di venire con questa esigenza
solo nella conversazione è venuto insieme.
E così, storie conversazionali,
l’idea che dovremmo lavorare insieme e collaborare per creare ciò che costruiamo
è una parte fondamentale, penso a cosa dovrebbe essere agile.
E questo è, naturalmente, l’intera nozione di cose come il monitoraggio e i test AB.
Iniziamo ad esplorare ciò che dovrebbe essere costruito osservando realmente ciò che le persone fanno.
Questo è, penso, un grande passo avanti.
Ma per fare ciò, è importante che gli sviluppatori
avere una migliore conoscenza di cosa tratta il dominio.
Perché quella conoscenza è vitale per essere in grado di farlo.
E questa è una delle aree in cui, penso,
siamo stati un po ‘deludenti come comunità.
In questo non abbiamo messo abbastanza sforzi
nel tentativo di conoscere il dominio con cui lavoriamo.
Ricordo di aver parlato con un mio amico che era un progetto guidato da una squadra che ne faceva alcuni
lavoro scientifico davvero interessante sulla modellistica genetica
ed era molto deluso dal fatto che la maggior parte dei programmatori di questa squadra non lo fosse
interessato a saperne di più sulla genetica.
Non erano interessati alla scienza, volevano solo dirti cosa era stato costruito.
Per essere veramente efficace come sviluppatore di software, penso che tu debba capire quel dominio,
scoprire come fa clic e come funziona,
diventare esperto in quel dominio,
e poi,
puoi davvero influenzare quale sarebbe il software più utile da costruire in quel dominio.
Non conoscerai mai quanto l’esperto in quel dominio.
Quando lavoravo in assistenza sanitaria, sai,
nessuno mi chiederà di diventare un dottore
solo perché ho fatto alcuni lavori al computer nella zona
ma quella conoscenza che ho avuto era molto preziosa
nel collaborare su cosa fare in termini di software.
E infatti, quando la gente viene da me per un consiglio di carriera
e dicono “dovrei imparare Scala o JavaScript o Clojure …”
Dico bene che è meno importante sull’apprendimento delle lingue,
loro vanno e vengono …
e non sono poi così diversi quando si tratta di farlo.
Scopri il dominio in cui lavori.
Questa è un’abilità molto utile,
e anche se successivamente ti trasferisci in un dominio completamente diverso,
la conoscenza di come imparare i domini e come lavorare con loro
sarà qualcosa che sarà davvero prezioso per te.
E oltre alla conoscenza,
Penso che porti anche un’altra cosa, che è la responsabilità all’interno di quel dominio.
E qui, voglio sollevare un argomento di cui potresti aver sentito parlare.
qualcosa chiamato “Dark Patterns”.
“Dark Patterns” è un sito web che
si tratta davvero di aiutare le persone a utilizzare l’interfaccia utente.
incoraggiare gli utenti a fare cose che non sono nel loro interesse
Semplice esempio di questo:
immagina di nuovo con il carrello della spesa, stiamo acquistando alcuni articoli elettronici, lo sai
una nuova fotocamera o qualsiasi altra cosa.
E le persone che gestiscono il sito web dicono “oh, ha comprato una nuova fotocamera”
Bene, so cosa farò, metterò un’assicurazione per quella nuova macchina fotografica
e lo inserirò nel carrello, automaticamente.
L’utente non l’ha chiesto,
Non è stato offerto un popup
che dice “vuoi assicurazione?”
Quindi l’utente dice: “perché dovrei comprare un’assicurazione su qualcosa che posso permettermi di sostituire?”
“Questo è solo uno spinner di soldi per il rivenditore, no?”
No? Cosa invece fanno? Basta inserirlo in un carrello della spesa comunque.
Ora ovviamente potrei notare quell’articolo scioccante nel carrello della spesa
e rimuovilo, è perfettamente ok, lo rendono possibile.
Ma hanno messo una cosa nel carrello della spesa
senza chiedermelo deliberatamente.
Ora questo è manipolare un utente a fare qualcosa
probabilmente non è nel loro interesse.
La cosa simile è, se hai qualcosa dove,
“hey, iscriviti gratis!”
E poi ho questa ricorrente cosa da 30 dollari al mese
e lo rendono davvero difficile da cancellare.
Sai, hai questa forma e quella forma
e sai, metà del tempo in cui premi il pulsante
invia il pulsante per la cancellazione, ottieni un errore 500 …
Voglio dire, questo è spesso cattivo, e qualche volta è fatto deliberatamente.
Quelle cose sono schemi oscuri, e penso, noi come programmatori,
dobbiamo rendere esplicito il rifiuto attivo di questo.
Dobbiamo essere sostenitori dei nostri utenti.
E il mio punto qui è:
Se scrivi il codice per quel motivo scuro,
se hai scritto il codice che fa scivolare l’assicurazione nel carrello della spesa
senza che l’utente lo richieda.
Sei altrettanto responsabile
come la persona che ti ha chiesto di farlo.
Siamo responsabili per il software che scriviamo,
sia il bene che il male di ciò che accade lì dentro.
Ora non sto necessariamente dicendo, sai,
se qualcuno ti chiede di fare qualcosa del genere
dovresti lasciare automaticamente il tuo lavoro, altrimenti sei una persona cattiva.
Sai, so che tutti devono bilanciare un sacco di cose nella loro vita
e tutto il resto,
ma sei responsabile per la decisione di scrivere quel codice
e devi bilanciare quella responsabilità su tutto il resto.
Troppi sviluppatori prendono il punto di vista che è …
… non importa ciò che codice, seguo semplicemente gli ordini.
Ho appena scritto il codice di ciò che mi viene chiesto di fare.
Non penso che sia abbastanza buono.
Penso che sia importante che noi, come sviluppatori, diciamo
quello che facciamo è qualcosa di cui siamo responsabili.
Dobbiamo assumerci questa responsabilità.
Quindi, i modelli scuri che navigano in un caso ovvio di dove
dobbiamo pensare a noi stessi in modo diverso, e dire:
dobbiamo essere sostenitori dei nostri utenti.
Ma penso che vada anche oltre.
Voglio dire, finora ho parlato di un mondo relativamente piccolo
di utenti e analisti, alcuni programmatori …
sviluppo di software, creazione di cose …
Ma, naturalmente, quel software e i nostri utenti
stanno avendo un impatto sul mondo.
E anche noi, almeno in parte,
responsabile di tale impatto.
Dobbiamo dire quale impatto ha il nostro software sul mondo che ci circonda.
E questo può influenzare, ancora,
cosa scegliamo e dove scegliamo di lavorare.
Nei miei giorni più giovani ho trascorso un sacco di tempo a lavorare nel settore sanitario
e ho avuto l’opportunità e ho fatto qualche lavoro di consulenza nella City di Londra,
nel settore finanziario.
E volevo farlo, perché l’industria finanziaria è piuttosto interessante.
Sai, questi strani prodotti finanziari
cosa intellettualmente interessante su cui lavorare.
Ma avendo lavorato lì per un po ‘,
Mi sono reso conto che non volevo lavorare in quel tipo di posto.
Perché non sentivo davvero che quello che stavano facendo stava dando valore al mondo.
Si potrebbe dire dal modo in cui hanno trattato i loro clienti.
Per quanto sono preoccupati che fossero i clienti
un po ‘più delle persone da sfruttare, lo sai,
che cosa li vendiamo per ottenere una commissione per noi.
Non c’è mai nessun pensiero nelle loro teste
per quanto facile sarebbe davvero buono per loro.
Molto diverso quando lavoravo in ambito sanitario
dove i dottori e le infermiere con cui ho parlato
erano molto preoccupati di ciò che era nell’interesse del paziente per tutto il tempo.
Questo ha portato a una mia reazione che diceva:
“No, non penso di voler spendere il mio talento …
… sostenendo un settore e attività non penso che sia vantaggioso nel mondo “.
Ora siamo in una posizione privilegiata nello sviluppo del software.
Ora abbiamo comodo …
Possiamo facilmente ottenere facilmente posti di lavoro confortevoli
Sai, senza alcun pericolo coinvolto.
Non stiamo andando giù per le miniere o imballando carne o qualcosa del genere.
Non è probabile che lo sia, fare danni fisici a noi stessi.
Se potrebbe essere un po ‘dalla nostra parte.
Che in realtà non è qualcosa da banalizzare ma …
… è molto meglio che tagliarti il braccio.
Beh, voglio dire, questo è quello che succede in molte aree di confezionamento di carne,
in particolare negli Stati Uniti.
Sai, siamo ben pagati per quello che facciamo.
E penso che abbiamo un certo grado di responsabilità, diciamo:
Dove applicheremo i nostri talenti?
Perché, alla fine, siamo responsabili dell’uso dei nostri talenti
per, si spera, rendere il mondo un posto migliore.
Ora non sto necessariamente dicendo che tutti dovrebbero smettere di fare quello che stanno facendo
e vai a costruire ospedali in India o qualcosa del genere.
Ma dovremmo dire: “Quello che stiamo facendo è utile?”
Una volta ho parlato a malapena
e qualcuno è venuto da me dopo e ha detto:
“sai, sta davvero affrontando quello che stai dicendo, ma, sai …
.. Non sto facendo un lavoro particolarmente socialmente utile …
… Ho appena creato, giusto, il software della stampante. “
Prima ancora che potessi rispondere, il ragazzo alle loro spalle disse:
“Sì, ma il software della stampante è utile, dovevo solo comprare una casa …
… è stato davvero utile per me essere in grado di stampare tutte le forme per quella casa, sulla mia stampante …
… mi ha salvato un sacco di problemi, ha reso l’intero processo molto più semplice. “
Sai, qualcosa di umile come un software di stampa,
è roba preziosa, giusto?
È una cosa utile che migliora la vita delle persone.
D’altra parte, se stai scrivendo un software che dice
“Devo dire che siamo rimasti senza inchiostro quando abbiamo ancora un quarto di inchiostro.”
A proposito, questo è uno schema oscuro, quindi si tratterebbe di falso.
Ma il punto è che devi dire, non devi essere …
… contribuendo a una causa caritatevole o qualcosa del genere …
… per rendere il mondo un posto migliore.
Ma penso che sia importante per tutti riflettere su, sai,
in che modo il software che sto scrivendo ha un effetto sul mondo?
Va bene o no?
E prendiamo tutte decisioni individuali
su quali cose vorremmo sostenere e quali cose non dovremmo.
Ma ciò che è comune a tutti noi,
abbiamo la responsabilità,
Abbiamo combattuto, ci assumiamo la responsabilità
per le scelte che facciamo, in generale nelle nostre carriere.
Bene, l’ultima area di cui voglio parlare, per dire,
portare questa cosa di responsabilità, è …
… l’immagine molto grande.
Che impatto ha tutto il nostro software,
e la nostra programmazione e la nostra professione
avere sul mondo, in aggregato.
E ci sono due aree in cui sono davvero preoccupato per questo
e dove penso che noi, come professione,
è necessario lavorare molto più duramente per migliorare le cose.
Il primo di questi è l’atmosfera alienante
questo esiste e spinge via molte persone
sia dalla nostra professione che dall’uso del software.
L’esempio più ovvio di questo è il fatto che,
tutto quello che devi fare è guardarti intorno e dire a te stesso:
“Hmm, non ci sono molte donne qui piuttosto.”
Questo non è un buon segno.
Voglio dire, noi, quando sono entrato nel settore del software,
una delle cose che mi ha attratto del settore del software
era l’idea che fosse un mondo meritocratico, giusto?
Non importava che io venissi da una famiglia della classe lavoratrice
in una zona industriale della Gran Bretagna, lo sai, e io non ero, sai,
Ho avuto un’educazione abbastanza buona, ma, sai,
non è stato allevato con i raffinamenti che
lo sai, qualcuno più in classe avrebbe.
Che cosa è: “posso produrre un buon codice?”
Sai, quella qualità meritocratica è una cosa carina
e sarà una buona cosa vederlo più ampiamente nel mondo
e meno enfasi sulla ricchezza ereditata, sulla classe e sullo status
e più enfasi sul tipo di buon lavoro che puoi fare.
Ma qualsiasi affermazione che l’industria del software
è una meritocrazia, è piuttosto minato
quando il cinquanta per cento della popolazione è così gravemente sottorappresentata.
Oltre a ciò, questo significa che
c’è un sacco di talento davvero buono
che non stiamo entrando nella nostra professione,
che è un terribile spreco
sia per la nostra professione, e soprattutto, per le persone che, altrimenti
sarebbe un bene, sarebbe stato in grado di prendere parte a ciò che facciamo.
Ed è particolarmente aggravato dal fatto che molte persone
che vengono allontanati dal nostro settore, sono persone in gruppi
che hanno subito centinaia di anni di discriminazione.
E questo è vero per le donne,
è vero per gli afroamericani negli Stati Uniti
È vero per un sacco di persone con un cast più basso in India …
Dipende da dove ti trovi nel mondo,
su quali gruppi tendono ad essere spinti via,
ma è comune.
E dobbiamo combattere contro questo.
Voglio dire, non puoi non guardare ciò che succede nel web al momento
senza vedere molti casi in cui i gruppi vengono allontanati
e alienato, e dobbiamo lottare contro di esso.
Ed è qualcosa che siamo tutti responsabili di fare.
Il fatto che noi stessi, individualmente, potremmo non comportarci come cretini,
non significa che possiamo semplicemente ignorare il problema.
Questo è formulato da un generale australiano
reso famoso attraverso un video di Youtube, dice:
“Il comportamento che passi è il comportamento che accetti.”
E penso che sia molto vero.
Se permettiamo alle persone di essere persone su Internet, e spingiamo via vari gruppi,
siamo, alla fine, complici.
Quindi dobbiamo capire come smettere di farlo.
E questo non è solo all’interno del mondo professionale.
Quelle azioni anche nel nostro software.
Uno dei grandi problemi che le persone affrontano
è una molestia, ad esempio su Twitter.
E mi preoccupa, che gli ingegneri e gli scienziati dei dati su Twitter
non ho trovato il modo di provare a ridurre le molestie.
Voglio dire, possiamo inventare ogni sorta di modi intelligenti di targeting della pubblicità
Perché non possiamo usare almeno un po ‘di quella potenza del cervello …
… per capire come prevenire le molestie online?
Dovremmo farlo.
Questo è il mio primo problema
Dobbiamo fare qualcosa per l’atmosfera alienante nel nostro settore
Il secondo problema è la privacy su Internet
e il fatto che dobbiamo agire
per garantire che abbiamo una connessione Internet gratuita
dove noi persone possiamo collaborare
senza paura di persecuzioni da parte dei governi,
o imposta da gruppi criminali, ecc. ecc.
Non dirò molto di più su questo ora,
perché è un intero discorso che ho intenzione di dare con Eric più tardi
nella sezione “Difendere la connessione Internet gratuita”
e per favore vieni a quello se vuoi sentirci
fare molti più dettagli sul perché la privacy è importante
tutti noi che pensiamo di non aver nulla da nascondere o no
e cosa possiamo fare per risolverlo.
Quindi, torniamo a questa domanda:
Qual è il titolo di questa presentazione?
Come riassumo tutto questo?
Beh, praticamente tutto quello che ho detto in questi ultimi 20 minuti
è … non lo faremo, non pensiamo
che noi, in quanto sviluppatori, dovremmo essere solo scimmie di codice che traggono fuori codice.
Dovremmo essere una professione,
proprio come i medici sono una professione
o gli avvocati sono una professione
e dovremmo cercare questo tipo di status
in quello che facciamo e dovremmo anche assumerci le responsabilità
che questo status implica.
Ciò significa che dobbiamo impegnarci con il mondo,
respingere questo stereotipo di sviluppatori di software
essere persone che vivono in scantinati
e hanno appena alimentato la pizza sotto la porta ogni tanto, e dicono:
“No, possiamo impegnarci con il mondo,
possiamo aiutare a guidare il mondo in una direzione migliore “.
Voglio dire, il nostro software lo fa comunque,
ma spesso lo fa senza che gli sviluppatori giochino un ruolo attivo in questo.
Penso che gli sviluppatori dovrebbero svolgere un ruolo attivo in questo
siamo tutti persone brillanti, siamo ben istruiti,
speriamo abbia una visione ragionevole del modo in cui dovrebbe essere il mondo
e potenzialmente può agire da leader per aiutare il mondo a funzionare meglio.
Ma per farlo,
dobbiamo assumerci la responsabilità di fare un passo avanti e farlo.
E la mia richiesta a tutti voi,
è pensare ai modi in cui puoi farlo.
Piccolo o grande, individuale o combinato con altri.
Ma assumersi questa responsabilità
e agire come leader nel mondo.
Grazie.
ma qui voglio andare un po ‘in giro con te
non sarà necessariamente … Non voglio dirti dove stiamo andando
quindi di conseguenza non c’è un titolo chiaro, ma il viaggio ha inizio
con una delle mie grandi frustrazioni con lo sviluppo di software agile
Voglio dire, la rivoluzione agile ha avuto un grande impatto
ed è stato notevole e molto gratificante vedere l’impatto che ha avuto
Ma ci sono state frustrazioni
E c’è una frustazione particolarmente grande che mi colpisce
Ora, uno dei vantaggi di agile
è nei giorni precedenti al pensiero agile
avevamo questa idea che se volevi creare un software devi inventarlo
tutto quello che volevi fare
metterlo insieme in un documento eccezionale e copiarlo e creare software.
E sappiamo quanto bene ha funzionato.
ed è molto buono, ma il mondo agile dopo ha diviso le cose
rompe le cose in piccole unità indipendenti di capacità
spesso chiamato storie e poi costruisci quelle storie una alla volta
e costruendo le storie una alla volta
otteniamo molti vantaggi: siamo in grado di ottenere feedback su dove stiamo andando tutti,
siamo in grado di vedere i nostri progressi
e in particolare siamo in grado di guidare, siamo in grado di cambiare direzione man mano che impariamo
e questa è ovviamente una parte vitale di ciò di cui tratta l’intera faccenda
ma c’è ancora un problema qui
e il problema è che la freccia lì. L’idea che le storie
sono dati da un qualche tipo di ruolo di analista di business
consegnando quindi agli sviluppatori per la codifica
ma il team di sviluppo finisce per essere un passivo destinatario di storie
e mi imbatto in questo grande affare in diversi posti
sia in Thoughtworks che all’esterno
dove gli sviluppatori fondamentalmente si vedono come se fossimo un motore
per trasformare alcune storie, forse alcuni test approssimativi, in codice reale.
Costruiamo tutto ciò che ci viene detto di costruire, non siamo veramente coinvolti
nel pensare a quale sia la volontà per l’edificio.
E questo è molto contrario all’idea che era al centro di
praticamente tutti i fondatori agili.
Se ottieni un gruppo di persone da Snowbird insieme e dici
Cosa ne pensi, che, sai,
che gli sviluppatori dovrebbero semplicemente costruire ciò che gli è stato detto di costruire?
Saranno inorriditi!
E … quando arrivavamo con nomi agili …
hmm … suggerì Kent
perché al momento non avevamo il termine software agile.
Dovevamo venire con quale parola usiamo.
Abbiamo finito per scegliere agile, ma uno dei suggerimenti che Kent ha avuto,
era la parola conversazionale, perché pensava che l’essenza
di questo approccio sono state queste conversazioni tra il team di sviluppo
e gli uomini d’affari su tutti gli aspetti dello sviluppo del software
compreso ciò che dovrebbe essere costruito.
E l’idea qui
è che sviluppatori e analisti
dovrebbe collaborare insieme per decidere
quali storie dovrebbero essere costruite, anziché l’analista
nutrire roba, o il business, dare da mangiare agli sviluppatori, dovrebbe essere giusto
anche io, penso.
E un piccolo esempio di questo.
Penso che lo illustri abbastanza bene. C’è una storia
e questa non sarà storia da Amazon, dove uno degli sviluppatori ha pensato che
sarebbe una buona idea
a, quando le persone stanno lavorando nel carrello della spesa,
mettere ‘ti potrebbe piacere comprare così e così’. Sai, analizzando ciò che hanno comprato
Analizzando tutti i dati che hanno, alcuni articoli suggeriti che potresti voler aggiungere.
E l’uomo d’affari coinvolto ha detto “no, no, non lo facciamo perché …
… non vogliamo distrarre le persone mentre fanno shopping nei carrelli della spesa, giusto?
Perché, sai, qual è la cosa più importante per gli americani? Shopping,
esattamente, quindi sai, ‘concentrati sul carrello della spesa!’
Ora, essendo questo Amazon, lo sviluppatore ha detto
“No, penso che abbia torto” e così ha effettivamente costruito una versione del carrello
con le cose suggerite in là e ha eseguito test A / B.
E fu in grado di dimostrare, guardando i numeri,
che ha aumentato le entrate. E essendo Amazon, tu sai,
gli uomini d’affari hanno detto “bene, sì, non possiamo discutere con i numeri”, così loro
portato avanti. E ora è quella nozione di collaborazione.
Come sviluppatori di software
abbiamo familiarità con il mondo del software e cosa può fare il software
il che significa che possiamo inventare idee.
Non c’è una regola che dice che tutte le storie devono essere sviluppate dall’azienda.
È vero, penso che dovrebbero dare la priorità a loro
E dovrebbero avere il segnale finale che cosa viene costruito in quale ordine
ma le idee che ti vengono in mente sono spesso basate sulla collaborazione.
Ricordo una storia di, un primo progetto ThoughtWorks,
dove stiamo facendo qualcosa con il database
e hanno fatto un piccolo demo nella fase iniziale del processo, e questo è stato solo una dimostrazione
tutti abbiamo queste informazioni nel database. E stavano mostrando il cliente
e il cliente guarda i dati e dice:
“Aspetta, se hai questi dati lì,
potresti rispondere a queste domande per me? “
E hanno avuto una conversazione e lo sviluppatore stava pensando a query SQL,
e la persona d’affari stava pensando al processo aziendale
e hanno capito: sì, potevano farlo.
E ha detto, beh, non l’ho mai chiesto, ma in realtà se potessimo costruire questo,
che sembra essere banale,
che in realtà giustifica l’intero costo del progetto proprio lì.
Non ho mai pensato di venire con questa esigenza
solo nella conversazione è venuto insieme.
E così, storie conversazionali,
l’idea che dovremmo lavorare insieme e collaborare per creare ciò che costruiamo
è una parte fondamentale, penso a cosa dovrebbe essere agile.
E questo è, naturalmente, l’intera nozione di cose come il monitoraggio e i test AB.
Iniziamo ad esplorare ciò che dovrebbe essere costruito osservando realmente ciò che le persone fanno.
Questo è, penso, un grande passo avanti.
Ma per fare ciò, è importante che gli sviluppatori
avere una migliore conoscenza di cosa tratta il dominio.
Perché quella conoscenza è vitale per essere in grado di farlo.
E questa è una delle aree in cui, penso,
siamo stati un po ‘deludenti come comunità.
In questo non abbiamo messo abbastanza sforzi
nel tentativo di conoscere il dominio con cui lavoriamo.
Ricordo di aver parlato con un mio amico che era un progetto guidato da una squadra che ne faceva alcuni
lavoro scientifico davvero interessante sulla modellistica genetica
ed era molto deluso dal fatto che la maggior parte dei programmatori di questa squadra non lo fosse
interessato a saperne di più sulla genetica.
Non erano interessati alla scienza, volevano solo dirti cosa era stato costruito.
Per essere veramente efficace come sviluppatore di software, penso che tu debba capire quel dominio,
scoprire come fa clic e come funziona,
diventare esperto in quel dominio,
e poi,
puoi davvero influenzare quale sarebbe il software più utile da costruire in quel dominio.
Non conoscerai mai quanto l’esperto in quel dominio.
Quando lavoravo in assistenza sanitaria, sai,
nessuno mi chiederà di diventare un dottore
solo perché ho fatto alcuni lavori al computer nella zona
ma quella conoscenza che ho avuto era molto preziosa
nel collaborare su cosa fare in termini di software.
E infatti, quando la gente viene da me per un consiglio di carriera
e dicono “dovrei imparare Scala o JavaScript o Clojure …”
Dico bene che è meno importante sull’apprendimento delle lingue,
loro vanno e vengono …
e non sono poi così diversi quando si tratta di farlo.
Scopri il dominio in cui lavori.
Questa è un’abilità molto utile,
e anche se successivamente ti trasferisci in un dominio completamente diverso,
la conoscenza di come imparare i domini e come lavorare con loro
sarà qualcosa che sarà davvero prezioso per te.
E oltre alla conoscenza,
Penso che porti anche un’altra cosa, che è la responsabilità all’interno di quel dominio.
E qui, voglio sollevare un argomento di cui potresti aver sentito parlare.
qualcosa chiamato “Dark Patterns”.
“Dark Patterns” è un sito web che
si tratta davvero di aiutare le persone a utilizzare l’interfaccia utente.
incoraggiare gli utenti a fare cose che non sono nel loro interesse
Semplice esempio di questo:
immagina di nuovo con il carrello della spesa, stiamo acquistando alcuni articoli elettronici, lo sai
una nuova fotocamera o qualsiasi altra cosa.
E le persone che gestiscono il sito web dicono “oh, ha comprato una nuova fotocamera”
Bene, so cosa farò, metterò un’assicurazione per quella nuova macchina fotografica
e lo inserirò nel carrello, automaticamente.
L’utente non l’ha chiesto,
Non è stato offerto un popup
che dice “vuoi assicurazione?”
Quindi l’utente dice: “perché dovrei comprare un’assicurazione su qualcosa che posso permettermi di sostituire?”
“Questo è solo uno spinner di soldi per il rivenditore, no?”
No? Cosa invece fanno? Basta inserirlo in un carrello della spesa comunque.
Ora ovviamente potrei notare quell’articolo scioccante nel carrello della spesa
e rimuovilo, è perfettamente ok, lo rendono possibile.
Ma hanno messo una cosa nel carrello della spesa
senza chiedermelo deliberatamente.
Ora questo è manipolare un utente a fare qualcosa
probabilmente non è nel loro interesse.
La cosa simile è, se hai qualcosa dove,
“hey, iscriviti gratis!”
E poi ho questa ricorrente cosa da 30 dollari al mese
e lo rendono davvero difficile da cancellare.
Sai, hai questa forma e quella forma
e sai, metà del tempo in cui premi il pulsante
invia il pulsante per la cancellazione, ottieni un errore 500 …
Voglio dire, questo è spesso cattivo, e qualche volta è fatto deliberatamente.
Quelle cose sono schemi oscuri, e penso, noi come programmatori,
dobbiamo rendere esplicito il rifiuto attivo di questo.
Dobbiamo essere sostenitori dei nostri utenti.
E il mio punto qui è:
Se scrivi il codice per quel motivo scuro,
se hai scritto il codice che fa scivolare l’assicurazione nel carrello della spesa
senza che l’utente lo richieda.
Sei altrettanto responsabile
come la persona che ti ha chiesto di farlo.
Siamo responsabili per il software che scriviamo,
sia il bene che il male di ciò che accade lì dentro.
Ora non sto necessariamente dicendo, sai,
se qualcuno ti chiede di fare qualcosa del genere
dovresti lasciare automaticamente il tuo lavoro, altrimenti sei una persona cattiva.
Sai, so che tutti devono bilanciare un sacco di cose nella loro vita
e tutto il resto,
ma sei responsabile per la decisione di scrivere quel codice
e devi bilanciare quella responsabilità su tutto il resto.
Troppi sviluppatori prendono il punto di vista che è …
… non importa ciò che codice, seguo semplicemente gli ordini.
Ho appena scritto il codice di ciò che mi viene chiesto di fare.
Non penso che sia abbastanza buono.
Penso che sia importante che noi, come sviluppatori, diciamo
quello che facciamo è qualcosa di cui siamo responsabili.
Dobbiamo assumerci questa responsabilità.
Quindi, i modelli scuri che navigano in un caso ovvio di dove
dobbiamo pensare a noi stessi in modo diverso, e dire:
dobbiamo essere sostenitori dei nostri utenti.
Ma penso che vada anche oltre.
Voglio dire, finora ho parlato di un mondo relativamente piccolo
di utenti e analisti, alcuni programmatori …
sviluppo di software, creazione di cose …
Ma, naturalmente, quel software e i nostri utenti
stanno avendo un impatto sul mondo.
E anche noi, almeno in parte,
responsabile di tale impatto.
Dobbiamo dire quale impatto ha il nostro software sul mondo che ci circonda.
E questo può influenzare, ancora,
cosa scegliamo e dove scegliamo di lavorare.
Nei miei giorni più giovani ho trascorso un sacco di tempo a lavorare nel settore sanitario
e ho avuto l’opportunità e ho fatto qualche lavoro di consulenza nella City di Londra,
nel settore finanziario.
E volevo farlo, perché l’industria finanziaria è piuttosto interessante.
Sai, questi strani prodotti finanziari
cosa intellettualmente interessante su cui lavorare.
Ma avendo lavorato lì per un po ‘,
Mi sono reso conto che non volevo lavorare in quel tipo di posto.
Perché non sentivo davvero che quello che stavano facendo stava dando valore al mondo.
Si potrebbe dire dal modo in cui hanno trattato i loro clienti.
Per quanto sono preoccupati che fossero i clienti
un po ‘più delle persone da sfruttare, lo sai,
che cosa li vendiamo per ottenere una commissione per noi.
Non c’è mai nessun pensiero nelle loro teste
per quanto facile sarebbe davvero buono per loro.
Molto diverso quando lavoravo in ambito sanitario
dove i dottori e le infermiere con cui ho parlato
erano molto preoccupati di ciò che era nell’interesse del paziente per tutto il tempo.
Questo ha portato a una mia reazione che diceva:
“No, non penso di voler spendere il mio talento …
… sostenendo un settore e attività non penso che sia vantaggioso nel mondo “.
Ora siamo in una posizione privilegiata nello sviluppo del software.
Ora abbiamo comodo …
Possiamo facilmente ottenere facilmente posti di lavoro confortevoli
Sai, senza alcun pericolo coinvolto.
Non stiamo andando giù per le miniere o imballando carne o qualcosa del genere.
Non è probabile che lo sia, fare danni fisici a noi stessi.
Se potrebbe essere un po ‘dalla nostra parte.
Che in realtà non è qualcosa da banalizzare ma …
… è molto meglio che tagliarti il braccio.
Beh, voglio dire, questo è quello che succede in molte aree di confezionamento di carne,
in particolare negli Stati Uniti.
Sai, siamo ben pagati per quello che facciamo.
E penso che abbiamo un certo grado di responsabilità, diciamo:
Dove applicheremo i nostri talenti?
Perché, alla fine, siamo responsabili dell’uso dei nostri talenti
per, si spera, rendere il mondo un posto migliore.
Ora non sto necessariamente dicendo che tutti dovrebbero smettere di fare quello che stanno facendo
e vai a costruire ospedali in India o qualcosa del genere.
Ma dovremmo dire: “Quello che stiamo facendo è utile?”
Una volta ho parlato a malapena
e qualcuno è venuto da me dopo e ha detto:
“sai, sta davvero affrontando quello che stai dicendo, ma, sai …
.. Non sto facendo un lavoro particolarmente socialmente utile …
… Ho appena creato, giusto, il software della stampante. “
Prima ancora che potessi rispondere, il ragazzo alle loro spalle disse:
“Sì, ma il software della stampante è utile, dovevo solo comprare una casa …
… è stato davvero utile per me essere in grado di stampare tutte le forme per quella casa, sulla mia stampante …
… mi ha salvato un sacco di problemi, ha reso l’intero processo molto più semplice. “
Sai, qualcosa di umile come un software di stampa,
è roba preziosa, giusto?
È una cosa utile che migliora la vita delle persone.
D’altra parte, se stai scrivendo un software che dice
“Devo dire che siamo rimasti senza inchiostro quando abbiamo ancora un quarto di inchiostro.”
A proposito, questo è uno schema oscuro, quindi si tratterebbe di falso.
Ma il punto è che devi dire, non devi essere …
… contribuendo a una causa caritatevole o qualcosa del genere …
… per rendere il mondo un posto migliore.
Ma penso che sia importante per tutti riflettere su, sai,
in che modo il software che sto scrivendo ha un effetto sul mondo?
Va bene o no?
E prendiamo tutte decisioni individuali
su quali cose vorremmo sostenere e quali cose non dovremmo.
Ma ciò che è comune a tutti noi,
abbiamo la responsabilità,
Abbiamo combattuto, ci assumiamo la responsabilità
per le scelte che facciamo, in generale nelle nostre carriere.
Bene, l’ultima area di cui voglio parlare, per dire,
portare questa cosa di responsabilità, è …
… l’immagine molto grande.
Che impatto ha tutto il nostro software,
e la nostra programmazione e la nostra professione
avere sul mondo, in aggregato.
E ci sono due aree in cui sono davvero preoccupato per questo
e dove penso che noi, come professione,
è necessario lavorare molto più duramente per migliorare le cose.
Il primo di questi è l’atmosfera alienante
questo esiste e spinge via molte persone
sia dalla nostra professione che dall’uso del software.
L’esempio più ovvio di questo è il fatto che,
tutto quello che devi fare è guardarti intorno e dire a te stesso:
“Hmm, non ci sono molte donne qui piuttosto.”
Questo non è un buon segno.
Voglio dire, noi, quando sono entrato nel settore del software,
una delle cose che mi ha attratto del settore del software
era l’idea che fosse un mondo meritocratico, giusto?
Non importava che io venissi da una famiglia della classe lavoratrice
in una zona industriale della Gran Bretagna, lo sai, e io non ero, sai,
Ho avuto un’educazione abbastanza buona, ma, sai,
non è stato allevato con i raffinamenti che
lo sai, qualcuno più in classe avrebbe.
Che cosa è: “posso produrre un buon codice?”
Sai, quella qualità meritocratica è una cosa carina
e sarà una buona cosa vederlo più ampiamente nel mondo
e meno enfasi sulla ricchezza ereditata, sulla classe e sullo status
e più enfasi sul tipo di buon lavoro che puoi fare.
Ma qualsiasi affermazione che l’industria del software
è una meritocrazia, è piuttosto minato
quando il cinquanta per cento della popolazione è così gravemente sottorappresentata.
Oltre a ciò, questo significa che
c’è un sacco di talento davvero buono
che non stiamo entrando nella nostra professione,
che è un terribile spreco
sia per la nostra professione, e soprattutto, per le persone che, altrimenti
sarebbe un bene, sarebbe stato in grado di prendere parte a ciò che facciamo.
Ed è particolarmente aggravato dal fatto che molte persone
che vengono allontanati dal nostro settore, sono persone in gruppi
che hanno subito centinaia di anni di discriminazione.
E questo è vero per le donne,
è vero per gli afroamericani negli Stati Uniti
È vero per un sacco di persone con un cast più basso in India …
Dipende da dove ti trovi nel mondo,
su quali gruppi tendono ad essere spinti via,
ma è comune.
E dobbiamo combattere contro questo.
Voglio dire, non puoi non guardare ciò che succede nel web al momento
senza vedere molti casi in cui i gruppi vengono allontanati
e alienato, e dobbiamo lottare contro di esso.
Ed è qualcosa che siamo tutti responsabili di fare.
Il fatto che noi stessi, individualmente, potremmo non comportarci come cretini,
non significa che possiamo semplicemente ignorare il problema.
Questo è formulato da un generale australiano
reso famoso attraverso un video di Youtube, dice:
“Il comportamento che passi è il comportamento che accetti.”
E penso che sia molto vero.
Se permettiamo alle persone di essere persone su Internet, e spingiamo via vari gruppi,
siamo, alla fine, complici.
Quindi dobbiamo capire come smettere di farlo.
E questo non è solo all’interno del mondo professionale.
Quelle azioni anche nel nostro software.
Uno dei grandi problemi che le persone affrontano
è una molestia, ad esempio su Twitter.
E mi preoccupa, che gli ingegneri e gli scienziati dei dati su Twitter
non ho trovato il modo di provare a ridurre le molestie.
Voglio dire, possiamo inventare ogni sorta di modi intelligenti di targeting della pubblicità
Perché non possiamo usare almeno un po ‘di quella potenza del cervello …
… per capire come prevenire le molestie online?
Dovremmo farlo.
Questo è il mio primo problema
Dobbiamo fare qualcosa per l’atmosfera alienante nel nostro settore
Il secondo problema è la privacy su Internet
e il fatto che dobbiamo agire
per garantire che abbiamo una connessione Internet gratuita
dove noi persone possiamo collaborare
senza paura di persecuzioni da parte dei governi,
o imposta da gruppi criminali, ecc. ecc.
Non dirò molto di più su questo ora,
perché è un intero discorso che ho intenzione di dare con Eric più tardi
nella sezione “Difendere la connessione Internet gratuita”
e per favore vieni a quello se vuoi sentirci
fare molti più dettagli sul perché la privacy è importante
tutti noi che pensiamo di non aver nulla da nascondere o no
e cosa possiamo fare per risolverlo.
Quindi, torniamo a questa domanda:
Qual è il titolo di questa presentazione?
Come riassumo tutto questo?
Beh, praticamente tutto quello che ho detto in questi ultimi 20 minuti
è … non lo faremo, non pensiamo
che noi, in quanto sviluppatori, dovremmo essere solo scimmie di codice che traggono fuori codice.
Dovremmo essere una professione,
proprio come i medici sono una professione
o gli avvocati sono una professione
e dovremmo cercare questo tipo di status
in quello che facciamo e dovremmo anche assumerci le responsabilità
che questo status implica.
Ciò significa che dobbiamo impegnarci con il mondo,
respingere questo stereotipo di sviluppatori di software
essere persone che vivono in scantinati
e hanno appena alimentato la pizza sotto la porta ogni tanto, e dicono:
“No, possiamo impegnarci con il mondo,
possiamo aiutare a guidare il mondo in una direzione migliore “.
Voglio dire, il nostro software lo fa comunque,
ma spesso lo fa senza che gli sviluppatori giochino un ruolo attivo in questo.
Penso che gli sviluppatori dovrebbero svolgere un ruolo attivo in questo
siamo tutti persone brillanti, siamo ben istruiti,
speriamo abbia una visione ragionevole del modo in cui dovrebbe essere il mondo
e potenzialmente può agire da leader per aiutare il mondo a funzionare meglio.
Ma per farlo,
dobbiamo assumerci la responsabilità di fare un passo avanti e farlo.
E la mia richiesta a tutti voi,
è pensare ai modi in cui puoi farlo.
Piccolo o grande, individuale o combinato con altri.
Ma assumersi questa responsabilità
e agire come leader nel mondo.
Grazie.
Please follow and like us: