Metodología de trabajo SCRUM

Scrum es una metodología de desarrollo "ágil" muy empleada en ciertos sectores, incluido el de desarrollo de videojuegos.

Cuando se desarrolla un videojuego pueden suceder dos de estas cosas o ambas: que haya variaciones por el publisher de turno durante el desarrollo del mismo, o que internamente miembros del equipo, sobretodo por parte artística, tengan continuas ideas que creen mejorarían el producto. Cuando esto sucede, implica que si la persona al cargo del grupo dice un "NO", el artista se desmotiva o pierde implicación con el producto. Si se cambia puede ser negativo también.

Entonces, ¿como solucionar todo estos puntos? Con la metodología Scrum.
Cuando se trabaja bajo Scrum, se hace con grupos de trabajo reducidos. Si el proyecto es de grandes dimensiones habrán varios pequeños grupos que se coordinarán posteriormente. Es preferible que los grupos no superen las 9 personas y tener grupos mixtos y equilibrados en cuanto a perfiles se refiere.

Se realizan tareas a corto plazo, cuantificando los plazos. Cada ciclo que compone el Scrum debe estar finalizado generalmente en plazos de una semana. Al finalizar cada plazo, las tareas deben ser funcionales en el juego/aplicación.

Con esto se consigue ver resultados palpables a corto plazo, y si llegan cambios o peticiones de cambios tanto externamente como por parte del equipo, la respuesta pasa de ser un "NO" a un "terminamos esta fase del scrum, y miramos si es factible y positivo para el proyecto". La implicación de todos los miembros aumenta y se ven partícipes en todo momento.
Añadir que valorar una sugerencia no implica que vaya a realizarse. Cada trabajador debe atender a las decisiones que se toman por encima, pero se siente partícipe y no un "mandado".


Podéis consultar mucha más información sobre el tema en la propia wikipedia.

Gestión de proyectos

Cuando tenemos entre manos un proyecto, bien sea propio o externo, sobretodo cuando lo desarrollan más de una persona, es conveniente gestionarlo de alguna forma. Y por gestionar me refiero a tener una lista de personas que participan y las horas de trabajo de que disponen, recursos materiales o monetarios, fechas clave, etc.

De esta forma se puede asegurar una correcta asignación de los recursos a cada tarea de forma realista, y por ende facilita el cumplimiento de fechas de entrega previstas sin sobresaltos de última hora.

Para realizar estas tareas suele hacerse uso de programas como Microsoft Project (De pago. Instalación local, windows. Planificación de las tareas y correcto seguimiento), o Mantis BT (Gratuito. Web. Bugtracking para seguimiento y asignación de tareas/incidencias).

Microsoft Project es un excelente software para realizar y seguir la planificación, aunque es bueno acompañarlo de un bug tracking como Mantis BT para tener un seguimiento del estado actual de las tareas en curso.

Personalmente he empleado ambos. Y en entornos cerrados con asistencia física de los trabajadores, Microsoft Project es excelente para un desarrollo más clásico de las funciones para las que está diseñado. Cuando se trabaja con gente a distancia, ya no es solo preferible combinar con un brug tracking, sino que se hace casi indispensable. Mantis BT cumple a la perfección, y puede emplearse para muchas y diferentes funciones, desde seguimiento de tareas hasta un uso exclusivo como software de por ejemplo incidencias telefónicas. No en vano es empleado por gran cantidad de empresas, especialmente de TI.

Mi descubrimiento más reciente surge con la búsqueda de una alternativa gratuita a Microsoft Project. Observando las distintas opciones me topé con diverso software gratuito y/o open source, tanto para windows como para linux. Pero ya puestos, me interesé por alguno que trabajara a nivel web, y no solo di con un uno, sino que además incluye tracking, lo que va a permitir tener todo integrado en futuros proyectos. El nombre del susodicho es dotProject, totalmente gratuito y de código abierto.


Sin más, os insto a hacer software de una forma correcta con un buen control del mismo. Espero las opciones indicadas sean de vuestro agrado. Un saludo a todos.

Recomendación (Anime)

Voy a ir citando en futuras entradas diversas series que vale la pena ver, esta vez se trata de Macross Frontier, una de las sagas del universo Robotech (y personalmente, la que más me gusta de todas ellas).


Sinopsis:

Es el año 2059, han pasado ya 47 años desde la primera guerra contra los zentraedis, en la cual la humanidad estuvo al borde de la extinción. Conscientes del riesgo que implicaba no tener otro hogar en el universo en el cual la humanidad pudiera sobrevivir, se inicia la era de la exploración espacial. Así, a abordo de gigantescas flotas colonizadoras compuestas por enormes naves que podían contener ciudades enteras, la raza humana se encaminan en la búsqueda de nuevos mundos que pudieran albergar vida humana. Una de estas flotas es la número 25 conocida como Macross Frontier la cual alberga alrededor de unas 10 millones de personas entre humanos y zentraedis, quienes desarrollan sus actividades como en cualquier urbe moderna.

Al comienzo de la serie la flota recibiría a la Idol Pop Sheryl Nome quien tendría un concierto en dicha colonia. Los protagonistas de la historia son Alto Saotome, un joven estudiante y que se gana la vida haciendo trabajos de medio tiempo (uno de estos trabajos era precisamente formar parte del número del concierto de Sheryl) y Ranka Lee, una chica que trabaja en la cadena de restaurantes Nyan Nyan (cadena de restaurantes propiedad de los tíos de Lynn Minmay) y Finalmente Sheryl Nome: la idol de esta serie. Mientras tanto en el espacio exterior algo terrible está por ocurrir.

Simuladores de vuelo (PC)

Voy a dedicar esta entrada a hablar de esos títulos que superan la condición de videojuego para ser simuladores, en este caso del genero de la aviación.

Aclarar que como simuladores, los controles no son los de un arcade, y su manejo nos costará un duro aprendizaje tanto en términos de pilotaje, como funcionamiento de cada cabina o las indicaciones, y por su puesto las reacciones de la aeronave responderá de forma realista ante las fuerzas que la afectan.

Primero de todo hay que diferenciar entre dos grandes grupos, la aviación civil y la militar.

Aviación civil:
En esta categoría controlaremos aviones de transporte o mercancías, avionetas, etc. Aprenderemos el funcionamiento y pilotaje de éstos, cumpliremos con horarios y rutas o disfrutaremos del vuelo libre.

  • Flight Simulator: El título de microsoft es de los más recomendados para iniciarse en el genero de los simuladores aéreos por su nivel de aprendizaje algo más factible que el resto de alternativas de calidad. La versión más reciente es Microsoft Flight Simulator X, y tanto texto como voces de tutorial se encuentran en perfecto castellano. A día de hoy aun muchos usuarios permanecen en la anterior entrega Flight Simulator 2004 por ser menos exigente en recursos y disponer de mucho material adicional de terceros. Esto no es un problema si tienes un buen equipo, pues hoy día ya se encuentra mucho material extra disponible (de pago o no). Para conseguir realismo máximo dicen los más experimentados es necesario pagar por ciertos plugins y hojas de ruta, pero sin duda si estás empezando, con el pack Flight Simulator X Gold Edition tienes entretenimiento y aprendizaje para años.
  • X-Plane: X-Plane es sin duda el simulador de aviación civil más realista que puedes encontrar en el mercado, y el mayor punto a favor de ello es gracias a su complejo sistema de físicas. Con mismo equipo, se ve más bonito y con menos tirones por tema visual que su competidor Flight Simulator. La versión más reciente, X-Plane 9, en la versión que distribuye Friendware con menús en español de fabrica, consta de de 6DVD de doble capa, lo que una vez instalados vienen siendo 60Gb de disco duro. Por suerte, los discos están divididos por regiones y no es necesario instalar todo si no queremos. Los dialogo de radio, los escucharemos en perfecto inglés. Añadir que tal es la calidad de este título que una versión adaptada de éste es aprobado por la FAA de forma oficial como herramienta de aprendizaje, pudiéndose apuntar los pilotos dichas horas como horas de vuelo real.
Aviación militar:
En la aviación militar, como no podría ser de otra manera nos pondremos a los mandos de aviones de guerra de diversas épocas, recreando enfrentamientos, volando on-line con nuestro clan (escuadrón), etc. Recordemos, que aunque leamos "militar" no implica simplicidad, pues no dejan de ser simuladores, y el pilotaje de cada equipo nos supondrá, al igual que en la aviación civil, conocer una cabina nueva y adaptar nuestra forma de pilotar a las características de la misma.

  • IL2 Sturmovick: Simulador de la II Guerra Mundial, volaremos las "chatarras" de la época. Como todos los casos en este sector los principios no serán fáciles, y se añade una característica que no encontramos en otros títulos como es el torque del motor. No pasarán inadvertidas sus físicas y su gran sistema de daños realista. Este título se ha hecho famoso no solo por su modo offline, sino por su genial online, en el que será una delicia combatir junto a nuestro escuadrón a la vez que nos comunicamos verbalmente con el resto de miembros con un lenguaje e indicaciones correctos. Pese a sus años en el mercado sigue vendiendo como el que más, y podemos encontrarlo a un precio ESTUPENDO asegurándonos horas y horas de diversión.
  • Falcon 4: Realismo puro a los mandos de uno de los muchos modelos de F16. Se simula la practica totalidad de botones que componen el avión, lo que nos puede suponer hasta 20minutos de clicks para encender de cero un avión.

En los vuelos on-line se suele emplear la herramienta de comunicación TeamSpeack.


Periféricos:
Muchos y muy variados, pasando por teclado y ratón, gamepads y joysticks.

Los joysticks hay de 2 tipos, el genérico (palanca y base) y los HOTAS que tienen casi todo lo de uso habitual disponible en nuestras manos (sí, en las dos). El termino HOTAS suele ir ligado al genero militar, aunque también se emplea en ocasiones cuando nos referimos a los joysticks de vuelo civil específicos.

Pueden ser más o menos complejos y de mayor o menor calidad, con botones re-programables o no y , como no podía ser de otra forma, con precios acorde a sus prestaciones. En el mercado podemos encontrar desde sistemas específicos para combate, pasando por híbridos o sistemas totalmente dedicados a vuelo civil (control principal en forma de volante, pedales, palanca, track-ir y módulos del panel de la cabina para ver en ellos todos los datos en tiempo real en lugar de hacerlo en la cabina virtual del juego). Así que como deduciréis, podemos gastarnos desde 30€ hasta... lo que tengamos en la cartilla.


Enlaces de interés:
Para terminar, si os ha interesado el tema y queréis profundizar más, empezar de lleno en el mundillo o apuntaros a un curso de vuelo con un instructor virtual (muy serios, hay que cumplir y comprometerse con los horarios y estudiar) no podéis dejar de visitar estas dos comunidades:

SVN, o como hacer eficiente el trabajo en equipo

Si eres programador y crees es un incordio trabajar en equipo necesitas leer esta entrada.

Uno de los mayores problemas para trabajar varias personas sobre un mismo proyecto de forma simultanea es el intercambio de ficheros, modificación de éstos, y discrepancias de código por modificaciones que otro haya podido hacer. En definitiva, una perdida de tiempo enorme.

Por suerte, existe el control de versiones. Primero fue cvs y actualmente su evolución svn (subversion).

Con subversion, la idea es partir de un proyecto base común y tenerlo en una maquina correctamente configurado mediante un servidor svn (local o remotamente), de tal forma que todo el equipo pueda crear contenido nuevo y modificar el actual de forma simultánea. En el momento que vayamos terminando nuestras tareas, bastará con hacer commit de nuestra carpeta de proyecto para que sean enviados los cambios.
Cuando hagamos update, nuestro cliente svn será el encargado de fusionar todos los cambios, del que en muy pocos casos será necesario resolver un conflicto de algún fichero.
En definitiva, un ahorro de tiempo inmenso.

En la web tenemos a nuestra disposición desde svn online gratuitos (nuestro código será publico en ellos, pues se supone código libre como es el caso de google code o sourceforge), hasta hospedajes privados de pago o, la opción de montar nuestro propio servidor en nuestra máquina de forma totalmente gratuita, y adaptándolo a nuestras necesidades (bien en una red de empresa, bien utilizando esa maquina como servidor online).

Los clientes svn que recomiendo son:

Para terminar, un par de recomendaciones en su uso:
  1. No seleccionar para compartir ficheros de proyecto que sean exclusivos del equipo.
  2. Hacer Update SIEMPRE antes de hacer Commit.