Google

viernes, 9 de febrero de 2007

¿Cuándo está listo?

Cada vez que tenemos una entrevista con un cliente o usuario para levanta requerimientos, siempre surge esta pregunta, después de una sesión en la que el cliente te da todo un discurso explicandote que es lo que el sistema debe hacer, luego, con una sonrisa en la cara te pregunta, ¿Para cuándo está listo?

Esta pregunta no es fácil de responder, sobre todo porque uno como analista no ha terminado de digerir todos los requerimientos, y aunque lo que nos piden parece ser fácil, no lo es. No nos dejemos engañar por las apariencias.

Si uno dice está listo para tal fecha, perfectamente podemos estar poniendonos una soga en el cuello. Solo en los casos en que conocemos perfectamente lo que vamos a desarrollar es que podemos dar una estimación.

En el camino podemos encontrarnos con muchos obstáculos, y generalmente son cosas que no habiamos tomado en cuenta en el momento en que le dijimos con una seguridad a nuestro cliente, "esta listo para tal fecha". Ahora nos damos cuenta que el desarrollo se tomaba más tiempo del previsto.

Solo por poner un ejemplo sencillo, al intentar abrir un archivo, ¿Cuántas cosas pueden suceder que pueden provocar un error?. Vaya, ahora no resulta tan simple como llamar a la ventana de dialogo y listo.... una lista de cosas que pueden pasar son:


  • El archivo es un directorio
  • El archivo fue borrado mientras se seleccionaba el mismo y se presiona el botón Aceptar
  • Si el archivo esta en red, se pierde la conexión
  • El archivo está abierto y bloqueado
  • No se tiene permisos sobre la carpeta
  • ...

Esto es un ejemplo sencillo, imaginense lo que puede suceder en un caso más complejo...

Moraleja: Cuando elicitas los requerimientos solamente te están dando los casos de uso con el flujo normal de los eventos, y alguno que otro curso alterno. Hay que identificar todos los posibles flujos alternos que consigamos, priorizarlos y descartar los que no apliquen para el desarrollo. Una vez hecho esto es que podrás hacer una estimación de tiempo, y recuerda siempre poner un tiempo de holgura, porque Murphy siempre esta cerca ;)

miércoles, 7 de febrero de 2007

Parodia del iPhone

Hola

Como ya muchos saben, Apple anunció en Enero su teléfono iPhone, el mismo desde el momento de su salida a dado de que hablar

Les dejo esta parodia sobre este teléfono con subtitulos en español por gracias a Carlos Sicilia

Disfrutenlo

martes, 6 de febrero de 2007

Saber programar solo es el principio

He conocido muchos programadores que han tenido la visión de montar una empresa de software, y yo me incluyo en esta lista. Hemos pensado que para hacer dinero con una empresa basta con encontrar una buena idea que solucione un problema que no haya sido solucionada antes, implementarla y listo. O tomar una solución ya existente y agregarle nuevas funcionalidades, de tal manera de tener un software "mejor" que el que está en el mercado.

El gran problema es que nadie nos asegura que esto va a funcionar, y así consigas personas que financien tu proyecto nos enfrentamos con un problema, los inversores de riesgo no van a esperar tanto tiempo para que termines de desarrollar tu solución para empezar a ver el retorno sobre su inversión.

Aqui es donde empiezan los problemas, porque la presión que ejercen los inversores hacen que tengas que apurar el paso, cometiendo errores en el camino que pueden resultar en el fracaso del proyecto.

Otro problema es que por muy buena que sea tu idea, puede ser que alguien ya la este desarrollando. Y más aún, puede ser que haciendo una búsqueda por Internet te consigas con la sorpresa de que ya hay varias empresas ofreciendo el mismo producto o servicio.

Ahora bien, supongamos que tienes una gran idea, y que consigues como financiar tu proyecto. Llevas adelante tu proyecto y lo terminas. Ahora, la pregunta es ¿Cómo lo vendes?

Tu solución puede ser la maravilla de la ingeniería, pero si no consigues que la gente lo conozca, ¿cómo vas a ganar dinero con esto?. Allí es donde radica el éxito de las grandes empresas como Microsoft, esta empresa es reconocida mundialmente no por fabricar el mejor software, sino por tener una maquinaria de marqueting excelente.

Por eso es el título de este artículo, ser un buen programador no basta cuando quieres salir al mercado con un nuevo producto o servicio, tienes que tener una estrategía que te permita mercadearte, que la gente conozca tu solución y más aún, que lo prefiera por encima que tu competencia.

Así que si quieres crear tu propia empresa y ofrecer una solución, debes empezar creando un plan de empresa, un plan de marqueting y esto es solo el principio.

lunes, 5 de febrero de 2007

Presidente de Rumania elogia la piratería de software

Este es el titular de una noticia que leí hace un par de dias en la página de DiarioTI.

Estas declaraciones que a mas de uno lo dejarán sorprendidos, sobre todo porque se trata de un jefe de estado de una nación de la comunidad europea, las hizo nada menos que ante Bill Gates durante el lanzamiento de Windows Vista.

Ahora bien, según el diario, Gates todavía no ha dado ninguna declaración al respecto. Pero ¿que declaración puede dar?, si existe alguien a quien a beneficiado la pirateria a justamente a Gates. Estemos todos claros en que Windows es el Sistema Operativo más utilizado no porque sea el mejor, sino porque desde sus primeras versiones se distribuian versiones piratas.

Lo peor del caso es que cada vez que sale al mercado una nueva versión de Windows (o de cualquier aplicación de Microsoft), no pasa mucho tiempo para que este disponible la version pirata (si es que no ha salido ya).
La verdad es que no existe ninguna protección antipiratería que no se pueda romper, pruebas hay por montones.

viernes, 2 de febrero de 2007

De los Procesos del Negocio a los Casos de Uso

"De los Procesos del Negocio a los Casos de Uso" es un artículo que conseguí en internet hace aproximadamente tres años, y para mi en particular, el artículo en cuestión es simplemente excelente.

Los autores de este artículo proponen una estratégia para obtener de forma sistematica los tanto los casos de uso como el modelo conceptual, partiendo del modelado del negocio a través de diagramas de UML.

Analicemos el articulo desde el punto de vista empresarial. Toda empresa debe tener unos objetivos estratégicos, estos son definidos por la alta gerencia de la empresa cada cierto tiempo, y estos objetivos pueden variar con el tiempo. Por ejemplo, aumentar las ventas en un 30%, aumentar la cartera de clientes en un 10%, etc.

Para cumplir con estos objetivos, cada departamento o gerencia debe plantearse sus propios objetivos, con el propósito de cumplir los objetivos estratégicos. Por ejemplo, para cumplir con el objetivo de aumentar las ventas en un 30%, el departamento de ventas puede empezar un programa de capacitación y entrenamiento para mejorar las habilidades de sus vendedores, contratar mas vendedores, redistribuir las zonas de ventas, etc. En cambio, el departamento de producción puede decidir aumentar su capacidad productiva, compra y/o sustitución de nuevos equipos, etc.

Es entonces, cuando se persigue cumplir un objetivo estratégico que empiezan a crearse nuevas necesidades dentro de la empresa que deben ser satisfechas, y cuando estas necesidades tienen que ver con el manejo de información, sobre todo cuando se refiere a la automatización de procesos, es que nosotros entramos en acción.

Ahora bien, cuando se levantan los requerimientos, es común que uno pregunte acerca del estado actual del sistema y hacia donde quieren llegar, pero en la mayoría de los casos nunca nos preguntamos el ¿por que?, y yo creo que esa es una de las razones por la que el desarrollo del software tiende a fracasar.

En mi experiencia he visto empresas con las que se podria llevar a cabo una cantidad de proyectos que podria ayudarla a mejorar ciertos procesos, pero no se interesan en llevarlos a cabo. La razón no es el costo del proyecto, porque las ganancias o la disminución de costos a mediano y largo plazo supera con creces los costos del proyecto, sino mas bien porque dichos proyectos no estan en sintonía con los objetivos estratégicos de la empresa.

Para concluir, es importante conocer las razones que hacen que una empresa busque soluciones de software, para poder de esta manera aumentar significativamente las probabilidades de éxito.

Bienvenida

Hola...

Bienvenido a mi blog sobre ingenieria del software.

Mi nombre es Edgar González, soy Ingeniero de la Computación en ejercicio. Actualmente trabajo como consultor independiente. Mis clientes son empresas de sectores muy diversos, lo cual me a ayudado a tener una visión mucho mas aplia sobre el como el software puede ayudar a una organización o empresa a alcanzar sus objetivos.

En este blog, escribiré acerca de mis opiniones sobre diversos temas relacionados con la ingenieria del software, pero mas orientado a su aplicación dentro de una empresa. En otras palabras, solo tocaré los temas sobre lenguajes de programación o metodologías de desarrollo en algunas ocasiones. ¿Por qué?, porque creo que ya mucho se ha hablado sobre lenguajes y metodologias, pero poco se habla de aquel que será el usuario de nuestras creaciones, de que es lo que quiere y para que quiere el software.

Espero que este blog les sea de ayuda