Publicidad:
Logo de La Coctelera

infoman

29 Julio 2008

Programador. Tu modelo de datos

La mayoría de los programadores no conocen bien los modelos de negocio de Internet y muchos emprendedores tienen dificultad con precisar su modelo de negocio. Es más, los modelos de negocio evolucionan con el conocimiento del cliente. Es decir, lo que hoy parece claro, mañana es completamente distinto.

Que conste que esto es una conversación de negocios, dejo a mis lectores técnicos que expliquen mejor lo que significa un modelo de datos.

Voy a poner un ejemplo extremo para hacer una especie de caricatura del problema. Imaginaros que quiero describir mi negocio y que éste se refiere a pelotas de tenis. El modelo de datos que acuerdo describe una pelota redonda de...centímetros de diámetro, amarilla, que se utiliza para jugar entre dos jugadores o cuatro y que solo puede dar un bote dentro de la pista (caricatura claro).

Luego voy y me doy cuenta que, realmente, la pelota de tenis no es mi negocio y que mi negocio es un balón de fútbol. Como que he ligado el modelo de datos a la pelota de tenis, no me sirve y tengo que empezar de nuevo.

Por el contrario, un modelo de datos flexible, hubiera descrito, en vez de una pelota un elemento circular o de otra forma geómetrica y hubiera tenido todos los atributos de tamaño, forma, rebotes, jugadores como parte externa y por lo tanto flexible en su composición.

No se si me he explicado. Lo segundo es lo importante. Lo primero nos termina explotando en la cara.

servido por Rodolfo 8 comentarios compártelo favorito

8 comentarios · Escribe aquí tu comentario

Zagalet

Zagalet dijo

Siguiendo con la caricatura, para un programador se podría explicar como:

new class pelota()

Las propiedades (variables de la clase) serían las dimensiones, el color, material, peso, elasticidad...

Los métodos (funciones de la clase) serían getPeso(), getDiametro(), getPosXYZ() <--- Esta es buena para saber si la pelota ha botado dentro o fuera de la zona dentro de las coordenadas de la pista y a altura z=0
ademas de los métodos set que definen como es la pelota: setDiametro(), setColor()...

El control de errores para la clase pelota (que ha de cumpir unas especificaciones) es que tiene que ser esferica, llena de aire (o sucedáneo), tiene que poder botar (una piedra esférica y llena de aire no se considera pelota), ha de ser de unos materiales homologados ( cualquiera de los que estan en el array materialesCE[] ), etc...

29 Julio 2008 | 11:57 AM

Rodolfo Carpintier Santana

Rodolfo Carpintier Santana dijo

Muy bueno, Zagalet. Muchas gracias...

29 Julio 2008 | 12:34 PM

Zagalet

Zagalet dijo

Ahora... como lo explicaría un mecanico, un carpintero, un arquitecto, un camionero.... incluso un sacerdote! Seguro que hay un modelo para cada tipo de negocio.

29 Julio 2008 | 12:43 PM

Diego Parrilla

Diego Parrilla dijo

Rodolfo, de lo que hablas no es un modelo de datos sino un modelo de objetos, que son los que se usan para describir modelos del dominio de un negocio.
Lo que estás pidiendo es que el 'diseño' de tu modelo de negocio (su arquitectura en términos de desarrollo) sea capaz de adaptarse a una cantidad de incertidumbre enorme. Es decir, hacer el diseño de una arquitectura superflexible.

Siento decirte que esto precisamente es lo que en las nuevas tendencias de desarrollo con metodologías ágiles se trata de atajar: la incertidumbre es el gran enemigo de los diseños, por lo que hay que olvidarse de diseños flexibles (que intentan adaptarse a hipotéticos cambios futuros que no sabemos si se adoptarán) y buscar diseños simples (la clave es la simplicidad) que sirvan para la situación actual. Una vez que llegan los cambios, entonces refactorizas tu diseño simple a otro nuevo diseño simple que cubre tus necesidades.

De todos modos, creo que la mente de un desarrollador está amueblada de manera diferente a la de un gestor. El gestor lleva bien (bueno, mejor) la multitarea y la incertidumbre, mientras que el desarrollador necesita certezas y es monotarea. Dos maneras de pensar antagónicas.
Por eso un desarrollador que piense en modo gestor de negocio es algo tan escaso y tan valioso. Y por eso a veces pedir a un desarrollador que gestione incertidumbre es pedir peras al olmo...

29 Julio 2008 | 02:20 PM

Rodolfo Carpintier Santana

Rodolfo Carpintier Santana dijo

Muy bueno, Diego. Pero creo que quizás he explicado mal lo de la complejidad. Estoy de acuerdo que hay que ir a modelos sencillos pero creo que se tenga que "tirar un desarrollo" si tienes que cambiar el modelo de negocio o necesitas 3 meses para poder hacerlo.

29 Julio 2008 | 02:28 PM

Diego Parrilla

Diego Parrilla dijo

En ocasiones los cambios son necesarios y no se pueden evitar. Pero hay otras ocasiones donde se ha hecho una 'sobreingeniería' pensando en el 'por si acaso nos piden esto, entonces lo hacemos así' que el cliente paga en tiempo y dinero, y que puede que nunca lo necesite. Es lo que un gerente con el que trabajé en Telefónica Móviles llamaba 'El Arco de Iglesia'. Decía: 'He pedido un porche para mi casa de campo y me han ofertado un Arco de Iglesia'. Hay que hacer lo imprescindible para el momento justo, y realizar lo accesorio si hay tiempo.

Los arquitectos con menos experiencia tienden a la sobreingeniería para demostrar lo buenos que son (aún no se han llevado palos en proyectos), y los que tienen más experiencia tienden a ofrecer arquitecturas pensando en el presente y factibles. La ventaja de la experiencia es que sin darte cuenta (y sin coste adicional al cliente) se pueden incluir soluciones flexibles que no comprometen la viabilidad de la arquitectura ante los cambios.

Que un arquitecto esté alineado con el negocio es lo deseable, pero hay factores que influyen. Tu diste en el clavo con el tema de la fidelidad o a tu empresa (y sus objetivos) o a la empresa de la tecnología que usas (Microsoft por ejemplo). Tuve un jefe que decía que hay que ser oportunista respecto a la tecnología a usar. Resultó que tenía razón: la tecnología es el medio, no el fin.

29 Julio 2008 | 03:40 PM

Raul

Raul dijo

Los comentarios de Diego son muy pertinentes.
En realidad, el ejemplo que ha puesto Rodolfo no es malo, porque al fin y al cabo estamos hablando de cosas comparables (pelotas).
El problema es cuando se afronta un proyecto en el que se intenta hacer lo mismo, pero con una pelota, un telefono y un billete de metro. Ya se que suena exagerado, pero yo he formado parte de proyectos como desarrollador en el que se vendio algo parecido al cliente: el megasistema que te lo va a arreglar todo, desde un equipo hasta un servicio. Era un proyecto de una consultora grande, que se vendio a una empresa de teleco incluso mas grande. Todos sabemos que a las consultoras les encanta vender proyectos megalomanos de tipo "pie in the sky" ($$$!). El problema es (1) el desarrollador que luego lo tiene que hacer realidad y (2) el cliente que acaba de pardillo.

Ni que decir tiene que un desarrollo como este se cargaria a una startup en un par de meses...

29 Julio 2008 | 04:18 PM

Pepe

Pepe dijo

"La mayoría de los programadores no conocen bien los modelos de negocio de Internet"

¿La mayoría?, ¿tantos?

Yo algunos programadores que he conocido no conocían los modelos de negocio de internet. Pero no los conocían no por ser programadores, sino por ser idiotas. La sensatez no se recupera ni dejando de programar ni empezando a hablar de EBITDAs o ROIs.

29 Julio 2008 | 06:54 PM

Los comentarios están cerrados


Sobre mí

Avatar de Rodolfo

infoman

Madrid, España
ver perfil »
contacto »

Rodolfo Carpintier es Infoman. Escribo sobre lo que me llama la atención, sobre lo que me gusta y, en general, sobre negocios de Internet.

Soy Presidente de DAD - Digital Assets Deployment, (http://www.dad.es) la incubadora de Internet





Technorati Profile

Add to Technorati Favorites

Wikio – Top Blogs

http://www.wikio.es
Locations of visitors to this page

Fotos

Rodolfo Carpintier Santana todavía no ha subido ninguna foto.

¡Anímale a hacerlo!

Buscar

suscríbete

Selecciona el agregador que utilices para suscribirte a este blog (también puedes obtener la URL de los feeds):

¿Qué es esto?

Crea tu blog gratis en La Coctelera