domingo, 29 de enero de 2012

Defina su Proyecto y Equipo de Trabajo

Defina su Proyecto, Alcance y Fecha de Culminación

Si ha seleccionado GWT como su herramienta principal para generar sus páginas web e intercambiar datos con un servidor, es conveniente que defina detalladamente el proyecto que va a emprender.

Podría leer varios libros de GWT, la documentación ofrecida por Google y revisar múltiples aplicaciones de ejemplo, pero es factible que llegado el momento en el que deba comenzar a escribir sus aplicaciones en GWT haya olvidado lo que aprendió al comienzo. Es importante que antes de escribir su primera línea de código sepa muy bien qué es lo que desea como producto final para que concentre su esfuerzo de aprendizaje en lograr su objetivo.

En primer lugar, defina su proyecto. GWT está orientado para desarrollar aplicaciones del lado del cliente. Sin embargo, GWT ofrece alternativas para que escriba cortas aplicaciones en el servidor y así mismo le ofrece los mecanismos para que su aplicación cliente mantenga un diálogo de intercambio de datos con las aplicaciones del servidor.

Defina el proyecto con un propósito específico, por ejemplo una aplicación que permita administrar un sistema complejo existente, que provea opciones para crear usuarios y perfiles, que suministre reportes o que ofrezca consultas relativas a la actividad del sistema en general.

Puede definir su propia red social, un servicio de consulta de música, videos, películas, series de televisión, libros, o para crear álbumes de fotografías, o compartir recetas de cocina, etc. Su imaginación no tendrá límite. Mucho mejor si usted ha sido contratado para realizar un proyecto por el cual recibirá un pago.
Una vez definido su proyecto, establezca su alcance inicial y una fecha tentativa para terminarlo. Si no establece una fecha final, su proyecto se convertirá en una historia sin final y nunca cumplirá el objetivo. Es cuestión de pura disciplina. Establezca un cronograma con tiempos justos para que pueda dar cumplimiento a cada actividad.

Siga una metodología. Revise sus apuntes en administración de proyectos, tome de allí lo más relevante para que lo aplique a lo largo del desarrollo.

Revise otras metodologías de desarrollo de software y administración de proyectos. Por ejemplo, Agile o Scrum.

Inicialmente en este blog no se define un proyecto en sí, es posible que lo haga mas adelante pero por ahora el propósito de este blog es proveer algunas recomendaciones para el uso de GWT.

Defina Recursos

Revise cuidadosamente los recursos con los que cuenta y  los que posiblemente necesitará durante toda su implementación. Si los define desde un comienzo evitará demoras en la ejecución del proyecto mas adelante.
Cuántos computadores posee, cuáles utilizará como servidores, cuáles serán utilizados para desarrollo y cuáles para pruebas. Estos interrogantes son su punto de partida.

Defina el software adicional que va a utilizar. Las aplicaciones cliente son exigentes en cuanto a componentes visuales se refiere y requieren que sean vistosas, que tengan logos bien definidos, claros, con una combinación de colores coherente para que le den personalidad a su aplicación. De manera que necesitará otras herramientas de software para diseñar componentes gráficos como el logo, iconos para las opciones, imágenes para representar productos, etc. Si no cuenta con uno de estos productos, en muchas ocasiones es preferible que contemple la posibilidad de contratar a un diseñador gráfico. Es preferible que este tipo de arte sea realizado por alguien más con suficiente experiencia y mucha creatividad.

Si ya tiene experiencia utilizando algún servidor web (Tomcat, JBoss, GlassFish, WebSphere, Weblogic, etc.) no tendrá ningún problema en instalar los Servlets generados con GWT.

Del mismo modo, su experiencia en base de datos será fundamental para definir un modelo relacional consistente y confiable.

Defina una hora del día para estudiar, realizar una prueba con algún componente y para que lo implemente en su proyecto.

Defina un equipo de trabajo

El producto de su trabajo se verá beneficiado si  su proyecto es desarrollado por un equipo de colaboradores. La distribución de responsabilidades de acuerdo con alguna especialidad es fundamental para que el proyecto avance conforme al cronograma establecido.

Si no cuenta con un equipo de trabajo y usted es un desarrollador ‘todero’ tendrá que enfrentar muchos desafíos en cada nivel de sus aplicaciones. Se verá obligado a ser mucho más organizado, documentar cada módulo y cada etapa del cronograma. Su memoria no dará a basto para recordar cada detalle de los miles de líneas de código que tendrá que escribir. Así mismo tendrá que documentar sus programas fuentes, escriba comentarios que expliquen las rutinas que esta escribiendo. Estos facilitaran el entendimiento de las rutinas aun meses después de haber sido escritos.

Defina Estándares

Es muy importante que también defina varios estándares antes de comenzar a escribir sus aplicaciones.
Por la cantidad de componentes y clases a las que se verá enfrentado, es recomendable que siga un estándar para nombrar clases, métodos y variables. De ese modo facilitará la lectura y comprensión de su propio código tiempo después de haber sido escrito.

Puede basarse en la codificación húngara (http://es.wikipedia.org/wiki/Notaci%C3%B3n_h%C3%BAngara). Por ejemplo, Defina su proyecto con un par de letras. Si su proyecto es de administración de usuarios, puede utilizar las letras au_ como prefijo para definir sus clases e interfaces.

au_loginView.java: Nombre de la clase con los componentes gráficos de su página de login.
au_newUserView: Nombre de la clase con los componentes gráficos de la página que desplegará la forma para entrar los datos de un nuevo usuario.

Los siguientes son ejemplos de algunos prefijos para la definición de variables y clases:

Prefijo
Tipo
 Ejemplo
ft
FlexTable
ftLoginBox
fp
FormPanel
fpLoginForm
lbl
Label
lblUser
txt
Text
txtUser
pw
PasswordTextBox
pwPasswd
btn
Buttone
btnSav
lb
ListBox
lbCountries
b
boolen
bFlag
s
String
sLanguage
i
int
iIndex
l
long
lCode


Defina un Repositorio y un sistema de contingencia

Si terminó la versión 1.0 de su proyecto, guarde este código antes de comenzar a realizar correcciones para liberar la versión 1.1. Es importante mantener el código original de la versión que va liberando. De ese modo es posible volver un paso atrás cuando sea necesario.

Una forma sencilla de hacerlo es crear un directorio en un servidor por cada versión liberada, pero esto no le garantiza que alguien más pueda alterar el código original.  Si ya ha liberado la versión 1.7 y desea revisar la versión 1.5, nadie la garantiza que la versión 1.5 sea la versión deseada.
Este problema se resuelve utilizando un producto de repositorio de código fuente y control de versiones. Tortoise puede ser una opción.

Defina Documentación

Lleve un registro de su trabajo diario. Si, ya sé que no es nada grato escribir comentarios y llevar un documento con anotaciones acerca del progreso de su desarrollo. Pero es lo más aconsejable, mucho más cuando usted trabaja solo. Los documentos escritos serán su propia memoria.

Es aconsejable que mantenga un documento de ‘consejos y trucos’ (tips and tricks). Escriba y copie allí todas aquellas rutinas, parámetros de configuración, enlaces interesantes, ejemplos, etc., que le hayan ayudado a resolver complejas situaciones en su proyecto.

No hay comentarios.:

Publicar un comentario

Autor de El Efecto Margarita