viernes, 5 de junio de 2020

Modelo de negocios Canvas

Modelo de negocios Canvas

La metodología Canvas, introducida en 2008 por Alexander Osterwalder explica de una manera muy simple y precisa, los diferentes aspectos necesarios para que una idea de negocios funcione.

En general consiste en un lienzo, presentado normalmente en un gran formato, en el que los distintos grupos de personas pueden discutir sobre los elementos que hacen al proyecto y cómo se relacionan entre sí, dando entonces muchísima claridad sobre qué es lo que hacen, cómo lo hacen y a quién se dirigen.

El formato está compuesto por 9 componentes:

  • 1 Segmentos de Clientes
  • 2 Propuesta de Valor
  • 3 Canales de Distribución y Comunicación
  • 4 Relación con los Clientes
  • 5 Flujo de Ingresos
  • 6 Recursos Claves
  • 7 Actividades Claves
  • 8 Red de Partners (Socios clave)
  • 9 Estructura de Costos

Un modelo de negocios es la manera en la que definimos como funcionará nuestra empresa, de que manera agregaremos valor para entregarlo a nuestros clientes, definir un modelo de negocios es útil para enfocarnos en lo que de verdad importa. existe muchos modelos, en este caso vemos el modelo de negocios CANVAS porque se adapta a las empresas mas modernas, es un modelo ágil, eso significa que lo podemos modificar cuando sea necesario de una manera rápida, cosa que es difícil para las empresas tradicionalistas, si vas a comenzar un emprendimiento, definitivamente necesitas definir tu modelo de negocios y el model CANVAS es una de las mejores opciones para estos tiempos.

Un modelo Canvas se mira de esta manera:

Ejemplo del diseño del modelo canvas


La numeración indica en que orden debes ir definiendo tus áreas

1 Segmento de Clientes:
Aquí identificas a que publico te diriges y debes segmentarlo lo mas pequeño posible y se usan 3 términos para definirlo:

Imagina que estamos haciendo un proyecto para ofrecer servicio a domicilio nuestra empresa de cuidados de mascostas

TAM: Define todo el mercado al que podrías dirigirte, suele ser muy amplio, en este caso sería todas las personas que tienen mascotas

SAM: esta limitado por el tipo de cliente, ejemplo el universo son las personas que tienen mascotas, pero el SAM lo reduce a las personas que tienen mascotas y los dejan solos por largos periodos de tiempo frecuentemente

SOM: está limitado por nosotros como empresa es decir , ya sabemos que nuestros clientes son las personas que tienen mascota y necesitan cuidados de sus mascota, ahora con el SOM detectamos que solo podemos atender a personas que viven en nuestra ciudad por ejemplo, en este caso no se limita a causa del perfil del cliente, esta limitado por nuestra capacidad de empresa de dar el servicio solo a una ciudad

Una ve llegues al SOM, acabas de encontrar al publico a quien te diriges

2 Propuesta de Valor
Este es el corazón de la empresa, es lo que tu empresa o proyecto está ofreciendo, una vez definida la propuesta de valor, todas las demás áreas del modelo CANVAS se enfoncarán en que esta propuesta de valor funcione, sea rentable y llegue al cliente

Para generar una propuesta de valor debes tomar todo el tiempo necesario posible, semanas o meses. Existen muchas técnicas para generar propuestas de valor, generalmente es realizar un verdadero estudio de mercado,  realizando entrevistas, encuestas, lo importante es lograr entender a tu cliente, no asumas que por saber del tema comprendes al cliente, debes hacer un trabajo de investigación si quieres hacerlo bien, te recomiendo la metodología de DESING THINKING para lograr entender a tu cliente y poder generar una propuesta de valor


3 Canales de Comunicación

Define de que manera haremos llegar nuestra propuesta de valor a nuestro cliente, cuando el producto es electrónico, posiblemente llegará a tu cliente por medio de una plataforma online, o videos, etc. cuando son productos físicos puede ser a través de una tienda y entregas a domicilio, cuando son servicios pueden ser los profesionales que realizarán el servicio, puedes tener uno o mas canales de comunicación.

4 Relaciones con los Clientes
Es la manera de como el cliente se puede comunicar con nosotros, puede ser por un chat, por correo electrónico? por whatsapp, mensajes de facebook, 
Esto lo debe definir la empresa y debemos comprometernos con ofrecer un buen servicio como responder en menos de 1 hora, esto es lo que mas afecta la experiencia de usuario, es posible que los clientes elijan a la empresa por la experiencia de usuario y deje de lado otra empresa que sea mas barata pero tiene un mal servicio, o incluso que su propuesta de valor sea mejor. entonces es sumamente importante definir como nos relacionaremos con los clientes, comprometernos

5 Flujos de Ingresos

Define como la empresa obtendrá un beneficio monetario. en este punto también se define , cuanto está dispuesto a pagar el cliente por nuestra propuesta de valor, de que manera prefiere pagar el cliente, pago unico? subcripcion? dependiendo del consumo? (ejemplo la electricidad como servicio publico usa este método) por crédito? por cuotas? por donaciones? recibiendo publicidad? renta o alquiler? licencias o franquicias? 
puedes elegir uno o mas tipos de flujos de ingresos, por ejemplo las membrecias freemium donde usas una aplicación gratis pagando viendo publicidad o puedes pagar para eliminar la publicidad y obtener algunos beneficios extra


6 Recursos Claves

Son todos aquellos activos que necesitas para que todos los puntos anteriores puedan funcionar. es decir los activos que necesitas para entregar la propuesta de valor, los activos que necesitas para cumplir en tus canales de comunicación y relaciones con los clientes y los activos que necesitas para recibir pagos.
por ejemplo puedes decir que necesitas un local comercial o plataforma online, un correo corporativo, una cuenta de whatsapp empresarial, una cuenta en alguna red social, pasarelas de pago, inventario, pueden ser pantentes, algunos recursos humanos por profesiones específicas, recursos monetarios como créditos o liquidez, etc.

También es muy útil para identificar que activos son realmente necesarios y cuales son accesorios, los activos accesorios pueden ser muy útiles para tu negocio pero es importante identificarlos que podemos prescindir de ellos


7 Actividades Claves

Son todas las actividades imprescindibles para llevar a cabo nuestra propuesta de valor, es importante de nuevo diferenciar de actividades claves a actividades opcionales, si debemos incluir las actividades necesarias para cumplir con todos los puntos antes mencionados, como atender las relaciones con los clientes, manejar el flujo de ingresos, explotar los canales de comunicación, etc. se pueden dividir en tipos de actividades:
- Producción: diseño, realización y entrega de productos

- Solución de problemas: consultoría o brindar servicios

- Plataforma/red (solo si aplica)


En las actividades claves, identificas también quien realizará cada actividad, y en este punto es posible identificar que la carga de trabajo es muy elevada para las personas que integran en el equipo, aquí se puede decidir quitar alguna actividad clave y remover lo relacionado en todos los demás puntos.

ejemplo, imagina que decides quitar la actividad de escribir un blog, entonces como no tienes quien escriba el blog, debes borrar el blog de tu canal de comunicación y de tus recursos claves, podrías incluirlo en un futuro cuando el equipo crezca


8 Red de Partners (Socios clave)
Quienes son nuestros provedores y aliados claves, son todas aquellas actividades que tercerizaremos, estos socios claves hacen que funcione el modelo de negocio.
muchas actividades se tercerizan porque no tenemos la capacidad, o para reducir riesgos, o para reducir gastos.
por ejemplo una tienda online puede tercerizar los envíos, seguro le saldrá mas barato que ellos ir a dejar el producto,
los proveedores mayoristas también son socios estratégicos, los servicios como Paypal son socios, Shopify, puedes tercerizar tu contabilidad y finanzas a otra empresa.


8 Estructuras de costos

son los costos más importantes inherentes a nuestro modelo de negocios, lo importante acá es detectar cuales son las actividades claves mas costosas, identificamos todos los costos necesarios para poder operar


Costos fijos            por ejemplo rentas o subscripciones

Costos variables

Economía de escala        ejemplo comprar como mayorista

Economía de amplitud    

debemos detectar que costos son fijos y que costos son variables, importante identificar los costos mas elevados y cuestionarnos si son necesarios o no para nuestra propuesta de valor


Con esto termino de explicar todas las áreas del modelo Canvas, quiero destacar que Canvas es un modelo agil , diseñado para poder modificarse rápidamente, es buena práctica que realices todo tu canvas y si no tienes algunas areas claras aun asi puedes seguir definiendo las demás areas y luego puedes volver a la area que dejaste pendiente.
seintete en la libertad de modificar el canvas las veces que sea necesario, y también una vez arranques tu proyecto también puedes modificar tu canvas para que se adapte a las necesidades que vayan surgiendo. Otra cosa muy importante no esperes a tener todo, pienza en un MVP, un producto minimo viable, lanza tu proyecto lo mas pronto posible y prepárate para ir creciendo junto a las necesidades de tu cliente























 

lunes, 27 de abril de 2020

Sitios para aprender y practicar CSS


Sitios para practicar y mejorar tu CSS:

Aquí te dejo una lista de sitios web muy útiles cuando estas utilizando CSS. estos enlaces son juegos, documentación oficial de referencia, bibliotecas de fuentes, colores e imágenes


Todos los enlaces fueron obtenidos del CURSO DE FRONTEND  de la plataforma de Aprendizaje PLATZI.

Agradezco a Estefany Aguilar Restrepo quien impartió este curso de manera épica.

ella trabaja como desarrolladora frontend en La Haus (Bienes inmobiliarios) y como profesora en PLATZI


A ella la puedes encontrar como el seudónimo de teffcode en diferentes redes sociales, te recomiendo seguirla, ya que comparte muy buen material relacionado a CSS y tecnologías Front End
https://twitter.com/teffcode?lang=es 
https://co.linkedin.com/in/teffcode 
https://github.com/teffcode
https://www.teffcode.com/

Ahora si, aquí están los enlaces prometidos:

HTML: 
Para comenzar, es necesario que tengas los conocimientos básicos de HTML, aquí hay una buena documentación de las etiquetas HTML que existen:
https://htmlreference.io/

Una vez construyas tu estructura HTML puede serte útil este sitio web, que puede revisar todas las etiquetas que utilizaste y mostrarte los errores
Validador de etiquetas:
https://validator.w3.org/

CSS:
Mozilla es un referente que tiene muy buena documentación en cuanto a tecnologías web, por lo que verás varios enlaces a mozilla sobre diferentes temas

Documentación de las propiedades existentes en CSS:
https://cssreference.io/

Referencia Oficial de Mozilla sobre Pseudoclases:
https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes

Referencia Oficial de Mozilla sobre Pseudoelementos:
https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements


Bibliotecas:
Mientras estás creando un sitio web, vas a necesitar contenido adicional, aquí te dejo diferentes sitios donde puedes obtener todos estos elementos, gratis.

Biblioteca de Emojis:
te muestra un tablero con emojis, solo da click al que te guste y estará en tu portapapeles para que lo pegues en cualquier editor de texto
https://coolsymbol.com/emojis/emoji-for-copy-and-paste.html

Bibliotecas de iconos
https://iconos8.es/

Biblioteca de fuentes:
con fuentes me refiero a tipos de caligrafía, google nos ofrece descargar la fuente para luego incluirla en el código, o el código HTML para incluir la fuente directamente desde los repositorios de google
https://fonts.google.com/

Biblioteca de Fotos:
Definitivamente es mala idea que incluyas cualquier imagen en tu sitio web, ya que la imagen podría tener copyrigth.
Usa imágenes propias o que tengas permisos para utilizarlas o usa una de este sitio donde puedes obtener fotos y videos que comparten creadores talentosos totalmente gratis
https://www.pexels.com/es-es/

Bibliotecas de colores:
Cuando creas un sitio web, es importante tener una paleta de colores. Aquí te dejo enlaces de sitios donde puedes obtener los codigos RGB o hexadecimal de los colores que podrías incluir en tu sitio web
https://picular.co/Video
http://paletton.com/

En especial me gusta coolors.co te permite compartir paletas de color con un enlace, útil para trabajar en equipo
https://coolors.co/001514-fbfffe-6b0504-a3320b-e6af2e

Arquitecturas de CSS
Cuando trabajes en el desarrollo de sitios web, lo mejor es que uses una arquitectura, para que tu código pueda ser entendido por otros desarrolladores sin tantos problemas.

Aquí te dejo documentación oficial para que elijas la arquitectura que se adapte a las necesidades de tu proyecto, en mi caso elegí BEM.

CSS orientada a objetos
https://www.smashingmagazine.com/2011/12/an-introduction-to-object-oriented-css-oocss/

BEM
BLOQUE - ELEMENTO - MODIFICADOR
http://getbem.com/introduction/

SMACSS
arquitectura de CSS escalable y modular
http://smacss.com/

ITCSS
Triangulo invertido de CSS
https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/

ATOM
CSS modular y escalable, inspirada en química
https://bradfrost.com/blog/post/atomic-web-design/


Tecnologías para maquetación en HTML5
desde HTML5 la propiedad display (que permite trabajar con los layouts) nos ofrece las tecnologías FLEXBOX o CSS-GRID, no debemos pensar que una tecnología es mejor que otra, simplemente en algunas ocasiones lo recomendavle será usar flexbox y en otras ocasiones CSS-GRID

FLEXBOX documentación oficial
https://css-tricks.com/snippets/css/a-guide-to-flexbox/

conceptos básicos de FLEXBOX
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Flexible_Box_Layout/Basic_Concepts_of_Flexbox

Definitivamente, la manera que me ayudo mas a afianzar los conocimientos de FLEX, fue este juego, donde usando propiedades CSS para FLEX debemos colocar ranitas en sus hojas

FLEXBOX FROGGY
https://flexboxfroggy.com/#es

CSS-GRID documentación oficial
https://css-tricks.com/snippets/css/complete-guide-grid/

CSS-GRID documentación oficial Mozilla
https://developer.mozilla.org/en-US/docs/Web/CSS/grid

Jen Simmons es diseñadora y programadora senior en Mozilla, ella tiene un sitio web, donde tiene ejemplos de CSS usando CSS-GRID
https://labs.jensimmons.com/

Jen Simmons también tiene un canal en youtube, llamado Layout Land, donde podrás encontrar contenido relacionado a CSS
https://www.youtube.com/channel/UC7TizprGknbDalbHplROtag

Similar al juego de las ranas para flex, está este juego donde tendrás que regar plantas usando propiedades de CSS-GRID, muy recomendado
https://cssgridgarden.com/#es


Accesibilidad:
Cuando creamos sitios web, es nuestra responsabilidad, otorgar toda la información posible a los lectores de pantallas para las personas no videntes.

Para esto debemos trabajar en nuestro código para utilizar las etiquetas de manera adecuada y tomar en cuenta el tab-index de las etiquetas

Aquí te dejo unos enlaces que serán de ayuda
Configuración de voces:
https://support.apple.com/es-lamr/HT202362

ANDI herramienta de pruebas de accesibilidad
https://www.ssa.gov/accessibility/andi/help/install.html

herramienta de prueba de navegacion tabindex
https://developer.mozilla.org/es/docs/Web/HTML/Atributos_Globales/tabindex



Storybook
https://storybook.js.org/docs/guides/guide-html/

sábado, 8 de febrero de 2020

Borrado Masivo de datos en Oracle usando particiones

Borrado Masivo de datos en Oracle usando particiones

Borrar datos masívamente usando un comando delete afecta los recursos de la base de datos.
Si los borrados masivos son frecuentes en tu sistema, es mejor que organices tus tablas para que puedan soportar este comportamiento.

Puedes investigar mas sobre particiones en Oracle y las diferentes particiones que se pueden aplicar, en esta ocasión recomiendo las particiones por lista horizontales.

Ejemplo:
las particiones son para manejar grandes volúmenes de datos, pero para explicar mejor presento una tabla con pocos datos. 

Tabla tblRevisiones:

Revisioncodigodato1dato2
rev1sku1aaaaa12343
rev1sku2bbbb125324
rev1sku3ccc238305
rev1sku4dd351286
rev1sku5ff464267
rev1sku6ggg577248
rev1sku7hhhh690229
rev1sku8dd803210
rev1sku9ff916191
rev1sku10ggg1029172
rev1sku11hhhh1142153
rev1sku12dd1255134
rev1sku13ff1368115
rev2skucode1rojo12
rev2skucode2blanco15
rev2skucode3azul78
rev2skucode4rojo101
rev2skucode5blanco134
rev2skucode6azul167
rev2skucode7rojo200
rev2skucode8blanco233
rev3sku1datosvalores
rev3sku2datosvalores
rev3sku3datosvalora
rev3sku4datosvalores

Tenemos una tabla que nos interesa borrar todos los datos que pertenecen a una dicha revisión es decir, la rev1, rev2, rev3 o cualquier otra revisión que pudiera existir.

Lo que hacemos en este caso es preparar la tabla para que almacene todos los registros rev1 en una partición, todos los rev2 en otra partición, todos los rev3 en otra partición y que pueda crear automáticamente otras particiones cuando se ingresen nuevas revisiones:

Paritción rev1

Revisioncodigodato1dato2
rev1sku1aaaaa12343
rev1sku2bbbb125324
rev1sku3ccc238305
rev1sku4dd351286
rev1sku5ff464267
rev1sku6ggg577248
rev1sku7hhhh690229
rev1sku8dd803210
rev1sku9ff916191
rev1sku10ggg1029172
rev1sku11hhhh1142153
rev1sku12dd1255134
rev1sku13ff1368115

Partición rev2:

Revisioncodigodato1dato2
rev2skucode1rojo12
rev2skucode2blanco15
rev2skucode3azul78
rev2skucode4rojo101
rev2skucode5blanco134
rev2skucode6azul167
rev2skucode7rojo200
rev2skucode8blanco233

Particion rev3:
Revisioncodigodato1dato2
rev3sku1datosvalores
rev3sku2datosvalores
rev3sku3datosvalora
rev3sku4datosvalores


De esta manera, cuando necesitemos borrar todos los registros que pertencen a la rev1 por ejemplo será suficiente con el comando:

ALTER TABLE table_name TRUNCATE PARTITION partition_name

ALTER TABLE tblRevisiones TRUNCATE PARTITION rev1

Esto eliminará todos los registros que pertenecen a rev1 de manera inmediata, utilizando muy pocos recursos de la base de datos.

Crear Tabla Particionada

CREATE TABLE tblRevisiones (
    revision    VARCHAR2(30),
    codigo      VARCHAR2(30),
    dato1       VARCHAR2(30),
    dato2       NUMBER
)
PARTITION BY LIST (revision)
(
PARTITION rev1 VALUES ('rev1'),
PARTITION rev2 VALUES ('rev2'),
PARTITION rev3 VALUES ('rev3'),
PARTITION ERR VALUES (null)
);


De esta manera cuando se inserten registros, automáticamente se insertarán en la partición correspondiente según el valor de la revisión que contenga cada registro.

Crear Particiones de manera dinámica

Seguramente deseas crear particiones de forma dinámica , esto se puede hacer en un procedimiento almacenado:

vs_tabla := 'tblRevisiones';
vs_Particion := 'rev1';
vn_existe_particion := 0;

SELECT count(1
INTO vn_existe_particion 
FROM ALL_TAB_PARTITIONS 
WHERE TABLE_NAME = vs_table 
AND PARTITION_NAME = vs_Particion;

IF vn_existe_particion = 0 THEN
    EXECUTE IMMEDIATE 'ALTER TABLE tblRevisiones ADD PARTITION '
||vs_Partition
||' VALUES('''||vs_Partition||''')';
--ELSE
--    EXECUTE IMMEDIATE 'ALTER TABLE tblRevisiones TRUNCATE PARTITION ' 
-- || vs_Particion
END IF;
/* CONTINUAR CON EL PROCEDIMIENTO DE INSERTAR */

El ELSE que está comentado serviría para truncar la partición antes de insertar, pero si no se necesita entonces se hará la inserción normal, agregando registros a la partición correspondiente

El truncado solo se puede hacer si la partición existe, por eso va dentro de un ELSE.


Saludos a Yadir Rivera y Norman Hernández, espero les sea de utilidad