viernes, julio 25, 2008

Consejos practicos de desarrollo de software...

Como desarrollador ocasional de software, me he aventurado en el área de la producción de software a la medida, para un par de individuos. Como muchos desarrolladores, me encuentro con el terrible y repetitivo paradigma de ser un: Programador-DBA-Diseñador-Tester, lo cual, siempre termina siendo un dolor de cabeza.
Pero aunque sea un dolor de cabeza, no podemos negar que es una realidad que a todo estudiante de alguna carrera afín de la informática termina haciendo para conseguir un par de $$$ extra.

"Arrrgh!, que asco de GUI... x_x"

La teoría nos dice por ejemplo que un Programador NO debe hacer trabajo de diseño de la GUI del programa, pero la practica y la realidad (no mucha gente capaz en el medio) nos enseña que podemos hacer un poquito de todo tomando ciertas medidas, que en mi opinión son necesarias para mantener la cordura en todo el proceso de desarrollo de software.

Así que sin más retrasos, les presento una lista de consejos prácticos - que parten de mi experiencia - de desarrollo de software:

1. Planea entrevistas, visitas y un par de meses para entregar el software.
Planea entrevistas con las personas que utilizaran el software y visitarlos varias veces al mes, la idea detrás de esto es saber cuanto conocimiento tienen la o las personas que usaran tu programa. Deberías de ser capaz de contestar estas preguntas de tus clientes: ¿Qué tipo de usuario es? ¿Es un usuario común, avanzado o un PowerUser? ¿Qué sistema operativo prefiere/utiliza?

"Conoce a tu cliente para atender sus necesidades informáticas."

2. No esperes que tu cliente cambie de sistema operativo solo por tu programa.
Pedir que tu cliente cambie de sistema operativo solo porque tu programa usa "cron", es desconsiderado y poco profesional. Puedes recomendar que cambie de sistema, pero no lo cambies solo porque si. Si eso sucede, implica que como profesional tienes que hacerte cargo de que la mingración sea 100% satisfactoria, sin excusas.

"Trata de no atentar contra la comodidad del usuario."

3. Utiliza Frameworks y herramientas de desarrollo populares.
Utiliza .NET, Java SDK, RoR, etc. No te quedes con lenguajes o entornos de desarrollo desfazados como VB 6.0, Delphi 7.0 ó VisualFoxPro, se practico y ¡mantente al tanto de las herramientas que te hacen la vida más fácil!
Al menos deberías de usar/conocer lo basico: Unit Testing, Code Coverage, Source Version Control, Automated Build/Deployment. Si no sabes que es nada de eso, más te vale comenzar a aprender, porque son herramientas que te ahorraran tiempo.

"Utilizar un framework hará que tu trabajo sea más rápido."

4. No reinventar la rueda.
Si algo ya esta hecho, es software libre (opensource) y lo entiendes, entonces: tomalo, modifícalo y usalo. Y reconoce al autor del código que usaste.

"Solo puedes mejorar la rueda... ¿Para que re-inventarla?"

5. Concentrate en solucionar solo lo que prometiste.
Imagina que estas haciendo un programa tipo Agenda. Y de pronto se te ocurre que te gustaría que envié mensajes a celulares y correos electrónicos que sirvan de notificaciones... si no te lo pidieron NO lo hagas. Si agregas constantemente características a tu programa: terminaras con un "Frankenware".

"No pierdas de vista tu objetivo (vivan las 3D manías)"

6. Busca la simplicidad y el minimalismo.
Ingeniate para que tu GUI sea sencilla y clara. Ejemplos de simplicidad es el iPod, el iPhone y la pagina principal de Google.

"La imagen lo dice todo, haz click para verla más grande."

7. Si puedes construye librerías/controles propios y ¡compartelos!.
Crea una serie de librerías/controles personales que te ayuden a realizar tu trabajo más rápido y asegurate de compartirlo, ya sea con el mundo o con algún colega.
Esto te servirá para madurar como programador y mejorar la legibilidad y el estilo de tu código.

"Un programador celoso no es un buen programador."

También comparte tus experiencias, a más de alguien le pueden servir :)
Y tú, ¿que tipo de experiencias has tenido como desarrollador de software?

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...