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.

Notas (Lazarus, alternativa a Delphi)

Si eres programador y buscas una alternativa gratuita a Delphi, tienes a tu disposición Lazarus, una alternativa libre al susodicho (equivale a delphi 7).

Destacar auto-tabulado y remarcado de palabras clave, detalles que la mayoría de los que hemos utilizado algún día Delphi hemos echado en falta.

Podéis leer toda la información en su wiki, o acceder y descargarlo desde la web del proyecto.

Enlace recomendado (Inmersion en Python)

Si quieres adentrarte en la programación Python, te recomendamos leer dive into python (Inmersión en Python), un magnífico manual de dicho lenguaje disponible en Español con licencia GNU-FDL: Visitar el enlace.

Antropologia del beso

¿Quieres saber de donde proviene el beso y porqué hoy día significa lo que significa?
Te recomendamos visitar el siguiente enlace para conocer toda su historia.

PC's y necesidades

Cuando veo gente que se va a una gran superficie y pide "un ordenador potente, que el viejo no va bien" y tras esa frase terminan con un quad-core, 4Gb de ram, una buena gráfica y la última versión de Windows... en ocasiones dudas entre reír o llorar cuando van a utilizar esa máquina para las siguientes tareas que tantos recursos requieren: MSN, navegador web, correo electrónico, suite ofimática y un reproductor multimedia.

Ya de entrada no se porque buscan esa máquina super potente, te dan ganas de decirle "tranquilo, que por ahora los juegos integrados en el msn no son el crysis (plas plas)". Pero no quiero entrar a comentar más el hardware, porque en estos casos deriva en gran medida de desconocimiento y de los recursos que puede chupar el sistema operativo de turno, que a fin de cuentas es de lo que trata esta entrada.

¿Qué necesidad hay de gastarse una suma importante de dinero en el windows nuevo de turno, o recurrir a la piratería tanto de SO como del resto de software instalado? No pretendo despreciar windows ni mucho menos, pero leñe, si no tienes la obligación de utilizar un software comercial concreto no te gastes por gastar esos euros!

Windows:
+ Facilidad de uso e instalación de aplicaciones
+Gran abanico de software (comercial)
+Catalogo de juegos (comerciales)
+Alta compatibilidad
-Altos precios de SO/Software
-Poco seguro, sobretodo cara a la web
-Necesidad de antivirus
-Cada instalación requierebuscar el software, irse a X web, descargar e instalar, o sustituir los puntos dos y tres por desplazarse a un centro comercial, buscarlo, ver si lo tienen, comprarlo, volver y continuar con el proceso.
-Soporte limitado
-Sistema de ficheros de la edad de piedra

Linux:
+Si el hardware instalado está soportado, se instalará todo él solo en la mayoría de casos.
+La mayor parte del software es gratuito y libre
+Todo ese software (realmente no todo, pero sí la gran mayoría) se encuentra organizado en una lista dentro de tu equipo, que se actualiza automáticamente y puedes buscar por nombre o categorías, y basta con hacer doble click y aceptar para que se descargue e instale.
+Gran seguridad
+Apenas hay virus para este sistema operativo, la mayoría de personas no tienen instalado un antivirus. Pero si quieres, de nuevo lo tienes gratis si así lo deseas.
+Soporte más allá de cuando el fabricante deje de darlo, pues la comunidad suele mantenerlo.
+Muchas distribuciones disponibles, pudiendo seleccionar la versión más adecuada para tu equipo y uso, consiguiendo así un gran rendimiento incluso en máquinas que creías que solo servían para tirarlas al container.
+Sistema de ficheros potente y veloz. Olvidate entre otras cosas de defragmentar el disco o que se ralentice el equipo tras instalar/desinstalar programas.
+Puedes probar muchas distribuciones sin necesidad de instalarlas, y si te convence instalar el sistema en tu equipo, pudiendo hacer que conviva con otros sistemas operativos que ya tengas instalados.
+Se puede utilizar software windows con un emulador o empleando una máquina virtual.
-Algún hardware no está soportado (aun).
-Olvídate de instalar de forma nativa muchos programas/juegos comerciales de windows. Si es un juego actual de windows por ejemplo, no esperes que funcione o lo haga bien normalmente ni a través de una máquina virtual windows.
-Algunas tareas de configuración y administración del equipo no son aptas para muchos usuarios. Pero esto es como todo, un usuario siempre será un usuario, si hablamos de un administrador del sistema será éste quien deba adaptarse a hacer cosas de forma diferente a la que emplea en por ejemplo windows.

SO's MAC:
Y bueno, los mac son una mezcla de linux y windows, ofreciendo lo mejor y lo peor a nivel global.
+Toma una base común a linux, unix...
-...pero es una plataforma cerrada y con una politica similar a windows, en la que para casi todo pasas por caja
Si no vas a darle un uso muy concreto de edición multimedia, o simplemente es un capricho por estética, mac no es para tí.


Ciertamente no sabía como decir algunas cosas para no adentrarme en el tecnicismo (pues en tal caso ya sabrá todo esto), ni exponerlo con cosas que son incorrectas. Espero comprendáis a quién va dirigo este artículo.
Y sobretodo, ésto no es solo para usuarios en el equipo de su casa, sino para muchas empresas que podrían ahorrarse unas cifras muy considerables.

Un saludo a todos, lectores.

Videojuegos: factor social (Novedades)

Voy a dedicar esta entrada en dar mi punto de vista sobre algunos aspectos que hacen tan importante el factor social dentro del mundo del videojuego. Ésta vez hablaré solo sobre las novedades.

Empezaremos con unas preguntas simples, y una posible respuesta, que a buen seguro sería la que la mayoría de gente daría en muchos casos:

Enero. Sale un juego al mercado, mucho hype a sus espaldas y parece tener buena pinta. 70€.
  • ¿Puede ser bueno? .
  • ¿Tienes juegos por terminar en tu colección que te gustan? .
  • ¿Lo comprarías?
Junio. La gente que lo ha adquirido da buenas referencias. Parece que el juego realmente es muy bueno. El precio ha bajado hasta los 54€, 32€ importado de reino unido.
  • ¿El juego era bueno, y ahora lo hemos confirmado. Sigue siendo igual de bueno? .
  • ¿Has terminado alguno de tus juegos pendientes en este tiempo? .
  • ¿Te sigue llamando la atención como en Enero? No.


Analicemos un poco lo que sucede.

El mes de salida, teniendo juegos por terminar en nuestra colección sale un juego nuevo. Parece gustarnos pero no tenemos la certeza de su calidad y estamos dispuestos a desembolsar 70€. Eso supone desprenderse de una buena cantidad de dinero, arriesgar en cierto modo a que el contenido esté a la altura y, muy posiblemente, a añadir el último juego que teníamos empezado a esa lista que cuando la nombramos decimos un "ya lo terminaré". Sin embargo, si hay novedades que nos interesan eso no sucede.

En cambio si esperamos unos meses, el ahorro puede rondar más de la mitad del precio inicial. Si el juego era bueno ayer, va a seguir siéndolo hoy.


Todo muy lógico, ¿no? Entonces, visto con perspectiva os preguntaréis por qué sucede si a parte de jugar lo más nuevo no hay más puntos favorables.

Bueno, no se si es favorable o no, pero sin duda, uno de los puntos más criticados por algunos medios des-informativos es que algo negativo, des-humanizante incluso. Pues bien, es todo lo contrario.

Cierto es que la publicidad, el "querer lo que tiene el vecino" y el uso del on-line en ciertos títulos ayuda a esas ventas cuando un nuevo título se pone a la venta, pero parte de esas ganas de tener lo último surgen del elemento socializador que ejercen los videojuegos entre gente de gustos afines.
Y eso no se centra solo en las propias partidas, sino también en hablar sobre el último título puntero, sobre sus puntos fuertes y débiles, comentar esa escena que tanto te ha impactado, compartir secretos... Y parte de eso se pierde con el paso del tiempo, porque "la mayoría" ya hablado de todo eso. Puedes nutrirte de la experiencia de otros, pero no comentar todas esas otras cosas por primera vez, porque todo eso ya está hablado por todos.


Con esta entrada me ventilo la """estupidez""" de comprar todo título en su salida y por otra parte lo que aporta socialmente cuando a veces se demoniza el sector por ciertos medios.


Un saludo.

La anécdota

¿Sabías de donde proviene el nombre del pirata protagonista de la saga Monkey island "Guybrush threepwood"?



Los grafistas del juego, una vez creado el diseño del personaje y todavía sin nombre lo almacenaron en un fichero llamado "guy" ("tipo" en inglés). La extensión generada con el programa de diseño empleado era un conveniente ".brush" quedando "guy.brush".

Ante la pregunta del estudio de "¿Qué nombre le ponemos? ¿Qué nombre le ponemos?" la respuesta surgió ante sus narices.

Pd.: ¡¡Y el apellido fue escogido mediante concurso!!