際際滷

際際滷Share a Scribd company logo
@drpicox
1
We rule the world!
s el nostre poder,
per嘆 tamb辿 la nostra
responsabilitat.
Penseu una cosa, qui ent辿n de codi,
ent辿n del que est escrit i ent辿n el
que est fent, sou vosaltres. Si
vosaltres li dieu al vostre cap que
alguna cosa cal canviar-la, el vostre
cap pot contestar el que sigui, que al
final, us acabar fent cas perqu竪
vosaltres enteneu el problema. I ell
no. Vosaltres maneu.
BY @DRPICOX
@drpicox
2
Recordeu quan vrem
parlar d'aquesta foto?
Recordeu que surt a la
fotografia?
Exacte. s un accident
del 737 Max 8, un dels
models d'avions que es
va estavellar fins a dues
vegades per culpa d'un
error software. Va matar
m辿s de 300 persones.
Que creieu que li va
passar als responsables?
@drpicox
3
Doncs res... per ara.
L'avi坦 va ser aprovat pel
Govern dels EUA, hi ha
molta gent amb poder
implicada. Per嘆, ja se
senten les veus que
demanen pres坦. s
q端esti坦 de temps que
aix嘆 canvi誰.
@drpicox
4
束This was not a
corporate decision, from my
point of view, and to my best
knowledge today. This was a couple
of software engineers who put this
in for whatever reasons.損
I aix嘆 ho recordeu? El cas de
Volkswagen que amb software va
fer trampes i falsificar proves de
contaminaci坦? Al principi van
passar, i els cotxes es van vendre...
per嘆 aix嘆 va desfermar la ira dels
responsables als EUA. Malgrat que
al principi van passar les proves i
els cotxes van ser aprovats, van
decidir trobar als culpables i fer-los
pagar per enganyar al govern.
I el directiu de Volkswagen,
declarant davant del
Congr辿s dels EUA no se li
acudeix una altra cosa que
marcar com a responsables a
qui va picar el codi i rentar-
se les mans. I sabeu que? El
van escoltar. Ell va anar a
pres坦, per嘆 no va ser l'炭nic.
@drpicox
5
La pena m辿s gran la va pagar
l'enginyer en cap que treballava a
Alemanya. Malgrat el jutge
recon竪ixer que no era el cervell de
l'operaci坦, s鱈 que considera que es
va mantenir en la posici坦 de forma
molt c嘆moda sense parar-ho i
cobrant els seus 350.000$ l'any.
@drpicox
6
Tots dos casos han requerit que
els informtics col揃laboressin i
fossin c嘆mplices en l'escriptura
de software que mata gent, o que
fa trampes i trenca l'acord social
entre les persones creant
malestar i desconfian巽a.
Per嘆 tenim el poder d'aturar-ho. I
si tenim el poder d'aturar-ho,
tenim el deure de fer-ho. Per嘆 com
ho podem fer? Per un costat ens
arrisquem a ser despatxats si no
ens avenim amb les ordres, per嘆
per l'altra part, potser 辿s un error
nostre el que mata gent. Com ho
podem fer?
La nostra no 辿s la primera
professi坦 que es troba davant
d'aquest problema. No 辿s la
primera professi坦 que necessita
un mecanisme per poder evitar
que ens obliguin a fer coses poc
竪tiques, o que malgrat que fem
tot el que estigui en les nostres
mans, podem matar a alg炭.
La primera professi坦 va ser la de
medicina, i ja per aix嘆, en 竪poca
dels grecs, es va introduir el
jurament hipocrtic.
El jurament hipocrtic va permetre als metges rebutjar prctiques de
tortura o recerca de guerra que malmetien la salut de les persones.
Tamb辿 els va permetre justificar que malgrat que un pacient mor鱈s,
havien fet tot el que havien pogut. Com poder fer el mateix nosaltres?
@drpicox
7
TEST DRIVEN DEVELOPMENT
 You are not allowed to write any production code unless
it is to make a failing unit test pass.

 You are not allowed to write any more of a unit test than
is suf
fi
cient to fail; and compilation failures are failures.

 You are not allowed to write any more production code
than is suf
fi
cient to pass the one failing unit test.
Doncs el TDD va ser un dels primers intents d'aconseguir aquest jurament.
Amb el TDD pots justificar que has fet tot lo possible per a que el programa
funcioni correctament. Que has seguit tots els passos i no t'has deixat cap.
Que si no ha funcionat, 辿s perqu竪 el problema va m辿s enll de tota previsi坦.
Per嘆 faltava una part, la nostra relaci坦 amb la
societat, i igual que el metge amb el pacient, la
nostra relaci坦 amb el nostre client.
@drpicox
8
AGILE MANIFESTO
 Individuals and interactions油

over processes and tools


 Working software油

over comprehensive documentation


 Customer collaboration油

over contract negotiation


 Responding to change油

over following a plan
I aqu鱈 va apar竪ixer l'Agile. Els
principis de l'Agile. On
principi vol dir "Regla de
conducta". El codi que d坦na
uns m鱈nims a tot professional
a relacionar-se de forma
adequada amb el seu client.
Perqu竪 no 辿s tan sols no
lesionar f鱈sicament a alg炭,
tamb辿 辿s no lesionar-lo
moralment o econ嘆micament.
@drpicox
9
SOFTWARE CRAFTSMANSHIP MANIFESTO
 Not only working software,

but also well-crafted software


 Not only responding to change,

but also steadily adding value


 Not only individuals and interactions,

but also a community of professionals


 Not only customer collaboration,

but also productive partnerships
Well-crafted software, cal
invertir el temps que calgui per
fer-ho ben fet. L'excusa 辿s per
dem no serveix.
Per嘆 l'Agile va resultar insuficient en uns casos, i
malinterpretats en altres. I va apar竪ixer el Software
Craftsmanship. Aquest demana anar m辿s enll del deure.
Res de grans refactors i fer el cranc.
Sempre cal afegir valor, usar els
patrons correctes al moment correcte.
Lo nou no pot malmetre lo antic.
No coneixia aquella
tecnologia no 辿s excusa. Som
tots una comunitat, tots ens
recolzem entre nosaltres.
Compartim les novetats, i
ajudem a qui obliguen a fer
coses poc 竪tiques.
I el nostre cap no 辿s el nostre cap, 辿s el nostre soci. No 辿s
un 辿sser superior intocable. El seu 竪xit 辿s el nostre 竪xit,
el seu fracs 辿s el nostre. Hem de tractar-lo d'igual a
igual, fer-li saber el que t辿 i aturar-lo on toca.
@drpicox
10
THE CUSTOMER BILL OF RIGHTS
 You have the right to an overall plan and to know what can be
accomplished when and at what cost.


 You have the right to get the most possible value out of every iteration.


 You have the right to see progress in a running system, proven to work
by passing repeatable tests that you specify.


 You have the right to change your mind, to substitute functionality, and
to change priorities without paying exorbitant costs.


 You have the right to be informed of schedule and estimate changes, in
time to choose how to reduce the scope to meet a required date. You can
cancel at any time and be left with a useful working system re
fl
ecting
investment to date.
Aquest 辿s l'炭ltim pas d'aquesta evoluci坦, revoluci坦, que ha
esdevingut els 炭ltims anys. Igual que la carta de drets dels EUA,
els professionals d'all han comen巽at a redactar la carta de drets
pels informtics, i com en aquesta pgina, pels seus clients. Que
estem obligats a fer? Que estem obligats moralment a donar?
I que diu? Que pot saber que i amb quin cost. Treure el mxim profit de cada iteraci坦. Que li farem
tests repetibles! I que els especifica ell. Que res de documents, les coses s'han de veure. Que ens pot
demanar canvis sense sobrecost, el t鱈pic truc quan no vols fer algo, posar un preu rid鱈culament
alt. I si s'atura abans, el que ha quedat, encara que no fos el resultat, cal que tingui valor.
@drpicox
11
THE DEVELOPER BILL OF RIGHTS
 You have the right to know what is needed with clear
declarations of priority.


 You have the right to produce high-quality work at all times.


 You have the right to ask for and receive help from peers,
managers, and customers.


 You have the right to make and update your own estimates.


 You have the right to accept your responsibilities instead of
having them assigned to you.
I ara s鱈, per protegir-nos directament. Volem les prioritats, que no ens tornin bojos. Poden
canviar, per嘆 cal que ens diguin clarament quines s坦n les prioritats. Que ens ho facin entendre.
Volem treballar amb mxima qualitat. No ens poden
obligar fer les coses malament per anar de pressa o
retallar costos. No poden obligar-nos a perjudicar la
nostra reputaci坦 o jugar-nos anar a pres坦.
Tots som una comunitat,
professionals m辿s clients. Cal
que ens ajudem entre tots.
Nosaltres tenim el poder i
nosaltres podem estimar els
costos, i tamb辿 canviar quan cal.
Ning炭 ens pot obligar acceptar
unes estimacions diferents.
I finalment, nosaltres tenim el dret de decidir si acceptem o no una
feina. No ens la poden assignar, ens l'autoassignem. I com hem
vist, els jutges concorden amb aix嘆. s la nostra responsabilitat.
@drpicox
12
Si penseu que som aliens a tot aix嘆, el 20 de setembre de 2017, a Catalunya,
van oc坦rrer uns fets que van trasbalsar a tota la comunitat de professionals.
Aquell dia, molts professionals, alguns amb amenaces legals, altres a punta d'arma
de foc, van ser obligats a cometre actes que van en contra aquestes cartes de drets.
Alguns d'ells es van veure obligats a executar ordres que ells creien
immorals, altres ordres que contravenien els seus contractes, alguns
d'ells, fins i tot ordres que contravenien lleis i acords internacionals.
I fins i tot havent col揃laborat, com tenen el poder de canviar les coses
en qualsevol moment, una desena d'ells van ser empresonats i a誰llats
de tothom durant tres dies. Tres dies en qu竪 la fam鱈lia no va saber ni
tan sols si el pare o la mare dels seus nens eren vius o morts.
L' INFORMTIC S
CONSIDERA UNA
ARMA DE GUERRA I
NO T DRETS.
 Diuen que el passat 1 doctubre va comen巽ar la primera Ciberguerra
de la Uni坦 Europea


 LISOC (Internet Society) carrega contra la censura dinternet que viu
Catalunya


 Els bots russos entren en la campanya pel refer竪ndum l1 doctubre


 Qui s坦n els 15 detinguts?


 Ja nhi ha prou!


 Com fer un pa鱈s ciberprotegit


 Simplement llibertat


 DotCat Registry Of
fi
ces Raided by Spanish Police
@drpicox
13
+
ETHICS TESTING
Tota la feina est per fer. Hem d'establir la carta de drets i seguir-la. Cal
aconseguir fer valer els nostres valors i la nostra professionalitat. s
una professi坦 nova i hem d'aconseguir els mateixos drets i deures que
tenen metges, advocats, arquitectes i altres enginyers.
I aix嘆 辿s la suma de dues parts.
Per un costat hem de ser moralment impecables.
No tan sols amb els nostres principis, sin坦
tamb辿 amb els que ens rodegen.
I per l'altre costat hem de ser t竪cnicament excel揃lents. I aix嘆 nom辿s ho
aconseguim amb Testing. s impensable aspirar a un reconeixement
professional si com a col揃lectiu no usem el TDD de forma impecable.
@drpicox
"TESTING SHOWS
THE PRESENCE,


NOT THE ABSENCE
OF BUGS"
Edsger W. Dijkstra, 1968
14
Vaig
inventar la programaci坦 estructurada en qu竪
es prohibeix el Goto. Aix嘆 ho vaig fer perqu竪 vaig descobrir,
que sense un Goto, puc demostrar amb regles matemtiques que
qualsevol programa funciona i fa el que ha de fer. Amb absoluta certesa.
Imagino un futur on tenim una llibreria d'algoritmes, demostrats
formalment com teoremes matemtics, que podem usar i
compondre per crear aplicacions lliure de bugs.
Un futur sense cap bug.
I per aix嘆 no
m'agrada el testing, no em
serveix, amb testing mai
demostrarem que un
programa no te bugs.
I aix嘆 tampoc els hi va agradar als acad竪mics, i
per aix嘆 la universitat mai va apostar pel testing.
Per嘆 el mercat va abandonar aquesta via. Per qu竪?
Perqu竪 va serguir el testing? Quin valor t辿?
@drpicox
15
SOFTWARE IS SCIENCE
I aix嘆 辿s ci竪ncia. Observaci坦.
No podem verificar aplicacions formalment
perqu竪 ni tan sols els clients tenen clar el que
volen. Cal descobrir quines s坦n les funcionalitats
i com s'ha de comportar el nostre producte.
Testing.
Ens mou els mateixos valors que a la ci竪ncia:


el m竪tode cient鱈fic.
@drpicox
SOFTWARE IS SCIENCE
LEAN
16
IDEAS
CODE
DATA
BUILD
Unit tests


Usability tests


Continous integration


Refactoring
MEASURE
Split Tests


Funnel analysis


Continuous deployment
LEARN
Split Tests


Interviews


5 Whys


Falsifiable Hypothesis


Smoke tests
I com s'aplica el m竪tode cient鱈fic a la nostra professi坦?


Amb Lean.
Sigui essent nosaltres el responsable, o fent
"partnership" amb els nostres clients (o
caps), hem d'aplicar els valors de Lean.
Aix嘆 vol dir testing automtic, mantenir el
codi amb qualitat, compilat i desplegament
automtic i continu. Recollir dades per
obtenir evid竪ncies, no quedar-se en la
superf鱈cie quan alguna cosa no va b辿. Posar
a prova les nostres creences, ser capa巽os de
recon竪ixer i rectificar els nostres errors, de
codi o de concepci坦. I sobretot, reduir la
quantitat de residu (producte sense valor)
escur巽ant al mxim el temps d'incertesa.
@drpicox
SOFTWARE IS SCIENCE
TESTING
17
RED
GREEN
REFACTOR
TEST CODE
CLEAN
YOU


START


HERE
I si el Lean defineix el gra gruixut, el TDD defineix el
gra fi. s el m竪tode cient鱈fic en la m鱈nima expressi坦.
Ens d坦na certesa de qu竪 el que
entreguem fa el que fa.
Tant el testing com el codi segueixen el
cam鱈 adequat. Amb la mxima
qualitat possible.
30s


loop
El que cont鱈nuament,
mai esperant m辿s de 30
segons o un minut, es
revela que tot segueix
funcionant
@drpicox
SOFTWARE IS SCIENCE
TECHNICAL EXCELLENCE
 Testing Techinques and Patterns


 Plugin Architecture


 SOLID Principles


 Patterns


 The understanding of basic principles
18
Cal que mantinguem l'excel揃l竪ncia t竪cnica.
Cal evitar els "bad smells". I aix嘆 ho fem
aplicant els patrons i els principis de disseny.
Per嘆 no en qualsevol moment. Quan faci falta.
Encara que ho pensem, no tenim cap bola de vidre
per veure el futur.
@drpicox
PATTERNS
MVC
19
Controller
Model
View
Controller
Model View
Controller
Model
View
User
uses sees
manipulates observes
updates
mental
model
I hem vist el MVC, la seva base, les seves
bondats. Hem vist com altres, per
aprofitar-se de la bona fama d'aquest
patr坦, han venut com MVC coses que no
son. Per嘆 cal que aprenem a no deixar-
nos enganyar i veure les bases.
@drpicox
SOFTWARE IS SCIENCE
DEEP UNDERSTANDING OF UNDERLYING MECHANISMS
 Coding
	

	
Direct manipulation of data


 Procedures
	

	
Goals and constraints


 Text dump
	

	
Spatial representations


 Sequential
	

	
Concurrent
20
I hem vist que programar, i construir
software 辿s molt m辿s ampli del que ens
han ensenyat. Que ja en els anys '70
havien descobert i posat en marxa moltes
innovacions 炭tils, avui en dia oblidades.
No les podem oblidar.
@drpicox
AGILE
QUOTES
 Iterations do not fail. The purpose of an iteration is to
generate data for managers.


 As velocity falls, pressure on the team builds. This causes the
points to in
fl
ate. That in
fl
ation can hide the falling velocity.


 No word needs to be spoken. No agreement needs to be
written. But both sides understand that they bene
fi
t from
defects. A black market economy of defects emerges. This
disease permeates many organizations, and if its not
terminal, its certainly debilitating.
21
I durant la vostra carrera professional
sentireu i viureu moltes coses. Necessitareu
uns valors i uns principis per aferrar-vos,
per saber que 辿s correcte i que no.
BE PROFESSIONAL
QUESTION EVERYTHING


KEEP ALWAYS LEARNING


ANYONE CAN BE RIGHT, INCLUDING YOU
22
I en definitiva. Q端estioneu tot. Estigueu
sempre aprenent. Tothom pot tenir ra坦, fins i
tot vosaltres.

More Related Content

Similar to Be professional: We Rule the World (20)

TIC - Tema 1: El rastre digital
TIC - Tema 1: El rastre digitalTIC - Tema 1: El rastre digital
TIC - Tema 1: El rastre digital
aanapons
ACTIVITATS TEMA: 5
ACTIVITATS TEMA: 5ACTIVITATS TEMA: 5
ACTIVITATS TEMA: 5
angelabas10
El Rastre Digital
El Rastre DigitalEl Rastre Digital
El Rastre Digital
DannyCraig111
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho somNo ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
Jordi Jubany
big_data20
big_data20big_data20
big_data20
SobrePantalles.net Prevenci坦, informaci坦 i reflexi坦 sobre usos 2.0
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
anaportatil
RSC i la sostenibilitat
RSC i la sostenibilitatRSC i la sostenibilitat
RSC i la sostenibilitat
derjami
L'equip de Dipsalut - Alex Morales
L'equip de Dipsalut - Alex MoralesL'equip de Dipsalut - Alex Morales
L'equip de Dipsalut - Alex Morales
Dipsalut
Tema 1 el rastre digital
Tema 1 el rastre digitalTema 1 el rastre digital
Tema 1 el rastre digital
Joannnnnn
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
EAE Business School
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
EAE Business School
Tto Confidencial 09
Tto Confidencial 09Tto Confidencial 09
Tto Confidencial 09
cesk GARA
Ciberespai
CiberespaiCiberespai
Ciberespai
juaniteta
Curs 2.4. Institucions Intel揃ligents
Curs 2.4. Institucions Intel揃ligentsCurs 2.4. Institucions Intel揃ligents
Curs 2.4. Institucions Intel揃ligents
Iniciativa Barcelona Open Data
Cogovernar: transformar digitalment l'Administraci坦?
Cogovernar: transformar digitalment l'Administraci坦?Cogovernar: transformar digitalment l'Administraci坦?
Cogovernar: transformar digitalment l'Administraci坦?
Jordi Graells
Curs 2.4 Institucions Intel揃ligents
Curs 2.4 Institucions Intel揃ligentsCurs 2.4 Institucions Intel揃ligents
Curs 2.4 Institucions Intel揃ligents
Iniciativa Barcelona Open Data
ActivitatsTema5.
ActivitatsTema5.ActivitatsTema5.
ActivitatsTema5.
andresjoan3a
Rastre digital alba
Rastre digital albaRastre digital alba
Rastre digital alba
ajuaneda
TIC - Tema 1: El rastre digital
TIC - Tema 1: El rastre digitalTIC - Tema 1: El rastre digital
TIC - Tema 1: El rastre digital
aanapons
ACTIVITATS TEMA: 5
ACTIVITATS TEMA: 5ACTIVITATS TEMA: 5
ACTIVITATS TEMA: 5
angelabas10
El Rastre Digital
El Rastre DigitalEl Rastre Digital
El Rastre Digital
DannyCraig111
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho somNo ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
No ens han preguntat si vol鱈em ser ciutadans digitals per嘆 ho som
Jordi Jubany
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
永姻艶壊艶稼岳温界庄坦稼界鉛看顎糸界看馨沿顎岳庄稼乙1
anaportatil
RSC i la sostenibilitat
RSC i la sostenibilitatRSC i la sostenibilitat
RSC i la sostenibilitat
derjami
L'equip de Dipsalut - Alex Morales
L'equip de Dipsalut - Alex MoralesL'equip de Dipsalut - Alex Morales
L'equip de Dipsalut - Alex Morales
Dipsalut
Tema 1 el rastre digital
Tema 1 el rastre digitalTema 1 el rastre digital
Tema 1 el rastre digital
Joannnnnn
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
EAE Business School
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
Pere Brachfield, professor de EAE des de fa 20 anys, expert en morositat. ARA...
EAE Business School
Tto Confidencial 09
Tto Confidencial 09Tto Confidencial 09
Tto Confidencial 09
cesk GARA
Ciberespai
CiberespaiCiberespai
Ciberespai
juaniteta
Cogovernar: transformar digitalment l'Administraci坦?
Cogovernar: transformar digitalment l'Administraci坦?Cogovernar: transformar digitalment l'Administraci坦?
Cogovernar: transformar digitalment l'Administraci坦?
Jordi Graells
ActivitatsTema5.
ActivitatsTema5.ActivitatsTema5.
ActivitatsTema5.
andresjoan3a
Rastre digital alba
Rastre digital albaRastre digital alba
Rastre digital alba
ajuaneda

More from David Rodenas (20)

TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
David Rodenas
TDD CrashCourse Part1: Testing
TDD CrashCourse Part1: TestingTDD CrashCourse Part1: Testing
TDD CrashCourse Part1: Testing
David Rodenas
TDD CrashCourse Part3: TDD Techniques
TDD CrashCourse Part3: TDD TechniquesTDD CrashCourse Part3: TDD Techniques
TDD CrashCourse Part3: TDD Techniques
David Rodenas
TDD CrashCourse Part5: Testing Techniques
TDD CrashCourse Part5: Testing TechniquesTDD CrashCourse Part5: Testing Techniques
TDD CrashCourse Part5: Testing Techniques
David Rodenas
TDD CrashCourse Part4: Improving Testing
TDD CrashCourse Part4: Improving TestingTDD CrashCourse Part4: Improving Testing
TDD CrashCourse Part4: Improving Testing
David Rodenas
ES3-2020-P3 TDD Calculator
ES3-2020-P3 TDD CalculatorES3-2020-P3 TDD Calculator
ES3-2020-P3 TDD Calculator
David Rodenas
ES3-2020-P2 Bowling Game Kata
ES3-2020-P2 Bowling Game KataES3-2020-P2 Bowling Game Kata
ES3-2020-P2 Bowling Game Kata
David Rodenas
ES3-2020-07 Testing techniques
ES3-2020-07 Testing techniquesES3-2020-07 Testing techniques
ES3-2020-07 Testing techniques
David Rodenas
ES3-2020-06 Test Driven Development (TDD)
ES3-2020-06 Test Driven Development (TDD)ES3-2020-06 Test Driven Development (TDD)
ES3-2020-06 Test Driven Development (TDD)
David Rodenas
ES3-2020-05 Testing
ES3-2020-05 TestingES3-2020-05 Testing
ES3-2020-05 Testing
David Rodenas
Testing, Learning and Professionalism 20171214
Testing, Learning and Professionalism  20171214Testing, Learning and Professionalism  20171214
Testing, Learning and Professionalism 20171214
David Rodenas
ReactJS for Programmers
ReactJS for ProgrammersReactJS for Programmers
ReactJS for Programmers
David Rodenas
Vespres
VespresVespres
Vespres
David Rodenas
Faster web pages
Faster web pagesFaster web pages
Faster web pages
David Rodenas
Redux for ReactJS Programmers
Redux for ReactJS ProgrammersRedux for ReactJS Programmers
Redux for ReactJS Programmers
David Rodenas
Basic Tutorial of React for Programmers
Basic Tutorial of React for ProgrammersBasic Tutorial of React for Programmers
Basic Tutorial of React for Programmers
David Rodenas
Introduction to web programming for java and c# programmers by @drpicox
Introduction to web programming for java and c# programmers by @drpicoxIntroduction to web programming for java and c# programmers by @drpicox
Introduction to web programming for java and c# programmers by @drpicox
David Rodenas
From high school to university and work
From high school to university and workFrom high school to university and work
From high school to university and work
David Rodenas
Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1
David Rodenas
Freelance i Enginyeria
Freelance i EnginyeriaFreelance i Enginyeria
Freelance i Enginyeria
David Rodenas
TDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDDTDD CrashCourse Part2: TDD
TDD CrashCourse Part2: TDD
David Rodenas
TDD CrashCourse Part1: Testing
TDD CrashCourse Part1: TestingTDD CrashCourse Part1: Testing
TDD CrashCourse Part1: Testing
David Rodenas
TDD CrashCourse Part3: TDD Techniques
TDD CrashCourse Part3: TDD TechniquesTDD CrashCourse Part3: TDD Techniques
TDD CrashCourse Part3: TDD Techniques
David Rodenas
TDD CrashCourse Part5: Testing Techniques
TDD CrashCourse Part5: Testing TechniquesTDD CrashCourse Part5: Testing Techniques
TDD CrashCourse Part5: Testing Techniques
David Rodenas
TDD CrashCourse Part4: Improving Testing
TDD CrashCourse Part4: Improving TestingTDD CrashCourse Part4: Improving Testing
TDD CrashCourse Part4: Improving Testing
David Rodenas
ES3-2020-P3 TDD Calculator
ES3-2020-P3 TDD CalculatorES3-2020-P3 TDD Calculator
ES3-2020-P3 TDD Calculator
David Rodenas
ES3-2020-P2 Bowling Game Kata
ES3-2020-P2 Bowling Game KataES3-2020-P2 Bowling Game Kata
ES3-2020-P2 Bowling Game Kata
David Rodenas
ES3-2020-07 Testing techniques
ES3-2020-07 Testing techniquesES3-2020-07 Testing techniques
ES3-2020-07 Testing techniques
David Rodenas
ES3-2020-06 Test Driven Development (TDD)
ES3-2020-06 Test Driven Development (TDD)ES3-2020-06 Test Driven Development (TDD)
ES3-2020-06 Test Driven Development (TDD)
David Rodenas
ES3-2020-05 Testing
ES3-2020-05 TestingES3-2020-05 Testing
ES3-2020-05 Testing
David Rodenas
Testing, Learning and Professionalism 20171214
Testing, Learning and Professionalism  20171214Testing, Learning and Professionalism  20171214
Testing, Learning and Professionalism 20171214
David Rodenas
ReactJS for Programmers
ReactJS for ProgrammersReactJS for Programmers
ReactJS for Programmers
David Rodenas
Redux for ReactJS Programmers
Redux for ReactJS ProgrammersRedux for ReactJS Programmers
Redux for ReactJS Programmers
David Rodenas
Basic Tutorial of React for Programmers
Basic Tutorial of React for ProgrammersBasic Tutorial of React for Programmers
Basic Tutorial of React for Programmers
David Rodenas
Introduction to web programming for java and c# programmers by @drpicox
Introduction to web programming for java and c# programmers by @drpicoxIntroduction to web programming for java and c# programmers by @drpicox
Introduction to web programming for java and c# programmers by @drpicox
David Rodenas
From high school to university and work
From high school to university and workFrom high school to university and work
From high school to university and work
David Rodenas
Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1Modules in angular 2.0 beta.1
Modules in angular 2.0 beta.1
David Rodenas
Freelance i Enginyeria
Freelance i EnginyeriaFreelance i Enginyeria
Freelance i Enginyeria
David Rodenas

Be professional: We Rule the World

  • 1. @drpicox 1 We rule the world! s el nostre poder, per嘆 tamb辿 la nostra responsabilitat. Penseu una cosa, qui ent辿n de codi, ent辿n del que est escrit i ent辿n el que est fent, sou vosaltres. Si vosaltres li dieu al vostre cap que alguna cosa cal canviar-la, el vostre cap pot contestar el que sigui, que al final, us acabar fent cas perqu竪 vosaltres enteneu el problema. I ell no. Vosaltres maneu. BY @DRPICOX
  • 2. @drpicox 2 Recordeu quan vrem parlar d'aquesta foto? Recordeu que surt a la fotografia? Exacte. s un accident del 737 Max 8, un dels models d'avions que es va estavellar fins a dues vegades per culpa d'un error software. Va matar m辿s de 300 persones. Que creieu que li va passar als responsables?
  • 3. @drpicox 3 Doncs res... per ara. L'avi坦 va ser aprovat pel Govern dels EUA, hi ha molta gent amb poder implicada. Per嘆, ja se senten les veus que demanen pres坦. s q端esti坦 de temps que aix嘆 canvi誰.
  • 4. @drpicox 4 束This was not a corporate decision, from my point of view, and to my best knowledge today. This was a couple of software engineers who put this in for whatever reasons.損 I aix嘆 ho recordeu? El cas de Volkswagen que amb software va fer trampes i falsificar proves de contaminaci坦? Al principi van passar, i els cotxes es van vendre... per嘆 aix嘆 va desfermar la ira dels responsables als EUA. Malgrat que al principi van passar les proves i els cotxes van ser aprovats, van decidir trobar als culpables i fer-los pagar per enganyar al govern. I el directiu de Volkswagen, declarant davant del Congr辿s dels EUA no se li acudeix una altra cosa que marcar com a responsables a qui va picar el codi i rentar- se les mans. I sabeu que? El van escoltar. Ell va anar a pres坦, per嘆 no va ser l'炭nic.
  • 5. @drpicox 5 La pena m辿s gran la va pagar l'enginyer en cap que treballava a Alemanya. Malgrat el jutge recon竪ixer que no era el cervell de l'operaci坦, s鱈 que considera que es va mantenir en la posici坦 de forma molt c嘆moda sense parar-ho i cobrant els seus 350.000$ l'any.
  • 6. @drpicox 6 Tots dos casos han requerit que els informtics col揃laboressin i fossin c嘆mplices en l'escriptura de software que mata gent, o que fa trampes i trenca l'acord social entre les persones creant malestar i desconfian巽a. Per嘆 tenim el poder d'aturar-ho. I si tenim el poder d'aturar-ho, tenim el deure de fer-ho. Per嘆 com ho podem fer? Per un costat ens arrisquem a ser despatxats si no ens avenim amb les ordres, per嘆 per l'altra part, potser 辿s un error nostre el que mata gent. Com ho podem fer? La nostra no 辿s la primera professi坦 que es troba davant d'aquest problema. No 辿s la primera professi坦 que necessita un mecanisme per poder evitar que ens obliguin a fer coses poc 竪tiques, o que malgrat que fem tot el que estigui en les nostres mans, podem matar a alg炭. La primera professi坦 va ser la de medicina, i ja per aix嘆, en 竪poca dels grecs, es va introduir el jurament hipocrtic. El jurament hipocrtic va permetre als metges rebutjar prctiques de tortura o recerca de guerra que malmetien la salut de les persones. Tamb辿 els va permetre justificar que malgrat que un pacient mor鱈s, havien fet tot el que havien pogut. Com poder fer el mateix nosaltres?
  • 7. @drpicox 7 TEST DRIVEN DEVELOPMENT You are not allowed to write any production code unless it is to make a failing unit test pass. You are not allowed to write any more of a unit test than is suf fi cient to fail; and compilation failures are failures. You are not allowed to write any more production code than is suf fi cient to pass the one failing unit test. Doncs el TDD va ser un dels primers intents d'aconseguir aquest jurament. Amb el TDD pots justificar que has fet tot lo possible per a que el programa funcioni correctament. Que has seguit tots els passos i no t'has deixat cap. Que si no ha funcionat, 辿s perqu竪 el problema va m辿s enll de tota previsi坦. Per嘆 faltava una part, la nostra relaci坦 amb la societat, i igual que el metge amb el pacient, la nostra relaci坦 amb el nostre client.
  • 8. @drpicox 8 AGILE MANIFESTO Individuals and interactions油 over processes and tools Working software油 over comprehensive documentation Customer collaboration油 over contract negotiation Responding to change油 over following a plan I aqu鱈 va apar竪ixer l'Agile. Els principis de l'Agile. On principi vol dir "Regla de conducta". El codi que d坦na uns m鱈nims a tot professional a relacionar-se de forma adequada amb el seu client. Perqu竪 no 辿s tan sols no lesionar f鱈sicament a alg炭, tamb辿 辿s no lesionar-lo moralment o econ嘆micament.
  • 9. @drpicox 9 SOFTWARE CRAFTSMANSHIP MANIFESTO Not only working software, but also well-crafted software Not only responding to change, but also steadily adding value Not only individuals and interactions, but also a community of professionals Not only customer collaboration, but also productive partnerships Well-crafted software, cal invertir el temps que calgui per fer-ho ben fet. L'excusa 辿s per dem no serveix. Per嘆 l'Agile va resultar insuficient en uns casos, i malinterpretats en altres. I va apar竪ixer el Software Craftsmanship. Aquest demana anar m辿s enll del deure. Res de grans refactors i fer el cranc. Sempre cal afegir valor, usar els patrons correctes al moment correcte. Lo nou no pot malmetre lo antic. No coneixia aquella tecnologia no 辿s excusa. Som tots una comunitat, tots ens recolzem entre nosaltres. Compartim les novetats, i ajudem a qui obliguen a fer coses poc 竪tiques. I el nostre cap no 辿s el nostre cap, 辿s el nostre soci. No 辿s un 辿sser superior intocable. El seu 竪xit 辿s el nostre 竪xit, el seu fracs 辿s el nostre. Hem de tractar-lo d'igual a igual, fer-li saber el que t辿 i aturar-lo on toca.
  • 10. @drpicox 10 THE CUSTOMER BILL OF RIGHTS You have the right to an overall plan and to know what can be accomplished when and at what cost. You have the right to get the most possible value out of every iteration. You have the right to see progress in a running system, proven to work by passing repeatable tests that you specify. You have the right to change your mind, to substitute functionality, and to change priorities without paying exorbitant costs. You have the right to be informed of schedule and estimate changes, in time to choose how to reduce the scope to meet a required date. You can cancel at any time and be left with a useful working system re fl ecting investment to date. Aquest 辿s l'炭ltim pas d'aquesta evoluci坦, revoluci坦, que ha esdevingut els 炭ltims anys. Igual que la carta de drets dels EUA, els professionals d'all han comen巽at a redactar la carta de drets pels informtics, i com en aquesta pgina, pels seus clients. Que estem obligats a fer? Que estem obligats moralment a donar? I que diu? Que pot saber que i amb quin cost. Treure el mxim profit de cada iteraci坦. Que li farem tests repetibles! I que els especifica ell. Que res de documents, les coses s'han de veure. Que ens pot demanar canvis sense sobrecost, el t鱈pic truc quan no vols fer algo, posar un preu rid鱈culament alt. I si s'atura abans, el que ha quedat, encara que no fos el resultat, cal que tingui valor.
  • 11. @drpicox 11 THE DEVELOPER BILL OF RIGHTS You have the right to know what is needed with clear declarations of priority. You have the right to produce high-quality work at all times. You have the right to ask for and receive help from peers, managers, and customers. You have the right to make and update your own estimates. You have the right to accept your responsibilities instead of having them assigned to you. I ara s鱈, per protegir-nos directament. Volem les prioritats, que no ens tornin bojos. Poden canviar, per嘆 cal que ens diguin clarament quines s坦n les prioritats. Que ens ho facin entendre. Volem treballar amb mxima qualitat. No ens poden obligar fer les coses malament per anar de pressa o retallar costos. No poden obligar-nos a perjudicar la nostra reputaci坦 o jugar-nos anar a pres坦. Tots som una comunitat, professionals m辿s clients. Cal que ens ajudem entre tots. Nosaltres tenim el poder i nosaltres podem estimar els costos, i tamb辿 canviar quan cal. Ning炭 ens pot obligar acceptar unes estimacions diferents. I finalment, nosaltres tenim el dret de decidir si acceptem o no una feina. No ens la poden assignar, ens l'autoassignem. I com hem vist, els jutges concorden amb aix嘆. s la nostra responsabilitat.
  • 12. @drpicox 12 Si penseu que som aliens a tot aix嘆, el 20 de setembre de 2017, a Catalunya, van oc坦rrer uns fets que van trasbalsar a tota la comunitat de professionals. Aquell dia, molts professionals, alguns amb amenaces legals, altres a punta d'arma de foc, van ser obligats a cometre actes que van en contra aquestes cartes de drets. Alguns d'ells es van veure obligats a executar ordres que ells creien immorals, altres ordres que contravenien els seus contractes, alguns d'ells, fins i tot ordres que contravenien lleis i acords internacionals. I fins i tot havent col揃laborat, com tenen el poder de canviar les coses en qualsevol moment, una desena d'ells van ser empresonats i a誰llats de tothom durant tres dies. Tres dies en qu竪 la fam鱈lia no va saber ni tan sols si el pare o la mare dels seus nens eren vius o morts. L' INFORMTIC S CONSIDERA UNA ARMA DE GUERRA I NO T DRETS. Diuen que el passat 1 doctubre va comen巽ar la primera Ciberguerra de la Uni坦 Europea LISOC (Internet Society) carrega contra la censura dinternet que viu Catalunya Els bots russos entren en la campanya pel refer竪ndum l1 doctubre Qui s坦n els 15 detinguts? Ja nhi ha prou! Com fer un pa鱈s ciberprotegit Simplement llibertat DotCat Registry Of fi ces Raided by Spanish Police
  • 13. @drpicox 13 + ETHICS TESTING Tota la feina est per fer. Hem d'establir la carta de drets i seguir-la. Cal aconseguir fer valer els nostres valors i la nostra professionalitat. s una professi坦 nova i hem d'aconseguir els mateixos drets i deures que tenen metges, advocats, arquitectes i altres enginyers. I aix嘆 辿s la suma de dues parts. Per un costat hem de ser moralment impecables. No tan sols amb els nostres principis, sin坦 tamb辿 amb els que ens rodegen. I per l'altre costat hem de ser t竪cnicament excel揃lents. I aix嘆 nom辿s ho aconseguim amb Testing. s impensable aspirar a un reconeixement professional si com a col揃lectiu no usem el TDD de forma impecable.
  • 14. @drpicox "TESTING SHOWS THE PRESENCE, NOT THE ABSENCE OF BUGS" Edsger W. Dijkstra, 1968 14 Vaig inventar la programaci坦 estructurada en qu竪 es prohibeix el Goto. Aix嘆 ho vaig fer perqu竪 vaig descobrir, que sense un Goto, puc demostrar amb regles matemtiques que qualsevol programa funciona i fa el que ha de fer. Amb absoluta certesa. Imagino un futur on tenim una llibreria d'algoritmes, demostrats formalment com teoremes matemtics, que podem usar i compondre per crear aplicacions lliure de bugs. Un futur sense cap bug. I per aix嘆 no m'agrada el testing, no em serveix, amb testing mai demostrarem que un programa no te bugs. I aix嘆 tampoc els hi va agradar als acad竪mics, i per aix嘆 la universitat mai va apostar pel testing. Per嘆 el mercat va abandonar aquesta via. Per qu竪? Perqu竪 va serguir el testing? Quin valor t辿?
  • 15. @drpicox 15 SOFTWARE IS SCIENCE I aix嘆 辿s ci竪ncia. Observaci坦. No podem verificar aplicacions formalment perqu竪 ni tan sols els clients tenen clar el que volen. Cal descobrir quines s坦n les funcionalitats i com s'ha de comportar el nostre producte. Testing. Ens mou els mateixos valors que a la ci竪ncia: el m竪tode cient鱈fic.
  • 16. @drpicox SOFTWARE IS SCIENCE LEAN 16 IDEAS CODE DATA BUILD Unit tests Usability tests Continous integration Refactoring MEASURE Split Tests Funnel analysis Continuous deployment LEARN Split Tests Interviews 5 Whys Falsifiable Hypothesis Smoke tests I com s'aplica el m竪tode cient鱈fic a la nostra professi坦? Amb Lean. Sigui essent nosaltres el responsable, o fent "partnership" amb els nostres clients (o caps), hem d'aplicar els valors de Lean. Aix嘆 vol dir testing automtic, mantenir el codi amb qualitat, compilat i desplegament automtic i continu. Recollir dades per obtenir evid竪ncies, no quedar-se en la superf鱈cie quan alguna cosa no va b辿. Posar a prova les nostres creences, ser capa巽os de recon竪ixer i rectificar els nostres errors, de codi o de concepci坦. I sobretot, reduir la quantitat de residu (producte sense valor) escur巽ant al mxim el temps d'incertesa.
  • 17. @drpicox SOFTWARE IS SCIENCE TESTING 17 RED GREEN REFACTOR TEST CODE CLEAN YOU START HERE I si el Lean defineix el gra gruixut, el TDD defineix el gra fi. s el m竪tode cient鱈fic en la m鱈nima expressi坦. Ens d坦na certesa de qu竪 el que entreguem fa el que fa. Tant el testing com el codi segueixen el cam鱈 adequat. Amb la mxima qualitat possible. 30s loop El que cont鱈nuament, mai esperant m辿s de 30 segons o un minut, es revela que tot segueix funcionant
  • 18. @drpicox SOFTWARE IS SCIENCE TECHNICAL EXCELLENCE Testing Techinques and Patterns Plugin Architecture SOLID Principles Patterns The understanding of basic principles 18 Cal que mantinguem l'excel揃l竪ncia t竪cnica. Cal evitar els "bad smells". I aix嘆 ho fem aplicant els patrons i els principis de disseny. Per嘆 no en qualsevol moment. Quan faci falta. Encara que ho pensem, no tenim cap bola de vidre per veure el futur.
  • 19. @drpicox PATTERNS MVC 19 Controller Model View Controller Model View Controller Model View User uses sees manipulates observes updates mental model I hem vist el MVC, la seva base, les seves bondats. Hem vist com altres, per aprofitar-se de la bona fama d'aquest patr坦, han venut com MVC coses que no son. Per嘆 cal que aprenem a no deixar- nos enganyar i veure les bases.
  • 20. @drpicox SOFTWARE IS SCIENCE DEEP UNDERSTANDING OF UNDERLYING MECHANISMS Coding Direct manipulation of data Procedures Goals and constraints Text dump Spatial representations Sequential Concurrent 20 I hem vist que programar, i construir software 辿s molt m辿s ampli del que ens han ensenyat. Que ja en els anys '70 havien descobert i posat en marxa moltes innovacions 炭tils, avui en dia oblidades. No les podem oblidar.
  • 21. @drpicox AGILE QUOTES Iterations do not fail. The purpose of an iteration is to generate data for managers. As velocity falls, pressure on the team builds. This causes the points to in fl ate. That in fl ation can hide the falling velocity. No word needs to be spoken. No agreement needs to be written. But both sides understand that they bene fi t from defects. A black market economy of defects emerges. This disease permeates many organizations, and if its not terminal, its certainly debilitating. 21 I durant la vostra carrera professional sentireu i viureu moltes coses. Necessitareu uns valors i uns principis per aferrar-vos, per saber que 辿s correcte i que no.
  • 22. BE PROFESSIONAL QUESTION EVERYTHING KEEP ALWAYS LEARNING ANYONE CAN BE RIGHT, INCLUDING YOU 22 I en definitiva. Q端estioneu tot. Estigueu sempre aprenent. Tothom pot tenir ra坦, fins i tot vosaltres.