Demeter 2006-2007

Friday, March 30, 2007

Cómo hacer las cosas

Amnesia... es la única excusa razonable que se me ocurre por haber dejado olvidado tanto tiempo a este blog. Amnesia unida, cómo no, a la falta de tiempo típica en cualquier proyecto de software cuando las deadlines se acercan, cuando hay días (si hay suerte) o semanas (por desgracia, lo más tipico en este mundillo) en que hay que aumentar los recursos dedicados a un proyecto porque hay que responder ante un cliente.

Precisamente a este tema voy a dedicar el post: ¿qué tiene de especial el desarrollo de software, que hace que sus planificaciones se salgan de fechas tan fácilmente?

Intentaré no alargarme mucho. Para empezar, comentaré una "pequeña" anécdota que nos ha ocurrido durante estos meses de ausencia blogueril. Se trata de un fallo de programación (llamado bug en jerga) que ha consumido mucho tiempo al proyecto... en realidad, demasiado.

Uno se pregunta cómo hemos llegado a ese punto. Qué se debería haber hecho para evitar el bug. Cuál es la metodología correcta para no encontrarse de nuevo con un problema similar en el futuro. En definitiva, tener la garantía de que se puede cumplir lo planificado con una cantidad mínima de problemas.

Hace unas semanas lei precisamente un interesante artículo, They Write the Right Stuff, que trataba un poco el tema,y que responde a la pregunta planteada más arriba. La respuesta es: Nada.
No hay nada de especial en el desarrollo de aplicaciones informáticas. Si se sigue una metodología determinada, es posible predecir el desarrollo de un producto con la misma precisión que puede planificarse la construcción de una casa (ni mucha ni poca, pero razonable).

La pregunta obvia es: ¿por qué no seguimos entonces esa metodología milagrosa? Hay varios factores básicos:

1) Cuesta muchos recursos (horas, dinero, tiempo) comparado con los costes de la metodología habitualmente usada.
En proyectos militares, espaciales, de aviación o medicina, etc. puede compensar de sobra, pues hay vidas y mucho dinero en juego.
Pero en el 99.99% de los casos (como el caso de NTS y el resto de empresas del sector), desde luego no compensa, en absoluto.



2) Es necesario que el software y hardware en el que nos basamos haya sido desarrollado con el mismo afán de perfección que nuestro producto.
Cuando uno se encuentra con que una API estándar, como es MIDP, no es seguida al pie de la letra, pueden aparecer problemas inesperados (y no miro a Nokia! ;-).

3) Conocimiento previo del software y hardware en el que desarrollamos.
NTS podría jactarse de conocer los entresijos de muchos dispositivos móviles, pero lo cierto es que, cada vez que aparece uno nuevo en el mercado (muy a menudo), siempre traen algun sorpresita oculta, para amenizar la vida a los confiados programadores y atrasar el desarrollo un par de días más.


Moraleja: sinceramente, ni idea :P. Por desgracia, con las herramientas disponibles hoy en día, parece que la única posibilidad es aceptar que los planes rara vez se cumplen a la perfección, y seguir poniendo todo nuestro empeño para minimizar esos riesgos usando otras metodologías (tal vez imperfectas, pero bastante eficaces).

Monday, March 26, 2007

No nos hemos olvidado del BLOG!!

Después de 2 meses sin escribir en el blog, ahora lo puedo hacer en calidad de Ingeniera en Informática por la Universidad de Deusto :D

Hace unas semanas fue la Ceremonia de Investidura de la promoción 2001/2006, y aunque tanto mis compañeros como yo, nos la perdimos entera exceptuando la entrega del diploma y la foto con toga y gorrito, estoy segura de que fue un acto bonito para todos los presentes en el Paraninfo. Como es habitual, los estudiantes de informática somos tantos que no entramos en la sala, así que nos hacen esperar fuera hasta que tenemos que subir al escenario.

Desafortunadamente, ya que mi madre es un poco nula con las tecnologías modernas, véase cámara de fotos digital en este caso, no tengo ni una foto del evento en la que yo aparezca. Eso sí, tengo una del Dr. López de Ipiña dando su speech y otra del delegado de mi clase…

Pues nada, en cuanto a la actualidad de proyectos en NTS, ahora mismo estoy en el desarrollo de una aplicación multi-dispositivo y multi-idioma para Windows Mobile. Me está gustando bastante, así acabo de cogerle el truco a los dispositivos móviles, aunque por lo que se puede apreciar, es bastante chungo ya que cada uno es un mundo.

Empecé con Mónica y ahora estoy con Juan, Víctor y Haritz en ocasiones. Haritz es mi experto en Gimp e imágenes en general ;)

Por mi parte nada más que contar, excepto por el evento especial que tendrá lugar este viernes y al que aguardo con muchas ganas (sólo por verte sufrir Iñaki, ya lo sabes :P).

Hasta pronto!!

Susana

Monday, March 19, 2007

¿Qué hay de nuevo, viejo?

Hace ya tiempo que no escribía para este maravilloso blog. Después de estar metido en el PCP, Jagoba me reclutó para un proyecto con PDAs (¡al fin!). La verdad es que el código estaba casi cerrado, yo sólo tenía que hacer pruebas leyendo códigos de barras. Para mí fue una diversión; “cacharrear” con el lápiz, usar el lector… pero para mis compañeros fue un incordio. Aquello parecía y sonaba a un supermercado, piiii, piii, piiii, casi me echan jejejeje.

El desarrollo se hizo en C++, compilando con “embedded visual C++”. En mis orígenes, en la universidad, todo se programaba mediante C/C++: le llamábamos el Dios de la programación. Como en NTS sólo había trabajado en Java o C# (bajo entornos muy intuitivos), este proyecto fue como volver a casa. Esos punteros, esas referencias… En ese proyecto también demostré mis habilidades con el inglés, traduciendo la aplicación al idioma anglosajón. No es que fuera un trabajo muy extenso pero había que hacerlo y estoy orgulloso de hacerlo.

Ahora estoy en otra cosa, con Esther, una experta de la empresa. Estamos parametrizando unas aplicaciones para SalesForce para una empresa de por aquí. Ella se ha encargado de los controles AJAX de SalesForce y yo de las validaciones de los formularios, estilos… Es decir, JavaScript al poder. Ya es el segundo proyecto en el que me encargo del apartado JS y me estoy convirtiendo en un experto en Scripts. No es malo pero no me gustaría limitarme sólo a este tipo de desarrollo.

En mis ratos libres estoy desarrollando una web para la Banda de Música de Lekeitio. Encontré un hosting gratuito temporal que se basa en el trío PHP/MySQL/Apache. Así que aprovecho para aprender otra cosa por mi cuenta.

De momento esto es todo. Ya os contaré más en el siguiente post.

Do zobaczenia!