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.
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?
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.
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.
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.
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".
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.
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.
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?
codigo programacion java .net programador consejos desarrollo software