Vous êtes sur la page 1sur 96

Introduccin al Emprendimiento(*)

Por Roberto Pardo Silva, Ph.D. Consultor


ropardo@gmail.com Diciembre 2012

(*) Charlas patrocinadas por Apps.co y Microsoft Colombia para los participantes de la fase de BootCamps de Apps.co
Notas R Pardo ropardo@gmail.com

Objetivo de las Charlas


Complementar entrenamiento del bootcamp con una visin introductoria al Emprendimiento
Aprender a pensar en trminos de Negocios
Cmo volver negocios reales las ideas tcnicas de software Cmo describir un Modelo de Negocio Cmo tipificar, evaluar y analizar un Modelo de Negocio

Definir el Negocio orientndolo realmente al Cliente


Cmo validar las ideas Cmo escuchar al Cliente

Identificar factores crticos de xito en la Ingeniera del desarrollo del Producto o Servicio de Software
Qu es una buena ingeniera de producto Cules son las buenas prcticas

Notas R Pardo ropardo@gmail.com

Qu tipo de Emprendimiento?
Emprendimiento de nuevas empresas basadas en
Joyera Bioingeniera Hardware Plataformas de software

Emprendimiento en empresas maduras que quieren usar la tecnologa de software estratgicamente (Emprendimiento Corporativo)
Notas R Pardo ropardo@gmail.com

A quin va Dirigido
Tcnicos de software con poca o ninguna experiencia en Negocios o experiencia en crear empresas, y que quieren desarrollar productos de talla global que se VENDAN

Notas R Pardo ropardo@gmail.com

Metodologa
4 Sesiones online Tericas + Ejercicios entre Sesiones Es una Visin introductoria Es esto suficiente? NO!!!!
Varios temas solo se aprenden hacindolos!
Prctica Trabajo de campo

Y varios temas no se cubren ac

Notas R Pardo ropardo@gmail.com

Agenda
SESION #1
Emprendimiento, Modelos Visin Global Ciclo completo

SESION #2
Modelos de Negocios Patrones de Negocios
Evaluacin de Modelos de Negocios Metodologa de Desarrollo del Cliente Metodologa de Desarrollo de Producto

SESION #3

SESION #4

+ Hojas de Ejercicios que deben realizarce entre sesiones

Notas R Pardo ropardo@gmail.com

Referencias: Libros

Notas R Pardo ropardo@gmail.com

Revistas

Notas R Pardo ropardo@gmail.com

Referencias urls
Startups, emprendimiento http://steveblank.com/ http://www.startuplessonslearned.com/ http://alexosterwalder.com/index.html http://www.slideshare.net/mobile/techdude/business-modelgeneration
Negocios http://ecorner.stanford.edu/ Desarrollo para Principiantes http://jimmy-li.net/blog/programming/how-to-get-started-in-webdevelopment/

Notas R Pardo ropardo@gmail.com

Sesion 4

Notas R Pardo ropardo@gmail.com

Agenda Sesin #4
Evaluacin de Modelos de Negocio Tipologas de Modelos de Negocio Innovacin en Modelos de Negocios Metodologa de Desarrollo del Cliente Resumen y Ejercicio

Notas R Pardo ropardo@gmail.com

Para qu describir Modelos de Negocios? Para Analizarlos y Mejorarlos

Notas R Pardo ropardo@gmail.com

Cmo Describir, Evaluar e Innovar MNs?

Notas R Pardo ropardo@gmail.com

Ejemplo de Preguntas para MEJORAR O INNOVAR el Modelo de Negocio Actual

Notas R Pardo ropardo@gmail.com

Evaluacin de Modelos de Negocio


Qu tanto influye el costo de cambio en que los clientes no se cambien de proveedor?
El tiempo, esfuerzo y dinero que un cliente tiene que gastar para cambiarse de un producto o servicio de un proveedor al de otro proveedor se llama switching cost o costo de cambio. Si es alto es ms probable que se quede. Ejemplo el iPod en el 2001.

Qu tan escalable es el modelo de negocios?


Escalabilidad = qu tan fcil es expandir el negocio sin crecer igualmente los costos. Los negocios de internet tienden a ser ms escalables que los tradicionales. Dentro de internet hay unos ms escalables
Facebook, con pocos miles de ingenieros escalaron a mil mllones de usuarios Zynga con Farmville o Cityville que son juegos sobre Facebook aprovecha la escalabilidad de Facebook
Notas R Pardo ropardo@gmail.com

Evaluacin de Modelos de Negocio


Genera ingresos recurrentes?
Costo de venta es uno slo para ingresos recurrentes. Ejemplo, SaaS Ejemplo de mezcla: impresoras

Se gana antes de gastar?


Ejemplo, Dell ensamblando un pedido despus de vender.

Qu tanto se logra que los dems trabajen para uno?


IKEA hace que uno ensamble los muebles cuando los compra, y ellos ahorran. En Facebook el cliente pone fotos, conversa, hace click en likes, generando valor al contenido En Amazon los clientes evalan los artculos y proveedores aadiendo ms valor al contenido.

Tiene le modelo de negocio una proteccin intrnseca de la competencia?


Lol iPods, iPhones, iPads de Apple los proyege el ecosistema que arm: Appstore, iTunes. Notas R Pardo ropardo@gmail.com

Evaluacin de Modelos de Negocio


El modelo de negocios usa una estructura de costos radicalmente diferente a la tradicional en ese sector?
Skype est basado en una estructura de costos de cia de software y no de telecomunicaciones BhartiAirtael (XX) compra capacidad en exceso de empresas mviles Redhat construye un modelo de negocios sobre el modelo de otros

Notas R Pardo ropardo@gmail.com

Evaluacin de Modelos de Negocio


Tiene una ventaja competitiva sostenible?
Conoce bien su competencia y lo que ofrece? Cul es la ventaja que se tiene sobre la competencia? Por cunto tiempo se va a tener esa ventaja? Qu tan difcil es para la competencia ofrecer un producto o servicio similar? Hay barreras de entrada?

Hay efectos de red en el negocio?


Es el efecto que tiene cada usuario en el valor del producto o servicio. Existe cuando depende del nmero de usuarios. Por ejemplo Tarjetas de crdito, etc. Pueden ocurrir en el mismo lado de un mercado o en lados complementarios. EXISTE ESTO EN EL NEGOCIO?

Tiene alta concentracin de clientes o alta dependencia de partners?


Tiene pocos clientes grandes? Depende altamente de algn aliado?

Notas R Pardo ropardo@gmail.com

Notas R Pardo ropardo@gmail.com

Modelos de Negocios e Innovacin

no great business model lasts forever

Notas R Pardo ropardo@gmail.com

Ejemplos de Innovacin a travs de cambios en los componentes


Propuesta de Valor
Motores GE de aviones de vender a alquilar

Clientes
Ryanair de pasajeros de negocios a pasajeros de placer

Modelo de Ingresos
Xerox de venta a leasing

Cadena de Valor
Walmart con su cadena de suministro

Ecosistema
Ryanair utiliza aeropuertos subutilizados

Estrategia Competitiva
Dificultad de la competencia para copiar
Notas R Pardo ropardo@gmail.com

Qu puede pasar si no se innova?

Cul es un buen ejemplo de continua innovacin en el Modelo de Negocio?

Notas R Pardo ropardo@gmail.com

Razones por las cuales las compaas fallan en la Innovacin de Modelos de Negocios
La Alta Gerencia realmente no quiere un nuevo Modelo de Negocio
Zona de comfort y creen que los nuevos MN slo son un problema de competencia

BMI ser un problema para que lo resuelva la prxima Alta Gerencia El Producto es el Rey, nada m simporta TI slo sirve para mantener todo rodando y bajar costos Canibalizar es algo que no se hace
Al innovar se puede acabar con lo existente

No estar suficientemente conectados con quienes pueden netflixiarnos

Notas R Pardo ropardo@gmail.com

Metodologa de Desarrollo del Cliente

Steve Blank y Bob Dorf

Notas R Pardo ropardo@gmail.com

Qu es Desarrollo de Cliente?
Es un framework para descubrir y validar que
se ha identificado el mercado para un producto se han construido las caractersticas (features) precisas que satisfacen las necesidades del cliente se han probado los mtodos correctos para conseguir y convertir clientes, y se han desplegado los recursos exactos para escalar el negocio

Es cuestionarse todas las suposiciones del negocio y solo creer en lo que se valida con el cliente Permite tomar mejores decisiones basadas en hiptesis probadas en vez de suposiciones sin validar.
Notas R Pardo ropardo@gmail.com

Las 4 partes de Desarrollo de Cliente


1. 2. 3. 4. Descubrimiento del Cliente = un producto soluciona un problema para un grupo de usuarios definidos Validacin de Cliente = el producto se vende en el mercado y el mercado es suficientemente grande para que haya un negocio viable Creacin de Compaa = el negocio es escalable a travs de un roadmap de ventas y mercado repetibles Construccin de Compaa = se crean procesos operacionales y departamentos para soportar el escalamiento

Notas R Pardo ropardo@gmail.com

Qu es un Startup?
Es una organizacin temporal en bsqueda de un modelo de negocio escalable, repetible y rentable.
Steve Blank

Es una institucin hecha para crear un produto o servicio nuevo y que opera bajo condiciones de incertidumbre extrema
Eric Ries

Notas R Pardo ropardo@gmail.com

Por qu fallan los Startups


Dejarse tentar por buenos planes, estrategias y mercadeo.
Startups viven en un mundo de incertidumbre donde esto no necesariamente aplica

O irse por lo contrario, dejar que ande solo


Startups si necesitan de estructura y procesos, pero no los convencionales

Casi nadie usa el producto o servicio No se puede construir un producto o servicio inicial mnimo Nadie fondea Los fundadores pelean

Notas R Pardo ropardo@gmail.com

Startups no son versiones reducidas de las empresas grandes


Las empresas grandes ejecutan planes siguiendo un modelo de negocio donde los clientes, sus problemas, y las caractersticas de los productos o servicios que se les ofrece, son todos conocidos. Los startups funcionan en modo bsqueda ya que andan en bsqueda de un modelo de negocio rentable que se pueda escalar La bsqueda de un modelo de negocio requiere de un roadmap, y de unas competencias y herramientas diferentes para minimizar riesgos y optimizar las posibilidades de xito
Notas R Pardo ropardo@gmail.com

En los ltimos 10 aos han aparecido muchas ideas en reas nuevas que han cambiado el emprendimiento
El desarrollo gil, y el enfoque incremental e iterativo a la ingeniera que permiten que el desarrollo de productos o servicios iteren y se cambien segn la retroalimentacin de clientes y del mercado El diseo de un modelo de negocio, que reemplaza los planes de negocio estticos por un mapa de 9 cajas es una excelente descripcin de lo que hace una compaa Herramientas de creatividad e innovacin para impulsar ideas interesantes El Startup Lean que es una interseccin entre la metodologa de Desarrollo del Cliente y Desarrollo gil Interfases de Usuario Lean que mejoran las interfases web y mvil Financiamiento de riesgo, que atrae fondos de inversionistas para innovacin

Notas R Pardo ropardo@gmail.com

Y en los ltimos 10 aos ha habido toda una nueva (Segunda) Revolucin Industrial
Canal
Virtual Fisico

Virtual

Mucho Software Msica, Videos, Libros Prods Financieros

Prods Financieros Software Empresaria (Oracle, SAP)

Producto

Fisico

Ropa Prods electrnicos Libros fsicos (Amazon, etc.)

Carros Comida Libreras Tradicionales Materiales Construccin


Notas R Pardo ropardo@gmail.com

Pecados Capitales del Emprendedor Startup


1. 2. 3. 4. 5.
6.

7. 8.
9.

Suponer Yo s lo que quiere el cliente Creer en S qu caractersticas debe tener el producto Enfocar actividades hacia una fecha de lanzamiento Ejecutar en vez de Crear Hiptesis, Probar, Aprender e Iterar Seguir Planes de Negocios (en los planes de negocios no caben ensayos ni errores) Confundir cargos empresariales tradicionales con los que un startup realmente necesita Mercadear y Vender siguiendo un plan de negocios Creer prematuramente que se est teniendo xito y que se puede escalar Administrar por crisis conduciendo a una muerte en espiral

Notas R Pardo ropardo@gmail.com

Metodologa de Desarrollo del Cliente (de Steve Blank)


Es una proceso, modelo o metodologa que le permite a un startup validar rpidamente las suposiciones de un Modelo de Negocios y hacerle correcciones sobre la marcha Se divide en cuatro pasos

Evita perder dinero y tiempo, y cometer los pecados capitales que tradicionalmente han cometido muchos emprendedores
Notas R Pardo ropardo@gmail.com

La Metodologa de Desarrollo del Cliente


Bsqueda Ejecucin

Descubrimiento Del Cliente

Validacin Del Cliente

Creacin Del Cliente

Construccin De la Compaa

Comienza con la visin de los Fundadores y la vuelve una serie de hiptesis sobre el Modelo de Negocios. Lo describe y dibuja. Planea cmo probar las hiptesis del MN Prueba las Hiptesis. Prueba el problema y las soluciones No se trata de recoger de los clientes una gran lista de las caractersticas del producto. Lo que se quiere es encontrar el mercado y los clientes de la visin de los fundadores del negocio. AL final se Valida o se debe Cambiar. Cambiar no es fracasar. Normalmente se itera varias veces. Eventualmente puede parar y abortar el proceso
Notas R Pardo ropardo@gmail.com

El canvas inicial solo tiene supuestos..

Notas R Pardo ropardo@gmail.com

PMV Producto Mnimo Viable


Product con las Mnimas caractersticas Para que el cliente retroalimente No es versin ALFA No es versin BETA Low Fidelity = feedback sobre el problema High Fidelity = feedback sobre la solucin

Notas R Pardo ropardo@gmail.com

Pivot = cambio radical en alguno de los nueve componentes del modelo de negocios

Notas R Pardo ropardo@gmail.com

Descubrimiento del Cliente

Notas R Pardo ropardo@gmail.com

La Metodologa de Desarrollo del Cliente


Bsqueda Ejecucin

Descubrimiento Del Cliente

Validacin Del Cliente

Creacin Del Cliente

Construccin De la Compaa

Prueba si el Modelo de Negocio es escalable y repetible. Si no lo es, hay que empezar de nuevo desde Descubrimiento del Cliente Son Pruebas ms grandes, ms rigurosas, ms cuantitativas. Desarrolla roadmap de ventas y mercadeo. Se vende el producto a primeros clientes

Notas R Pardo ropardo@gmail.com

Fases en Validacin del Cliente

Notas R Pardo ropardo@gmail.com

Tamao del Mercado

Notas R Pardo ropardo@gmail.com

La Metodologa de Desarrollo del Cliente


Bsqueda Ejecucin

Descubrimiento Del Cliente

Validacin Del Cliente

Creacin Del Cliente

Construccin De la Compaa

Ya est maduro y validado el Modelo de Negocio. Se comienza la ejecucin. Se hace un Plan de Negocios Se escala. Hace crecer las ventas iniciales. Se gasta mucho dinero creciendo la demanda. Ya sabe cmo mercadear y vender. Cada tipo de mercado requiere una estrategia diferente
Notas R Pardo ropardo@gmail.com

La Metodologa de Desarrollo del Cliente


Bsqueda Ejecucin

Descubrimiento Del Cliente

Validacin Del Cliente

Creacin Del Cliente

Construccin De la Compaa

Se ejecuta un Plan de Negocios El Modelo de Negocios ya est validado. Procesos Organizacin Alineamiento con el Negocio

Notas R Pardo ropardo@gmail.com

Reglas del Manifiesto de la Metodologa de Desarrollo del Cliente


1. No hay verdades dentro de las oficinas, hay que salir al campo y validarlas con los clientes para volverlas hechos reales 2. Hay que unir Desarrollo del Cliente con Desarrollo gil 3. Fallar es parte integral de la Bsqueda 4. Haga iteraciones y cambios continuamente 5. Ningn Plan de Negocios sobrevive el primer contacto con Clientes, as que use el Lienzo de Modelo de Negocios y preprese para evolucionarlo y cambiarlo VARIAS veces 6. Disee experimentos y pruebas para poder validar las hiptesis 7. Defina bien cul es el tipo de mercado, no tenerlo claro puede cambiar todo 8. Las mtricas en un startup son muy diferentes a las de las empresas que ya existen 9. Tome decisiones rpido, sea gil y consistente 10. Detrs de todo esto tiene que estar la pasin 11. Los cargos en los startups son muy diferentes a los de las empresas consolidadas 12. Conserve el efectivo hasta que realmente necesite gastarlo 13. Comunique y comparta lo que se va aprendiendo 14. El xito comienza cuando realmente se cree en esta metodologa de Desarrollo del Cliente
Notas R Pardo ropardo@gmail.com

En resumen Descubrimiento del Cliente para Negocios Web

Notas R Pardo ropardo@gmail.com

CHECK LISTS

Notas R Pardo ropardo@gmail.com

Lean Startup
http://www.slideshare.net/startuplessonslearned/2012-05-15-eric-riesthe-lean-startup-pwc-canada?from=share_email

Notas R Pardo ropardo@gmail.com

Principios de Lean Startup


Los emprendedores estn en cualquier lugar Emprendimiento es Management
No es un producto Puede estar dentro de una empresa moderna que depende de la innovacin para crecer

Se aprende mediante validacin


Se aprende a crear un negocio sostenible validando cientficamente mediante experimentacin la visin y modelo

Ciclo clave es el de Construya-Mida-Aprenda


Construya productos a partir de ideas Mida cmo responden los clientes Aprenda a modificar (pivot) o seguir (perseverar)

Hay que asumir responsabilidades en el proceso de Innovacin


Fijar metas, medir progreso, priorizar

Notas R Pardo ropardo@gmail.com

Conceptos
Early Adopters/Earlyvangelists Segmentacin Tipo de Mercado Modelos de Negocio No Tradicionales Posicionamiento Producto-Mercado Encaje Producto Viable Mnimo Pivot Salir a la Calle
Notas R Pardo ropardo@gmail.com

Running Lean
Etapa 1 Etapa 2 Etapa 3

Aprender y hacer Pivot ANTES de product/market fit, Crecer y Optimizar DESPUES de product/market fit
Hacer Pivot: Cambiar el plan para encontrar uno que funcione Optimizar: Acelerar el plan que ha probado funcionar Preguntas Clave Etapa 1: Tengo un problema que vale la pena resolver? Etapa 2: He construido algo que realmente quiere la gente? Eatapa 3: Cmo acelero el crecimiento?
Notas R Pardo ropardo@gmail.com

Resumen de Thiago Oliveira de Paiva

Aprendiendo y Validando
Durante las etapas de Aprendizaje y Validacin hay herramientas que se deben usar
Etapa 1: Loop de Aprendizaje, Workflow de Descubrimiento del Cliente, Reglas y Lean Canvas

Etapa 2: Workflow de Lanzamiento de Producto


Notas R Pardo ropardo@gmail.com

Reglas de Experimentacin
Hay reglas para hacer bien los experimentos
1. Formule hiptesis que se puedan probar
No medible: Por ser experto lo seguirn

Especficos y Probables: Los post de blogs atraeran 100 clientes

2. Optimice para que sea rpido, se aprenda y no se pierda el foco


The optimal learning loop

Premature optimization

Chasing your tail

Source: Book Running Lean, Ash Maurya

Run out of resources Notas R Pardo ropardo@gmail.com

Problem/Solution Fit
Vale la pena resolver el problema? Este workflow muestra cmo con la ayuda de los clientes

Source: Book Running Lean, Ash Maurya

Notas R Pardo ropardo@gmail.com

Resumen Sesin 3
Criterios para evaluar Modelos de Negocio Metodologa e Desarrollo del Cliente Metodologa Lean Startup Metodologa Running Lean Qu tienen todos en comn?

Notas R Pardo ropardo@gmail.com

Ejercicio Sesin 3
Hacer la evaluacin al Modelo de Negocio planteado en el ejercicio anterior. Qu patrones usa? Haga un plan de validacin de su modelo con clientes.

Notas R Pardo ropardo@gmail.com

Sesion 4: Metodologa de Desarrollo de Producto

Notas R Pardo ropardo@gmail.com

Metodologa de Producto
Son los procesos y tcnicas requeridos para construir productos (servicios) de software de alta calidad Existen mltiples metodologas y tipos de certificaciones Existen muchos principios y tcnicas de
Arquitectura de software Diseo de software Programacin

OBJETIVO: Identificar y recomendar algunos aspectos clave de una buena Metodologa de Desarrollo de Producto
Notas R Pardo ropardo@gmail.com

Recuerde!!!!
No piense desde el comienzo en una metodologa e ingeniera sofisticada de producto
Primero encuentre el PRODUCT-MARKET FIT

Una vez sepa qu hacer, la metodologa de producto es importantsima

Notas R Pardo ropardo@gmail.com

Agenda Sesin #4
Metodologas de Desarrollo de Productos Arquitectura de Productos Diseo de Productos Programacin de Productos Otros Resumen Taller
Notas R Pardo ropardo@gmail.com

Metodologas
Tradicional PMO RUP Agil-Scrum Certificaciones

Notas R Pardo ropardo@gmail.com

Problemas de lo Tradicional
Problemas del Desarrollo en Cascada Problemas de PM del PMI Problemas del RUP

Notas R Pardo ropardo@gmail.com

Problemas de Desarrollo en Cascada


Problemas se detectan muy tarde Asume que la gente sabe lo que quiere No es gil

Notas R Pardo ropardo@gmail.com

Problemas del PMI

til pero muy genrico

Notas R Pardo ropardo@gmail.com

Problemas del RUP

Muchos roles, organizacin muy formal

Notas R Pardo ropardo@gmail.com

Manifiesto para Desarrollo de Software Agil


Valoramos Individuos y sus interacciones ms que procesos y herramientas Software que funcione ms que excelente documentacin Colaboracin con el cliente ms que de negociaciones sobre el contrato Responder al cambio ms que en seguir un plan Es decir, aunque hay valor en los items de la derecha, valoramos los de la izquierda ms

agilemanifesto.org

Notas R Pardo ropardo@gmail.com

La diferencia
Desarrollo de Software orientado por la Planeacin
Planeacin Anlisis Desarrollo Pruebas Integracin Validacin Deploy

Tiempo

Desarrollo de Software Agil


PLANEACION Anlisis Desarrollo Pruebas Integracin Validacin Anlisis Desarrollo Pruebas Anlisis Desarrollo Pruebas Anlisis Desarrollo Pruebas Deploy

Integracin
Validacin

Integracin
Validacin

Integracin
Validacin

Notas R Pardo ropardo@gmail.com

Comparacin de Metodologas
Metodologas Tradicionales Metodologas Agiles
Cambiar es malo, se controla y se trata Cambio es inevitable y tiene valor, se de evitar recomienda y se acoge
La adherencia a un plan determina el xito o fracaso Acabo cuando mi parte del plan se recibe Muchas puertas para controlar la calidad Se inspecciona el producto cuando se acaba Se arranca pensando en qu se va a entregar Los incentivos estn basados en satisfaccin del cliente y ROI Acabo cuando el cliente queda contento Muy iterativo para obtener calidad Se inspecciona el trabajo mientras se hace Se arranca pensando en qu necesidad se va a satisfacer
Notas R Pardo ropardo@gmail.com

Comparacin grfica
Visibilidad Posibilidad de Cambiar

Tiempo Riesgo

Tiempo Metodologa Tradicional Metodologa Agil

Tiempo
Notas R Pardo ropardo@gmail.com

Dos partes de la Discusin sobre Metodologas Agiles

Notas R Pardo ropardo@gmail.com

AGIL ES
Iterativo Adaptable

AGIL NO ES
Solamente relacionado con escribir cdigo Indisciplinado

Basado en Valor
Fcil de Entender Difcil de Implementar

No ser estructurado
Hacer lo que uno quiera que sea Un placebo para los malos programadores
Notas R Pardo ropardo@gmail.com

Otras
eXtreme Programming Scrum Lean Software Development Feature Driven Development

Notas R Pardo ropardo@gmail.com

Arquitectura
Arquitectura de Negocio Arquitectura Tcnica

Notas R Pardo ropardo@gmail.com

Arquitectura de Negocio
Conceptualizar (abstraer) el negocio para encontrar patrones comunes de funcionamiento, .con el objeto de darle forma a la solucin de software con alta parametrizacin, generalizacin y reutilizacin .simplificando la cantidad de software, pruebas, mantenimiento, etc. a realizar Ejemplos
Clasificadores en Sistemas Financieros Evaluadores de Frmulas en Nminas Manejadores de Tablas en Seguros Conceptualizacin de lo que es una Pliza de Seguros

Notas R Pardo ropardo@gmail.com

Arquitectura Tcnica
Una buena arquitectura tcnica comienza con una buena arquitectura de negocio Principios de Arquitectura
Layers Servicios

Atributos de Calidad
Flexibilidad (Modificabilidad) Disponibilidad, Confiabilidad, Continuidad Interoperabilidad Rendimiento Seguridad Pruebabilidad (Facilidad para hacer Probar) Usabilidad Escalabilidad (ms de Flexibilidad que de Rendimiento) Auditabilidad Mantenibilidad Otros.

Notas R Pardo ropardo@gmail.com

Ejemplo del Principo de Layering


Pruebas y Tcnicas

Qu es Pruebas
Cambiar UI, exponer Web Services Cambiar el paquete de BD

Tcnicas para asegurar Layering


MVC en UI ORM Servicios
Notas R Pardo ropardo@gmail.com

Ejemplo del Atributo de Escalabilidad


Pruebas y Tcnicas

Qu es escalabilidad? Pruebas
Aumentar la carga usando herramientas

Tcnicas para Asegurar escalabilidad


Asincronismo y paralelismo

Notas R Pardo ropardo@gmail.com

Ejemplo del Atributo de Rendimiento


Pruebas y Tcnicas

Pruebas
Cambiar UI, exponer Web Services Cambiar el paquete de BD

Tcnicas
Asincronismo y paralelismo Caching

Notas R Pardo ropardo@gmail.com

Principios de Diseo
Principios Generales Patrones de Diseo Diseo en LOO

Notas R Pardo ropardo@gmail.com

abstraccin
encapsulamiento

Cohesin y desacoplamiento Separacin de Concerns

herencia
polimorfismo IoC y DI

open-close

pareto domain driven


mnimo privilegio

ley de demeter

sustitucin de Liskov
contratos Etc.
Notas R Pardo ropardo@gmail.com

Diseo
Principios de Diseo (SOLID Design Principles) APIs FW Design Patrones de Diseo
Patrones GoF y de Aquitectura Patrones Especficos
Patrones de Integracin Patrones en Mviles Otros

Notas R Pardo ropardo@gmail.com

Principios de Diseo: Single Responsibility Principle (SRP)


Cada objeto debe tener una sola responsabilidad y esa responsabilidad debe estar completamente encapsulada en la clase No debera haber nunca ms de una razn para que una clase cambie Cohesin: qu tan relacionadas y focalizadas son las responsabilidades de un mdulo Acoplamiento: el grado en que cada mdulo depende de los otros mdulos
Mientras ms clases se vean afectadas por los cambios, ms probabilidad de errores existirn
Slo porque usted puede, no quiere decir que usted debe

La meta es bajo acoplamiento y alta cohesin y eso lo logra SRP


Crdito de esta y las siguientes i imagenes a http://www.lostechies.com/blogs/derickbailey/archive/2009/02/11/solid-development-principlesin-motivational-pictures.aspx
Notas R Pardo ropardo@gmail.com

Principio de Diseo: The Open/Closed Principle (OCP)


Las entidades de software (Clases, mdulos, funciones, etc.) deben ser abiertas para extenderlas y cerradas para modificarlas Nueva funcionalidad via abstracciones
Herencia (Patrn Template)
Subclases redefinen comportamiento de clase

Composicin (Patrn Estrategia)


Cliente depende de abstracciones (modelo plug-in) Implementacin usa herencia y cliente composicin

TANSTAAFL, OCP aade complejidad

Notas R Pardo ropardo@gmail.com

Principio de Diseo: Liskov Substitution Principle


Los subtipos se deben poder sustituir por sus tipos base Una subclase jams debe quitarle funcionalidad a la clase base, ni violar sus invariantes, y no requerir que quien la llama sepa que no es la clase base sino la subclase Seguir este principio permite usar bien polimorfismo y generar cdigo fcil de mantener

Notas R Pardo ropardo@gmail.com

Principio de Diseo: Interface Segregation Principle


A los clientes no se les debe obligar depender de mtodos que ello no usan No disee interfases gordas, aumentan acoplamiento y disminuyen la flexibilidad y mantenibilidad del cdigo
Ud quiere conectar esto, pero DONDE????

Notas R Pardo ropardo@gmail.com

Principio de Diseo: Dependency Inversion Principles (DIP)


Los mdulos de alto nivel no deben depender de los mdulos de bajo nivel Las Abstracciones no deben depender de los detalles. Los detalles deben depender de las abstracciones. Declare las dependencias entre clases explcitamente en los constructores Inyecte dependencias via constructores, propiedades o parmetros

Notas R Pardo ropardo@gmail.com

Resumen Principios de Diseo (Robert Martin)


Principios de diseo de clases.
(SRP) The Single Responsibility Principle (OCP) The Open Closed Principle (LSP) The Liskov Substitution Principle (DIP) The Dependency Inversion Principle (ISP) The Interface Segregation Principle

Principios de cohesin de paquetes


(REP) The Reuse Release Equivalence Principle (CCP) The Common Closure Principle (CRP) The Common Reuse Principle

Principios de acoplamiento de paquetes


(ADP) The Acyclic Dependencies Principle (SDP) The Stable Dependencies Principle (SAP) The Stable Abstractions Principle
Notas R Pardo ropardo@gmail.com

Ejemplos de Principios Clsicos en DOO (Diseo OO)


Program To An Interface, Not An Implementation: Trate siempre de codificar haciendo referencia a una interfase y no directamente a la implementacin Favor Composition Over Inheritance: Prefiera usar Composicin en vez de Herencia

Notas R Pardo ropardo@gmail.com

Los mejores principios de Diseo OO


Libro: Framework Design Guidelines, Conventions, Idioms, and Patterns for Reusable .NET Libraries, Cwalina y Abrams, AddisonWesley, 2008

Libro : Effective Java, 2nd Edition, Joshua Bloch, Addison-Wesley, 2008

Notas R Pardo ropardo@gmail.com

Ejemplo Sobre Clases e Interfases..


Item 13: Minimize the accessibility of classes and members Item 14: In public classes, use accessor methods, not public fields Item 15: Minimize mutability Item 16: Favor composition over inheritance Item 17: Design and document for inheritance or else prohibit it Item 18: Prefer interfaces to abstract classes Item 19: Use interfaces only to define types Item 20: Prefer class hierarchies to tagged classes Item 21: Use function objects to represent strategies Item 22: Favor static member classes over nonstatic

Notas R Pardo ropardo@gmail.com

Buenas Prcticas de Programacin en .NET


Principios Diseo de Cdigo OO Ejemplos en C#

Notas R Pardo ropardo@gmail.com

Resumen Sesin 4
Metodologa de Desarrollo de Producto
Metodologas Arquitectura Diseo Programacin Pruebas

Notas R Pardo ropardo@gmail.com

Ejercicios Sesin 4
Evale cmo va a controlar la Calidad Tcnica del Producto
Calidad de la Metodologa Calidad de la Arquitectura Calidad del Diseo Calidad de la Codificacin Calidad del Sistema de Pruebas Calidad del Ambiente de Desarrollo
Notas R Pardo ropardo@gmail.com

Resumen Total
Emprendimiento y sus 3 elementos Modelos de Negocio y el Canvas Patrones de Modelos de Negocio Evaluacin de Modelos de Negocios Metodologa de Desarrollo del Cliente, Lean Startup y Running Lean Metodologa de Desarrollo de Producto
Notas R Pardo ropardo@gmail.com

De qu no hablamos?
Financiamiento De la Fase de Ejecucin en la Metodologa de Desarrollo del Cliente

Notas R Pardo ropardo@gmail.com

Qu sigue?
MinTICs
Apps.co Fiti

Notas R Pardo ropardo@gmail.com

Gracias

Notas R Pardo ropardo@gmail.com

Vous aimerez peut-être aussi