Prácticas ágiles y software abierto para poner en órbita tu startup

52
Prácticas ÁGILES y software ABIERTO para poner en órbita tu startup RUBEN ORTA - @agileando

description

En la siguiente charla podrás aprender como convertir tu idea para un producto o startup en algo real y que sea usable por tus usuarios. Todo ello gracias a practicas ágiles y haciendo uso de software abierto

Transcript of Prácticas ágiles y software abierto para poner en órbita tu startup

Page 1: Prácticas ágiles y software abierto para poner en órbita tu startup

Prácticas ÁGILES y software ABIERTO para

poner en órbita tu startupRUBEN ORTA - @agileando

Page 2: Prácticas ágiles y software abierto para poner en órbita tu startup

email: [email protected]

web: http://devspoke.com

twitter: @agileando

linkedin: es.linkedin.com/in/rubenorta

slideshare: es.slideshare.net/agileando

github: github.com/rubenorta

Rubén Orta MagánCTO Grupo Antevenio

Page 3: Prácticas ágiles y software abierto para poner en órbita tu startup

1. INTRODUCCIÓN

Page 4: Prácticas ágiles y software abierto para poner en órbita tu startup

¿ Qué es el agilismo ?

Page 5: Prácticas ágiles y software abierto para poner en órbita tu startup

A los individuos y su interacción, por encima de los procesos y las herramientas.

El software que funciona, por encima de la documentación exhaustiva.

La colaboración con el cliente, por encima de la negociación contractual.

La respuesta al cambio, por encima del seguimiento de un plan.

Valores Ágiles

Page 6: Prácticas ágiles y software abierto para poner en órbita tu startup

1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.3 Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.4. Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo. 6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.7. El software funcionando es la medida principal de progreso.8. Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.9. La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.11. Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.

Principios Ágiles

Page 7: Prácticas ágiles y software abierto para poner en órbita tu startup

¿ y una startup ?

Page 8: Prácticas ágiles y software abierto para poner en órbita tu startup

STEVE BLANK: “Es una organización temporal en búsqueda de un modelo de negocio escalable y replicable”

ERIC RIES: “Una institución humana diseñada para crear un nuevo producto o servicio bajo condiciones de extrema incertidumbre”

Page 9: Prácticas ágiles y software abierto para poner en órbita tu startup

IDEA CLIENTES

EQUIPO

Elementos de una startup

Page 10: Prácticas ágiles y software abierto para poner en órbita tu startup

IDEA CLIENTES

EQUIPO

Elementos de una startup

estrategia + ejecución

Page 11: Prácticas ágiles y software abierto para poner en órbita tu startup

2. EL EQUIPO

Page 12: Prácticas ágiles y software abierto para poner en órbita tu startup

RANDALL E. STROSS:“Los mejores programadores no son marginalmente mejores que los buenos. Son un orden de magnitud mejores, medidos por cualquier estándar: creatividad, velocidad, sencillez de diseño o habilidad para resolver problemas”

Page 13: Prácticas ágiles y software abierto para poner en órbita tu startup

Práctica Deliberada

Page 14: Prácticas ágiles y software abierto para poner en órbita tu startup

CODE KATA¿ QUE ES ?

Es un ejercicio de programación que que ayuda a mejorar la habilidades a través de la práctica y la repetición.

EJEMPLO:Traducir números en formato romano, que mano gana al poker…

REGLAS:

- Usa TDD y baby steps- Repite el proceso varias veces- Explora nuevas ideas cada vez que la práctica- Ponte límites en cada ejecución ( Ej. Usa un editor que no se al habitual, no utilices Ifs, usa polimorfismo….)

Page 15: Prácticas ágiles y software abierto para poner en órbita tu startup

CODING DOJO¿ QUE ES ?

Es una reunión de programadores que se unen para trabajar en un reto de programación durante un periodo de tiempo determinado.

TIPOS:Prepared Kata, Randori Kata, Individual Pairs.

REGLAS:

- Abierto a todo el mundo que quiera aprender, programar y pasarlo bien.- Usa TDD y baby steps- No es una competición ni un show- Se programa en parejas

Page 16: Prácticas ágiles y software abierto para poner en órbita tu startup

LUNCH TALKS¿ QUE ES ?

Es una reunión a la hora de comer/merendar/cervezas en la cual un grupo de programadores comparten conocimientos sobre materias que dominan o quieren aprender.

REGLAS:

- Las charlas pueden deben ocupar como máximo 30 minutos.- No hace falta que seas un experto en un tema para dar una charla basta con querer impartirlo- Los contenidos son propuestos individualmente pero votados por el equipo.- Sólo puedes asistir si también te comprometes a enseñar al resto.- Todo el mundo come pizzas / todo el mundo bebe cervezas.- Si no te gustan estas reglas puedes cambiarlas.

Page 17: Prácticas ágiles y software abierto para poner en órbita tu startup

3. LA IDEA

Page 18: Prácticas ágiles y software abierto para poner en órbita tu startup

GUY KAWASAKI:“Las ideas son fáciles,

la ejecución dura”

MICHAEL DELL:“Las ideas son mercancía,

su ejecución no”

Page 19: Prácticas ágiles y software abierto para poner en órbita tu startup

Plantilla: Visión de ProductoVISIÓNExplica el producto en una sola frase.

PÚBLICOOBJETIVO

¿ Quienes son los usuarios objetivos de tu producto?

¿ Quienes son los clientes objetivos del producto ?

NECESIDAD

¿ Cual es el problema que estás intentando

resolver?

¿ Cual es el objetivo que quieres lograr ?

PRODUCTO

3/5 funcionalidades imprescindibles

VALOR

¿ Cuales son los objetivos de negocio?

¿ Cual es el valor de tu producto?

BARRERAS BARRERAS BARRERAS BARRERAS

Page 20: Prácticas ágiles y software abierto para poner en órbita tu startup

Ejemplo: Visión de ProductoVISIÓN: Viajar a la luna

PÚBLICOOBJETIVO

Astronautas

El gobierno de EEUU

NECESIDAD

Permitir viajes al espacio exterior.

Construir un vehículo que permite el transporte de humanos con autonomía de ida y vuelta a la Luna.

PRODUCTO

1. Ida / Vuelta a la Luna

2. Habitable por seres humanos

3. Sistema de comunicación tierra / transporte.

VALOR

Ser el primer país en poner un hombre en la

luna.

Amedrentar a la URSS

Se trata de una idea de JFK pero no tiene el apoyo del Senado al completo.

Gravedad, en la estratosfera no hay oxígeno.

Solo se ha conseguido poner hombres en orbita

URSS ha conseguido poner un hombre en órbita

Page 21: Prácticas ágiles y software abierto para poner en órbita tu startup

Herramientas

Page 22: Prácticas ágiles y software abierto para poner en órbita tu startup

4. LA EJECUCIÓN

Page 23: Prácticas ágiles y software abierto para poner en órbita tu startup

PETE CASHMORE:“La ejecución es lo que realmente hace que una compañía despegue o no. Mucha gente empieza una cosa excitante y quieren conquistar el mundo pero lo que realmente hace la gente que conquista el mundo es tener un buen plan de como conseguirlo y los pasos que deben realizar.”

Page 24: Prácticas ágiles y software abierto para poner en órbita tu startup

El plan

PÚBLICOOBJETIVO

PRODUCTO ACTIVIDADES

PERSONA STORYBOARD HISTORIASDE USUARIO

ROAD MAP

Page 25: Prácticas ágiles y software abierto para poner en órbita tu startup

Plantilla: PersonaFOTOGRAFÍA

NOMBRE

¿ Qué aspecto tiene nuestra persona?

¿ Cual es su nombre?

DETALLES

¿ Cuales es el comportamiento y las

características relevantes de su personalidad ?

Demografía, trabajo, estilo de vida, ocio,

OBJETIVOS

¿ Por qué la persona quiere comprar o usar nuestro

producto ?

¿ Qué problemas debe resolver nuestra producto?

¿ Qué beneficios pretende sacar de su uso ?

Organizar por prioridad.

Page 26: Prácticas ágiles y software abierto para poner en órbita tu startup

Ejemplo: PersonaFOTOGRAFÍA

NOMBRE

Neil Armstrong

DETALLESEdad: 39 AñosProfesión: Astronauta

A los 6 años tuvo la oportunidad de volar en un avión. Antes de tener el carnet de conducir ya tenía el carnet de piloto de aviones.

Ha participando en la guerra de Corea realizando 78 misiones exitosas. Tras su retiro como piloto aprobó las oposiciones para astronauta y se encuentra trabajando en la actualidad para el gobierno de los EEUU.

Se trata de una persona ambiciosa y con ganas de conquistar el mundo.

“Creo que todos los hombres tienen un número finito de latidos de corazón. No tengo intención de gastar ninguno de los míos”

OBJETIVOS

Quiere ser miembro de la primera expedición a la

Luna.

Quiere sobrevivir a la expedición.

Quiere ser mundialmente conocido.

Page 27: Prácticas ágiles y software abierto para poner en órbita tu startup

Plantilla: StoryboardNOMBRE ACTIVIDAD:

Page 28: Prácticas ágiles y software abierto para poner en órbita tu startup

Ejemplo: Storyboard

Mar de la Tranquilidad

0º42'50"N-23º42'28"E

Escaleras salida al exterior.

Casco, Guantes, Botas, Módulo Supervivencia,

Cuerpo

Es un pequeño paso para el

hombre pero un gran paso para la

humanidad.

Zona Control, Camara

Aislamiento

Apertura Puertas,

Sistema TV

NOMBRE ACTIVIDAD: Paseo por la luna

El módulo lunar se encuentra en la superficie de la luna.

Neil revisa que todo el equipo que lleva puesto esta correcto y funcionando.

Tras la comprobación se dirige a la cámara de aislamiento para proceder a la salida de la nave.

Su compañero Buzz abre las compuertas del módulo y activa los sistemas de comunicación.

Neil desciende por las escaleras y pisa la superficie lunar.

Tras dar unos cuantos pasos por la superficie lunar lanza un mensaje a la tierra.

Page 29: Prácticas ágiles y software abierto para poner en órbita tu startup

Plantilla: Historia de Usuario

COMO… QUIERO…PARA…

PRIORIDAD

TAMAÑO

CRITERIO DE ACEPTACIÓN

DADO …CUANDO… ENTONCES…

Page 30: Prácticas ágiles y software abierto para poner en órbita tu startup

Ejemplo: Historia de Usuario

Como Neil Armstrong

Quiero Un traje espacial

Para dar un paseo por la superficie lunar

PRIORIDAD 10

TAMAÑO 15

CRITERIO DE ACEPTACIÓN

Dado un astronauta que se

encuentra en un viaje a la luna cuando aluniza y desciende de la nave espacial

entonces no se congela y puede respirar.

Page 31: Prácticas ágiles y software abierto para poner en órbita tu startup

User Story Mapping

US 1.1

US 1.2

US 1.3

PRIORIDAD

TIEMPO

ACTIVIDAD 1 ACTIVIDAD 2 ACTIVIDAD 3

Page 32: Prácticas ágiles y software abierto para poner en órbita tu startup

User Story Mapping

PRIORIDAD

TIEMPO

ACTIVIDAD 1

US 1.1

US 1.2

US 1.3

MVP

V.2

V.3

ACTIVIDAD 2 ACTIVIDAD 3

Page 33: Prácticas ágiles y software abierto para poner en órbita tu startup

Herramientas

Page 34: Prácticas ágiles y software abierto para poner en órbita tu startup

Metodología

Page 35: Prácticas ágiles y software abierto para poner en órbita tu startup

Scrum

backlogUS

planificadas sprint

ejecucióndiaria

entrega

feedback

planning

retrospectivas

daily

demo

Page 36: Prácticas ágiles y software abierto para poner en órbita tu startup

Arquitectura

Page 37: Prácticas ágiles y software abierto para poner en órbita tu startup

API

WebApp Servidor Base deDatos

Internet

REQUEST

RESPONSE

Arquitectura REST

Page 38: Prácticas ágiles y software abierto para poner en órbita tu startup

Frontend

Backend

DataBases

Herramientas

Page 39: Prácticas ágiles y software abierto para poner en órbita tu startup

Testing

Page 40: Prácticas ágiles y software abierto para poner en órbita tu startup

STEVE McCONNELL:

“Probar por sí mismo no mejoran la calidad del software. Los resultados de una prueba son un indicador de calidad, pero en sí mismas, no la mejoran. Tratar de mejorar la calidad del software mediante el aumento del número de pruebas es como tratar de bajar de peso pesándose con más frecuencia. Lo que comes antes de subirte a la báscula determina cuánto vas a pesar, y las técnicas de desarrollo de software que usas van a determinar cuántos errores encontrarán tus pruebas. Si usted quiere perder peso, no compre una nueva escala; cambiar su dieta. Si deseas mejorar tu software, no midas más; desarrolla mejor.”

Page 41: Prácticas ágiles y software abierto para poner en órbita tu startup

Pruebas AutomáticasUnit Testing

Es un trozo de código que sirve para comprobar el correcto funcionamiento de un módulo de código. Para ser una buen test unitario debe ser: Automatizable, completa, repetible, independiente y profesional.

TDDTest Driven Development (Desarrollo guiado por pruebas): Es una técnica de programación en la cual primero se desarrolla una prueba unitaria, posteriormente se produce el código satisface ese test unitario y por último se refactoriza el código escrito sin que el test se rompa.

BDDBehaviour Driven Development (Desarrollo guiado por comportamiento): Es una práctica de desarrollo software que extiende a TDD y cuyo definición de pruebas permite unificar mediante el lenguaje del dominio de negocio al equipo técnico y de negocio.

Page 42: Prácticas ágiles y software abierto para poner en órbita tu startup

Frontend

Backend

Herramientas

Page 43: Prácticas ágiles y software abierto para poner en órbita tu startup

IntegraciónContinua

Page 44: Prácticas ágiles y software abierto para poner en órbita tu startup

DespliegueContinuo

Page 45: Prácticas ágiles y software abierto para poner en órbita tu startup

INTEGRACIÓNCONTINUA

SISTEMA DE CONTROL DEVERSIONES

Herramientas

Page 46: Prácticas ágiles y software abierto para poner en órbita tu startup
Page 47: Prácticas ágiles y software abierto para poner en órbita tu startup
Page 48: Prácticas ágiles y software abierto para poner en órbita tu startup
Page 49: Prácticas ágiles y software abierto para poner en órbita tu startup

Producción

Page 50: Prácticas ágiles y software abierto para poner en órbita tu startup

WEB

ADMIN

ENTORNOS

Herramientas

Page 51: Prácticas ágiles y software abierto para poner en órbita tu startup
Page 52: Prácticas ágiles y software abierto para poner en órbita tu startup

[5] http://agilemanifesto.org/iso/es/[6] http://agilemanifesto.org/iso/es/principles.html[19] http://www.romanpichler.com/tools/vision-board/[21] https://es.libreoffice.org/[25] http://www.romanpichler.com/blog/persona-template-for-agile-product-management/[32] http://www.agileproductdesign.com/blog/the_new_backlog.html[35] https://www.scrum.org/Portals/0/Documents/Scrum%20Guides/2013/Scrum-Guide.pdf[41] http://visionmedia.github.io/mocha/

http://karma-runner.github.io/http://sinonjs.org/http://chaijs.com/

[44] http://jenkins-ci.org/http://www.sonarqube.org/http://git-scm.com/http://mercurial.selenic.com/https://rhodecode.com/

Enlaces