SlideShare une entreprise Scribd logo
1  sur  137
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!

Contenu connexe

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

5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
5o Computacion global 5o Computacion global5o Computacion global5o Computacio...5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
ssuser7458c4
 
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
MadelinOchoa
 
Lo que odiamos de la agilidad
Lo que odiamos de la agilidadLo que odiamos de la agilidad
Lo que odiamos de la agilidad
Leonardo 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
 
Marco teorico
Marco teorico Marco teorico
Marco teorico
juanluru
 

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

5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
5o Computacion global 5o Computacion global5o Computacion global5o Computacio...5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
5o Computacion global 5o Computacion global5o Computacion global5o Computacio...
 
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
 

Plus de Hernan 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
 

Plus 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
 

Dernier

Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
GuillermoBarquero7
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
EncomiendasElSherpa
 

Dernier (6)

Trabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - OfimáticaTrabajo de Powerpoint - Unsaac - Ofimática
Trabajo de Powerpoint - Unsaac - Ofimática
 
Evaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdfEvaluación del riesgo tecnologías informáticas.pdf
Evaluación del riesgo tecnologías informáticas.pdf
 
Caso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business CentralCaso de Exito LPL Projects Logistics Spain y Business Central
Caso de Exito LPL Projects Logistics Spain y Business Central
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOSESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
ESCRITORIO DE WINDOWS 11 Y SUS ELEMENTOS
 
2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx2da. Clase Mecanografía e introducción a Excel (2).pptx
2da. Clase Mecanografía e introducción a Excel (2).pptx
 

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