Scrum – Gráfico Burndown Charts

Saludos amigos!

En el anterior post  “Scrum Proceso Ágil de Desarrollo de Software”  habíamos presentado una introducción sobre la definición del proceso del modelo Scrum, los artefactos y los roles del modelo, la forma y las características en la que se desarrolla el proceso, lo cual nos sirvió como una introducción sobre lo que trata el modelo en sí, las muchas ventajas que podemos obtener al aplicarlo en nuestros equipos y gran velocidad para desarrollar producto de Software; en menor tiempo, costo y esfuerzo, y sobre todo, de gran satisfacción para el cliente. Así también, sabemos que una de las tareas principales cuando desarrollamos Software es la estimación, sí,  estimar y/o medir el tiempo que vamos a tardar en desarrollar el producto.  Para lograr este objetivo, Scrum propone los siguientes gráficos:

Gráfico Burndown Charts
Gráfico Burndown Charts

Este tipo de gráfico permite realizar diversas simulaciones: ver cómo se aplazan las fechas de entrega si se le añaden requisitos, ver cómo se avanzan si se le quitan requisitos o se añade otro equipo, etc.

Proyectos Ágiles - Sprint Burndown Chart
Proyectos Ágiles - Sprint Burndown Chart

Datos en el gráfico de Burndown

El gráfico se traza para cada sprint. Se estima el tiempo que se puede o quiere tardar en realizar una serie de características. Al comenzar, el primer sprint, no se sabe la velocidad del grupo, realmente, por lo que se puede comenzar sin estimación precisa. Esto se va ajustando con el tiempo.

En principio, se comienza el trabajo, se comienzan a realizar tareas.

Al día siguiente, se hace revisión de las tareas acabadas y se apunta en el gráfico el día anterior y los puntos que se avanzó. El gráfico, al crearlo, se suele trazar una línea que cubre la diagonal de la esquina superior izquierda hasta la esquina inferior derecha. Si los puntos van cayendo sobre la línea, ya sabemos lo que se va a ir tardando en realizar el proyecto.

En caso de que los puntos vayan cayendo en el rectángulo superior, eso será indicio de que hay que eliminar historias. Si se mantiene siempre en el bloque inferior, se pueden agregar más historias.

Saludos mis amigos!

🙂

BitBucket: Servicio de alojamiento de proyectos basado en Web

Saludos.

Hace unas semanas en el curso de diplomado, el docente mostró la importancia de manejar y administrar los proyectos de Software mediante un Sistema de Control de Versiones. La facilidad para compartir el codigo y controlar las diferentes versiones con el equipo de desarrollo es de mucha importancia durante el proceso de desarrollo de Software. Si bien, para algunos era un termino nuevo, todos comenzaron a aprender y a investigar.

No hace mucho que vengo explorando Google Code, la integración que tiene con muchos Sistemas de Control de Versiones hace de éste un lugar ideal para compartir repositorios. Sin embargo, existen otras alternativas más específicas el cual seria interesante ir conociendo y explorando.

BitBucket, es un servicio de alojamiento basado en web, para los proyectos que utilizan el sistema de control de versiones Mercurial. El servicio está escrito en Python.

GitHub es una forja para alojar proyectos utilizando el sistema de control de versiones Git. Está escrito utilizando el framework Ruby on Rails por GitHub, Inc. (anteriormente conocida como Logical Awesome).

Recientemente estoy probando BitBucket. La gran comunidad de usuarios y su amplia lista de repositorios me ha llevado a registrarme y compartir algunos proyectos académicos desarrollados en la universidad:

Mi lista de repositorios

uisocialcrm:

El proyecto “uisocialcrm” trata de un Sistema de Información Web para gestionar envíos de campañas publicitarias para pequeñas y medianas empresas desde un enfoque de Social CRM (Customer Relationship Management), presentado en la Universidad en la materia de Taller de Grado I. El sistema está desarrollado en PHP con MySQL, con librerias Smarty, jquery, ajax, ADOdb, haciendo uso de API’s para publicar contenidos en Twitter por medio del protocolo abierto OAuth. El proyecto no está finalizado en su totalidad, dejo abierto a la comunidad para futuros cambios. Para ingresar al sistema: Usuario: uialberto Password: 12345

Documentación: http://goo.gl/PqjnL

uiecompras:

El proyecto “uiecompras” trata de un pequeño y sencillo ejemplo de una tienda virtual, fué presentado en la Universidad en la materia de Sistemas Distribuidos. El propósito del proyecto fué aprender RMI en Java y Remoting en .NET, de tal manera que el cliente pueda efectuar compras al crédito por medio de objetos remotos implementados en diferentes tecnologías, la instanciación de los objetos sería en .NET utilizando (ActiveX) y en Java (Applets). El sistema está desarrollado en PHP con MySQL, con librerias Smarty y ADOdb. El IDE utilizado es NetBeans! Se ha adjuntado el script de la base de datos. Todos los usuarios del sistema ingresan con el password: 12345.

uicalculadora:

El proyecto “uiCalculadora” es un Evaluador de Expresiones Aritméticas, permite evaluar expresiones aritméticas básicas en una sola línea, respetando prioridad de operadores. Este trabajo fué presentado en la Universidad para la materia de Estructuras de Datos II. Para la resolución del problema se utilizó un árbol de expresión. Desarrollado en el lenguaje Java bajo la plataforma J2SE – IDE Netbeans 6.8.

Que les sea de utilidad.

Hasta pronto.

 

Integrar TortoiseSVN con repositorio de Google Code

Saludos amigos.

Mediante este post quiero mostrar como podemos integrar el cliente subversión TortoiseSVN con un repositorio creado en Google Code, así poder establecer un equipo de trabajo online y convertirnos en gestores de proyectos* :), eso sí, con mucho trabajo y esfuerzo.

¿Qué es Google Code?

Es el espacio donde Google comparte con todos los usuarios parte del código de programación que se utiliza dentro de la compañía, una plataforma gratuita para desarrolladores interesados en el código abierto, permitiendo alojar proyectos de Open Source y compartirlos con nuestra comunidad.

Nota: Todos los archivos que subas y compartas deben ser OPEN SOURCE, de código abierto, caso contrario, si descubren que alojaste un archivo privativo (Mp3’s, .wma, .swf, etc) podrián cerrar tu cuenta.

Además, debes conocer que Google ofrece diferentes servicios de alojamiento de archivos, de los cuales puedes utilizar en la realización de tus proyectos, como es el caso de: Google Docs, Picasa Web, Google Ajax y más. Con todo esto de computación en las nubes o Cloud Computing y los servicios de alojamientos de ficheros gratuitos no está mal sacar provecho de éstos, eso sí, tomando muy en cuenta el contenido de la información que compartimos.

Bien comencemos con el tutorial.

Lo que necesitamos

Para la realización del tutorial necesitamos lo siguiente:

-Instalador de TortoiseSVN que puedes descargarlo de la página principal de TortoiseSVN

– Cuenta de correo en Gmail.

1. Crear el proyecto en Google Code Hosting

– Nos dirigimos a la siguiente página  code.google.com/hosting , iniciamos sesión con nuestra cuenta de correo electrónico.

Iniciamos Sesión en Google Code

– Creamos el Proyecto pulsando en el enlace Create a new Project lo que vendría a ser nuestro repositorio e ingresamos los datos que nos solicitan:

– Project name: Un nombre válido y disponible.
Projectt summary: Un breve resumen de lo que trata el proyecto.
– Projectt description: Realizamos una pequeña descripción del proyecto.
Version Control System: Para el Sistema de Control de Versiones seleccionamos: Subversion
-Source Code License:
 Seleccionamos el que mejor se ajuste a nuestra necesidades. (GNU GPL v3)
Project Label’s: Agregamos las etiquetas que hagan referencia a nuestro proyecto.

Tienda Virtual en Google Code

– Ingresamos a la pestaña Source para obtener la dirección URL de nuestro proyecto y así poder conectarnos mediante TortoiseSVN. Copiamos los datos de recuadro 3. Generamos el password (recuadro 4) para conectarnos al proyecto (repositorio), esta clave es única para cada usuario participante del proyecto.

Proyecto Google Code Tienda Virtual

– Generamos el password para conectarnos por TortoiseSVN. Este código es único para cada usuario del proyecto.

Generar Password del Proyecto

Con esto ya tenemos listo nuestro repositorio para conectarnos por medio de TortoiseSVN y poder hacer el control de versiones. Continuemos.

2. Instalamos TortoiseSVN 1.6

– Una vez descargado TortoiseSVN procedemos a realizar la instalación, en mi caso ocupe la versión TortoiseSVN-1.6.15.21042-x64-svn-1.6.16. 

TortoiseSVN 1.6

– Una vez instalado nos pedirá reiniciar la máquina, pulsamos Ok. Luego procedemos a crear el directorio en el cual descargaremos nuestro repositorio de Google Code. En mi caso, la carpeta se llama: ui-tiendavirtual. Damos Click derecho y veremos una serie de opciones nuevas en el menú despegable. Seleccionamos: TortoiseSVN->Import.

TortoiseSVN Import

– Nos aparecerá el siguiente cuadro de diálogo donde vamos a necesitar copiar el URL generado por el Google Code Repository haciendo referencia a nuestro proyecto, si le da un mensaje para recordar nuestro cambio, pulsamos Ok.

TortoiseSVN 1.6

– Nos pide autenticación. Entonces nuestro USERNAME es el usuario que usamos en nuestra cuenta de GMAIL, y el PASWORD es el que nos asignaron anteriormente (el que generamos) para el proyecto. Marcamos SAVE AUTHENTICATION, ya que en cada proceso de importación nos los pedirá.

Import TortoiseSVN

– Se inicia el proceso sincronización e importación de nuestro repositorio.

TortoiseSVN Import

– El siguiente paso es realizar el proceso CkeckOut para obtener los archivos del repositorio, según nuestra cuenta de usuario y password asignado para el acceso al proyecto. Pulsamos click derecho sobre la misma carpeta que realizamos el proceso de sincronización e importación como se muestra en la imagen:

TortoiseSVN CkeckOut

– Verificamos que los datos sean los correctos; tenemos que revisar la URL del repositorio (dada por Google Code Repository) y el directorio CheckOut (donde se almacena internamente el proyecto).

CheckOut TortoiseSVN

– Se inicia el proceso de CkeckOut. Una vez finalizado el proceso veremos que se marca con un símbolo de Ok y de color verde, además, crea una estructrua de directorio, esto indica que nuestra carpeta local se encuentra sincronizada y actualizada con Google Code Repository.

TortoiseSVN CheckOut

Estructura de directorio después del CheckOut con TortoiseSVN

– A partir de ahora todo documento que guardemos dentro de esta carpeta se podrá subir al repositorio y trabajarlo en paralelo por cada usuario que pertenece al proyecto y tiene privilegios de hacer cambios a los documentos. Como vemos a continuación, yo tengo un documento en el cual estoy trabajado en Enterprise Architect 7.5.

Diagrama Tienda Virtual

– Con SVN Commit podemos subir los cambios efectuados localmente al repositorio actualizando el archivo en el repositorio (Google Code Repository) con los datos de quien hizo el cambio.

TortoiseSVN Commit

– Con SVN Update podemos bajar los cambios efectuados en el repositorio.

SVN Update

Como observamos a continuación ya tenemos el archivo que estamos trabajando localmente en nuestro Google Code Repository. A partir de ahora, solo trabajamos con los procesos SVN Commit (Subir los cambios) y SVN Update (Actualizar el repositorio).

Tienda Virtual

Espero el tutorial sea de mucha utilidad.

Saludos.

Módulo de Adquisición de Conocimiento

Saludos.

Organizando los archivos en las unidades de mi computadora me encuentro con uno de mis últimos proyectos realizados para la materia de Sistemas Expertos en la Universidad, y es precisamente un Módulo de Adquisición de Conocimiento de un Sistema Experto, para los entendidos en el área, se trata de la primera parte del proyecto del Ing. Ginno Barroso. 🙂

Si nos vamos a la definición de Wikipedia:

Un Sistema Experto (SE)  es un conjunto de programas que, sobre una Base de Conocimientos, posee información de uno o más expertos en un área específica.

No es más que emular el comportamiento de un experto humano en un dominio concreto.

El proyecto se encontraba dividido en 2 partes, de las cuales solo publicaré la primera parte, ya que es el que más tiempo me ha tomado realizarlo, la parte final no es más que algunos algoritmos que toman el conjunto de hechos y reglas de la Base de Conocimiento, y de acuerdo a éstos se emite resultados.

Información del proyecto.

Nombre: Módulo de Adquisición de Conocimiento

Interfaces: FrmPrincipal.cs, FrmBaseConocimiento.cs, FrmVariables, FrmReglas.cs, FrmEditarReglas.cs

Clases: BC.cs, BCNSerializable.cs, TablaObjetos.cs, JObjeto.cs, JValores.cs, JRegla.cs,  JHecho.cs, JLiteral.cs, JMinterns.cs.

Lenguaje de Programación: C# – Microsoft Visual Studio 2008

Descargar el Modulo de Conocimiento

Password: UIBASOFT

Algunas capturas de pantalla

Pantalla principal.

Pantalla Principal

Modificando las variables y sus valores.

Ventan Variables

Creando Reglas.

Reglas del SE

Editando Reglas

Editar Regla

Pueden ver la estructura del programa en el código fuente.

Que les sea de utilidad.

Hasta pronto.