SlideShare uma empresa Scribd logo
1 de 137
Baixar para ler offline
El Desarrollo de Software
como debería Ser
Hernán A. Wilkinson
@hernanwilkinson
agile software development & services
¡Seamos
LIBRES que lo
demás
NO IMPORTA
NADA!
¿Qué es lo primero que
dicen cuando se levantan?
Matemática!
Gauss
Cantor
Fermat
Física
Newton Einstein
Kelvin Maxwell
Bohr
John McCarthy
Douglas Engelbart
Peter Naur
Fred Brooks
Alan Kay
DRY
¿Éter?
Eter!
¡Ética!
¿Estimar?
Descubrir vs. Entregar
Cocomo - Cocomo 2 - Function Points
Taylor
Trabajo Manual
Trabajo Creativo
Taylorismo + Ingeniería
Fordismo
Rotación = 963 para quedarse con 100
¡Lo que no ejecuta no se
mantiene!
Software
Modelo Computable de
un Dominio de Problema
Simula 67
Ole-Johan Dahl y Kristen Nygaard
¡Buen Modelo!
Cómo representamos Feb/2018? (un mes de año)
Cómo representamos Feb/2018? (un mes de año)
(Java 1.8)
(Smalltalk)
Cómo representamos Feb/2018? (un mes de año)
Cómo representamos Feb/2018? (un mes de año)
Ruby - Go – Python - Java pre 1.8 – etc.
Hay que hacerlo uno mismo, y muy pocos lo hacen…
¿Deberíamos poder representar 31 de Feb de 2018?
Eter!
03/03/2018 !!!
¿Deberíamos poder representar 31 de Feb de 2018?
¡Excepción!
¿Deberíamos poder representar 31 de Feb de 2018?
Python
datetime.date(2018,2,31)
(A point based model of the Gregorian Calendar – H. Wilkinson et al)
¿Deberíamos poder representar 31 de Feb de 2018?
Smalltalk
¡Excepción!
¿Qué sucede con esta relación?
Account
...
¡Complejidad!
Complejidad = Esencial + Accidental
¡Nadie hace esto! – Pocos casos
¡Ni loco!
1
1 $
1 litro
1 metro
¡Ni loco!
Números solos ¡NUNCA!
¡Nunca!
null
Variable no inicializada
El cliente no tiene dirección
El teléfono no es válido
¡Ni loco!
¿Cómo se construye un Modelo?
¿Cómo un Auto? ¿Cómo una Casa?
(¿Es construye la palabra adecuada?)
Hacer crecer un Modelo
es un “proceso de
aprendizaje”
“Constructivismo”
TDD
¿Lenguaje? de Programación
Propósito:
Proveer un marco para la comunicación
(Design Principles Behind Smalltalk - Dan Ingalls)
“The design of a language for using computers must deal with internal models,
external media, and the interaction between these in both the human and the
computer”
(Design Principles Behind Smalltalk - Dan Ingalls - 1981)
Castellano Castellano
casa palabra de 4 letras
¡Por eso hacemos nuestras
propias herramientas!
En casa de herrero cuchillo de palo
Live type information!
Java = JaJa
JEE != OO
¡Educación Universitaria Conceptual!
¡No se mueve por modas!
¿Qué hacemos?
¡LEER!
¿Qué más hacemos?
¡LEER MAS!
¿¿¡¡Qué más
podemos hacer!!??
¡PODEMOS LEER!
¡Pero de lo bueno, de lo
añejo!
¡Ah! y ¡PRACTICAR lo
que LEIMOS!
¿¿Y qué más??
¡Volver a PRACTICAR y
PRACTICAR y
PRACTICAR!
No hay gloria
en la práctica,
pero ¡sin
práctica no
hay gloria!
-Anónimo
¿Cómo ser un
“Buen Desarrollador”?
¿Qué es ser un
“Buen Desarrollador”?
Es NO ser CASCADA
Es NO ser TAYLOREANO
Es NO ESTIMAR lo que no
se conoce
Es entender que la gente
NO SON RECURSOS
Es no aflojar al primer “reto”
Es mantener una ética profesional
Es entender que es una ACTIVIDAD SOCIAL
Es entender que TAMBIEN es una
ACTIVIDAD TECNICA
Es desarrollar de manera
ITERATIVA-INCREMENTAL
Es desarrollar de manera segura con
TESTS AUTOMATIZADOS
Es tener PASION por lo que hacemos
Es ser
CRITICO
con la
actualidad
tecnológica
Es tener
CORAJE
para
generar
un
CAMBIO
Es saborear la
VICTORIA de
una
REVOLUCION
(bien entendida)
¡Seamos
BUENOS DESA-
RROLLADORES
que lo demás
NO IMPORTA
NADA!
agile software development & services
¡Gracias!

Mais conteúdo relacionado

Semelhante a El Desarrollo de Software como debería Ser - PyConAr 2018

Guía de trabajo segunda y tercera unidad computación
Guía de trabajo segunda y tercera unidad computaciónGuía de trabajo segunda y tercera unidad computación
Guía de trabajo segunda y tercera unidad computaciónMadelinOchoa
 
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...CañeteL@b
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidadLeonardo Soto
 
¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?Rosalinda Muñoz Rodríguez
 
¿Por qué es tan importante saber programar?
¿Por qué es tan importante saber programar?¿Por qué es tan importante saber programar?
¿Por qué es tan importante saber programar?Carlos Toxtli
 
Marco teorico
Marco teorico Marco teorico
Marco teorico juanluru
 
Kleer yoseki coding dojo - Pre-Smalltalk 2012
Kleer   yoseki coding dojo - Pre-Smalltalk 2012Kleer   yoseki coding dojo - Pre-Smalltalk 2012
Kleer yoseki coding dojo - Pre-Smalltalk 2012Diogenes Moreira
 
Stevejobs aime rodriguez rodriguez
Stevejobs aime rodriguez rodriguezStevejobs aime rodriguez rodriguez
Stevejobs aime rodriguez rodriguezAime Rodriguez
 
Cómo innovar productos de software empleando scrum como metodología ágil
Cómo innovar productos de software empleando scrum como metodología ágilCómo innovar productos de software empleando scrum como metodología ágil
Cómo innovar productos de software empleando scrum como metodología ágilGustavo Quiroz
 
Inteligencias múltiples
Inteligencias múltiplesInteligencias múltiples
Inteligencias múltiplesBelén Mariño
 
La creatividad, el motor del negocio
La creatividad, el motor del negocioLa creatividad, el motor del negocio
La creatividad, el motor del negocioDaphne Repain
 
Creadores de universos
Creadores de universosCreadores de universos
Creadores de universosEduardo Diaz
 
4Geeks: Ser Developer
4Geeks: Ser Developer4Geeks: Ser Developer
4Geeks: Ser Developer4Geeks
 
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...GeneXus
 
Como Escribir Curriculums con Impacto en Empresas de Tecnologia
Como Escribir Curriculums con Impacto en Empresas de TecnologiaComo Escribir Curriculums con Impacto en Empresas de Tecnologia
Como Escribir Curriculums con Impacto en Empresas de TecnologiaGerardo Pardo-Castellote
 
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient..."La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...@cristobalcobo
 
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdf
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdfunpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdf
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdfIndebaAracataca1
 

Semelhante a El Desarrollo de Software como debería Ser - PyConAr 2018 (20)

Guía de trabajo segunda y tercera unidad computación
Guía de trabajo segunda y tercera unidad computaciónGuía de trabajo segunda y tercera unidad computación
Guía de trabajo segunda y tercera unidad computación
 
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...
El papel del Software Libre para el Ecosistema Científico, Tecnológico y el E...
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
 
¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?¿Qué necesito para desarrollar software en las empresas modernas?
¿Qué necesito para desarrollar software en las empresas modernas?
 
¿Por qué es tan importante saber programar?
¿Por qué es tan importante saber programar?¿Por qué es tan importante saber programar?
¿Por qué es tan importante saber programar?
 
Marco teorico
Marco teorico Marco teorico
Marco teorico
 
Computer science
Computer scienceComputer science
Computer science
 
Kleer yoseki coding dojo - Pre-Smalltalk 2012
Kleer   yoseki coding dojo - Pre-Smalltalk 2012Kleer   yoseki coding dojo - Pre-Smalltalk 2012
Kleer yoseki coding dojo - Pre-Smalltalk 2012
 
Stevejobs aime rodriguez rodriguez
Stevejobs aime rodriguez rodriguezStevejobs aime rodriguez rodriguez
Stevejobs aime rodriguez rodriguez
 
Steve Jobs secreto de sus presentaciones
Steve Jobs secreto de sus presentacionesSteve Jobs secreto de sus presentaciones
Steve Jobs secreto de sus presentaciones
 
Cómo innovar productos de software empleando scrum como metodología ágil
Cómo innovar productos de software empleando scrum como metodología ágilCómo innovar productos de software empleando scrum como metodología ágil
Cómo innovar productos de software empleando scrum como metodología ágil
 
Inteligencias múltiples
Inteligencias múltiplesInteligencias múltiples
Inteligencias múltiples
 
La creatividad, el motor del negocio
La creatividad, el motor del negocioLa creatividad, el motor del negocio
La creatividad, el motor del negocio
 
Creadores de universos
Creadores de universosCreadores de universos
Creadores de universos
 
4Geeks: Ser Developer
4Geeks: Ser Developer4Geeks: Ser Developer
4Geeks: Ser Developer
 
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...
Los superpoderes de la interfaz. cómo el diseño convierte al usuario en super...
 
Como Escribir Curriculums con Impacto en Empresas de Tecnologia
Como Escribir Curriculums con Impacto en Empresas de TecnologiaComo Escribir Curriculums con Impacto en Empresas de Tecnologia
Como Escribir Curriculums con Impacto en Empresas de Tecnologia
 
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient..."La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...
"La innovación pendiente: nuevas formas de evaluar y reconocer el conocimient...
 
Taller de Text Mining en Twitter con R
Taller de Text Mining en Twitter con RTaller de Text Mining en Twitter con R
Taller de Text Mining en Twitter con R
 
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdf
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdfunpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdf
unpluggedTeachersDec2008_PENSAMIENTO COMPUTACIONAL_ACTIVIDADES DESCONECTADAS.pdf
 

Mais de Hernan Wilkinson

Live Typing - California Smalltalkers
Live Typing - California SmalltalkersLive Typing - California Smalltalkers
Live Typing - California SmalltalkersHernan Wilkinson
 
Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Hernan Wilkinson
 
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosLiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosHernan Wilkinson
 
LiveTyping: Update and What is next
LiveTyping: Update and What is nextLiveTyping: Update and What is next
LiveTyping: Update and What is nextHernan Wilkinson
 
Cuis smalltalk past present and future
Cuis smalltalk past present and futureCuis smalltalk past present and future
Cuis smalltalk past present and futureHernan Wilkinson
 
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
Live Typing- Automatic Type Annotation that improves the Programming eXperie...Live Typing- Automatic Type Annotation that improves the Programming eXperie...
Live Typing - Automatic Type Annotation that improves the Programming eXperie...Hernan Wilkinson
 
Lessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsLessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsHernan Wilkinson
 
Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Hernan Wilkinson
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Hernan Wilkinson
 
Augmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxAugmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxHernan Wilkinson
 
Growing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyGrowing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyHernan Wilkinson
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Desarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesDesarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesHernan Wilkinson
 
Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...Hernan Wilkinson
 
Obejct Oriented SCM - OOSCM
Obejct Oriented SCM - OOSCMObejct Oriented SCM - OOSCM
Obejct Oriented SCM - OOSCMHernan Wilkinson
 
A new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendarA new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendarHernan Wilkinson
 

Mais de Hernan Wilkinson (20)

Live Typing - California Smalltalkers
Live Typing - California SmalltalkersLive Typing - California Smalltalkers
Live Typing - California Smalltalkers
 
Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020Buenos Aires vs. (London vs. Chicago) Agiles 2020
Buenos Aires vs. (London vs. Chicago) Agiles 2020
 
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicosLiveTyping - Anotación automática de tipos para lenguajes dinámicos
LiveTyping - Anotación automática de tipos para lenguajes dinámicos
 
LiveTyping: Update and What is next
LiveTyping: Update and What is nextLiveTyping: Update and What is next
LiveTyping: Update and What is next
 
Cuis smalltalk past present and future
Cuis smalltalk past present and futureCuis smalltalk past present and future
Cuis smalltalk past present and future
 
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
Live Typing- Automatic Type Annotation that improves the Programming eXperie...Live Typing- Automatic Type Annotation that improves the Programming eXperie...
Live Typing - Automatic Type Annotation that improves the Programming eXperie...
 
Lessons Learned Implementing Refactorings
Lessons Learned Implementing RefactoringsLessons Learned Implementing Refactorings
Lessons Learned Implementing Refactorings
 
Dynamic Type Information
Dynamic Type InformationDynamic Type Information
Dynamic Type Information
 
TDD & Refactoring
TDD & RefactoringTDD & Refactoring
TDD & Refactoring
 
Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?Go/Ruby/Java: What's next?
Go/Ruby/Java: What's next?
 
Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!Exceptions: Why, When, How and Where!
Exceptions: Why, When, How and Where!
 
CuisUniversity
CuisUniversityCuisUniversity
CuisUniversity
 
Oop is not Dead
Oop is not DeadOop is not Dead
Oop is not Dead
 
Augmenting Smalltalk Syntax
Augmenting Smalltalk SyntaxAugmenting Smalltalk Syntax
Augmenting Smalltalk Syntax
 
Growing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust companyGrowing an open participative horizontal and based on trust company
Growing an open participative horizontal and based on trust company
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Desarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agilesDesarrollando sistemas con metodologías y técnicas agiles
Desarrollando sistemas con metodologías y técnicas agiles
 
Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...Técnicas y herramientas para que la computadora haga más y el programador m...
Técnicas y herramientas para que la computadora haga más y el programador m...
 
Obejct Oriented SCM - OOSCM
Obejct Oriented SCM - OOSCMObejct Oriented SCM - OOSCM
Obejct Oriented SCM - OOSCM
 
A new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendarA new object oriented model of the gregorian calendar
A new object oriented model of the gregorian calendar
 

Último

Presentación acerca de la importancia de la filosofia en la ingenieria en sis...
Presentación acerca de la importancia de la filosofia en la ingenieria en sis...Presentación acerca de la importancia de la filosofia en la ingenieria en sis...
Presentación acerca de la importancia de la filosofia en la ingenieria en sis...capil94195
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfAnaRosaMontenegro
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptxmaykolmagallanes012
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5Trabajo Tecnologia - José Alejandro Martínez Torres 11-5
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5Laura225304
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 

Último (7)

Presentación acerca de la importancia de la filosofia en la ingenieria en sis...
Presentación acerca de la importancia de la filosofia en la ingenieria en sis...Presentación acerca de la importancia de la filosofia en la ingenieria en sis...
Presentación acerca de la importancia de la filosofia en la ingenieria en sis...
 
Webinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdfWebinar Resolucion2335 de 2023 Kubapp.pdf
Webinar Resolucion2335 de 2023 Kubapp.pdf
 
Delitos informáticos en Slideshare.pptx
Delitos informáticos en  Slideshare.pptxDelitos informáticos en  Slideshare.pptx
Delitos informáticos en Slideshare.pptx
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5Trabajo Tecnologia - José Alejandro Martínez Torres 11-5
Trabajo Tecnologia - José Alejandro Martínez Torres 11-5
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 

El Desarrollo de Software como debería Ser - PyConAr 2018