Los valores suelen ser una idea muy abstracta al momento de aplicarlos, los valores pueden guiar nuestros pensamientos pero en su conversión a acciones puede que se desvíen. Para servir de puente entre los valores y prácticas, entran los principios, estos no son los únicos principios que se pueden aplicar al desarrollo de software, hay muchos más, pero son sobre los cuales XP está basado.

Humanidad:

Una verdad innegable es que es la gente quien desarrolla software, son las personas quienes lo usan, necesitan y disfrutan. Pero aun así muchas veces el proceso de desarrollo de software no toma en cuenta la humanidad de los participantes, fallando al considerar sus necesidades, sus debilidades y aprovechar sus fortalezas.

Para que el humano se sienta a gusto en el desarrollo necesita que se cumplan algunas necesidades como:

Seguridad, sentido de logro, sentimiento de pertenecer a algo, oportunidad de crecimiento y el ser entendido (y entender) por otros.

Parte del desafío de mantener este principio es el de balancear correctamente las necesidades individuales con las del equipo, en ningún momento las necesidades de una persona han de dañar u obstaculizar al equipo, pero esto no quiere decir que hay que sacrificar la individualidad, si no que, cada miembro es responsable por cubrir sus necesidades, y no el equipo completo.

Economía:

Alguien tiene que pagar por el desarrollo del software, y siempre hay que tener en mente que las cosas se desarrollan con un propósito, para cubrir una necesidad o agregar valora un negocio. Priorizar correctamente las necesidades del negocio y atender esos aspectos primero maximiza el valor del proyecto, un desarrollo incremental permite aprovechar los beneficios del trabajo en el menor tiempo posible.

Beneficio Mutuo:

Toda actividad ha de ser beneficiosa para los involucrados, ninguna solución (aun en casos desesperados) ha de ser implementada de una manera que le cause perdida a otro miembro y solo beneficio a uno o a unos pocos, el daño a relaciones valiosas puede ser a la larga una perdida mucho más grande que el costo de buscar otra solución.

Auto-Similitud:

Cuando se encuentra una estructura y método que funciona, y que ha resuelto un problema, hay que intentar aplicar los mismos principios a otros problemas, aun en distinto contexto a distinta escala. En XP la estructura normal es: Escribir una prueba, hacerla funcionar. Esto aplica en la planeación de varios meses (temas), en la planeación semanal (tickets e “historias”) y en el trabajo diario (las pruebas necesarias para resolver una tarea).

Esto no quiere decir que siempre tratemos de aplicar los mismos patrones, a veces puede que sea necesario utilizar una solución realmente única y eso no quiere decir que este mal.

Mejoramiento:

En el desarrollo de software, si nos sentamos a esperar hasta que encontremos la solución perfecta, posiblemente nunca la encontremos, la excelencia por medio del mejoramiento constante es el verdadero objetivo de XP. En cada ciclo de trabajo debemos de hacer nuestro mejor esfuerzo hoy, pero aprendiendo y entendiendo lo necesario para hacerlo mejor mañana.

Diversidad:

Para que un equipo aumente su efectividad necesita diversidad, necesita juntar en el equipo personas con una variedad de destrezas, actitudes y perspectivas para enfrentar los problemas y buscar soluciones. El encontrar desacuerdos, que seguramente los habrá, es una oportunidad para aprender y aprovechar las ventajas de los involucrados, se debe de ser manejarlos de una manera productiva y con respeto.

Reflexión:

Los buenos equipos de trabajo, piensan y analizan su trabajo, cómo y por qué están haciendo lo que están haciendo. Analizan las razones de su éxito y fracasos, no intentan esconderlos si no que los exponen y aprenden de ellos.

Flujo:

En XP el flujo de software valioso entregado debe de ser alto, esto se logra realizando muchas actividades de desarrollo en conjunto. El proceso ha de ser constante, grandes entregas de código separadas por mucho tiempo suelen presentar problemas muy grandes y difíciles de manejar, la retroalimentación es lenta y puede conducir a quedar estancado o necesitar cambios aun más grandes.

Oportunidades:

Los problemas han de ser vistos como la oportunidad del cambio, para alcanzar la excelencia los problemas se han de convertir en oportunidades de aprendizaje y mejoramiento. Si un solo desarrollador comete muchos errores, cambie a una estrategia en pareja, si hay demasiada retroalimentación, pues mejore el proceso de asignar prioridades. Muchos problemas pueden traernos una oportunidad de mejora.

Redundancia:

Los costos de implementar redundancia en los procesos de desarrollo de software puede ser mínimo frente al costo de lidiar con los problemas que se pueden escapar por no hacerlo, los problemas críticos y difíciles deben de ser resueltos de más de una manera, así si una solución falla, la otra previene el desastre. Aunque la redundancia puede ser costosa (pruebas de unidad, revisiones de código y fases de prueba) nunca se debe de eliminar un sistema redundante que esté cumpliendo un propósito.

Fracaso:

Si no se conoce la respuesta correcta, la manera más rápida de encontrar la adecuada es fallando y aprendiendo de la falla. Aunque el fracasar puede parecer un desperdicio, en muchas ocasiones el conocimiento que imparte es enormemente valioso. Esto no es excusa para fallar cuando ya se conoce la solución, pero si no conocemos el camino al éxito, fallar puede mostrárnoslo rápidamente.

Calidad:

La calidad ha de ser un factor que reúna varios ideales, puede ser medida en cantidad de defectos, la efectividad del diseño y la experiencia de trabajar en el desarrollo. Las personas necesitan sentirse satisfechas con el trabajo que realizan. El control de la calidad se puede aplicar variando el alcance de los ciclos, cada cuarto o semana se puede variar con el propósito de aumentar la calidad.

Pasos Pequeños:

Los cambios grandes son peligrosos, y llegan a ser muy costosos cuando fallan, por más tentador que parezca cambiar mucho en muy poco tiempo, es mejor detenerse y preguntar: “¿Qué es lo menos que se puede hacer, que aun sea reconocible como un progreso?” Esto no significa llegar a quedar estancados, bajo las condiciones correctas los pasos pequeños nos pueden llevar muy lejos en muy poco tiempo, sin producir grandes desperdicios si uno de ellos llega a fallar. XP expresa este principio con prácticas como programación orientada a pruebas y la integración continua.

Responsabilidad Aceptada:

Solo nosotros podemos decidir si somos capaces de tomar una responsabilidad, no nos puede ser impuesta. XP practica la responsabilidad con hechos como, quien se apunte para realizar una tarea, también estime cuanto tiempo le tomara. Quien introduzca nuevo código, también es responsable de probarlo adecuadamente.

Valores de XP (Extreme Programming)

Cada persona que se llega a ver involucrada en el desarrollo de software suele tener una idea de que es lo más importante, una planeación meticulosa, utilizar cierto estilo y estándares de código o quizá la total libertad personal. Pero lo que realmente importa no es como cada individuo se comporta, si no como este se comporta dentro de un equipo de trabajo, y que estos valores de trabajo se enfoquen para el mejoramiento del equipo, que sean una ayuda para triunfar juntos.

XP acoge 5 valores para guiar el desarrollo de un proyecto en equipo.

Comunicación:

Probablemente el más importante de los valores a mencionar, la comunicación es fundamental dentro del equipo de trabajo. Muchas veces, para los problemas que se llegan a presentar alguna persona ya conoce la solución, pero por falta de comunicación este conocimiento no le llega a la persona en la posición para realizar los cambios.

Incluso cuando el problema es nuevo e inesperado, la comunicación dentro del equipo puede llegar a encontrar la solución más efectiva y evitar que estos se repitan.

Frente a nuevos problemas, siempre será útil reflexionar si este fue causado por falta de comunicación y de ser así, preguntarse qué nuevas formas de comunicación se necesitan para prevenir estos problemas y manejarlos de la mejor manera cuando se presentan. Comunicación dentro del equipo creara un ambiente de cooperación y unidad, que ayuda a poder aplicar los demás valores.

Simpleza:

El valor de simpleza no se significa necesariamente algo sencillo o fácil, significa enfrentar cada problema preguntado primero “¿Qué es lo más sencillo que podría aun funcionar?” y comenzar desde ahí. La simpleza debe de estar dentro del contexto del problema y del equipo de trabajo que lo resolverá, si existe una herramienta que ayuda a resolver el problema, pero nadie del equipo la sabe manejar, utilizarla posiblemente agregue complejidad innecesaria al problema. La simpleza busca evitar el gasto innecesario de cualquier recurso.

Los valores deben de complementarse unos a otros, obtener buena comunicación ayuda a la simpleza al eliminar o posponer requerimientos no necesarios para el problema actual, mientras que obtener simpleza reduce la cantidad de información que debemos comunicar.

Retroalimentación:

Durante la vida de un proyecto son muy pocas las direcciones que permanecen constantes, ya sean los detalles del desarrollo, los requerimientos del sistema, la arquitectura y muchas otras pueden cambiar. Los caminos empezados antes de la experiencia suelen ser modificados prontamente, el cambio es algo inevitable, pero para hacerlo correctamente necesitamos retroalimentación.

Hay muchas razones que no nos permiten implementar la solución “correcta” desde un principio, por ejemplo:

  • Es un problema nuevo del que no se conoce una solución correcta o existen varias posibles soluciones.
  • Cambios fuera de nuestro control invalidan nuestra solución actual.
  • Hacer todo de la manera correcta desde el principio, puede tomar tanto tiempo que nuestra solución puede ser obsoleta antes de estar terminada.

Entonces, la posición que tomamos es la de estar satisfechos con mejoras graduales en lugar de esperar la perfección inmediata, pero para estas mejoras graduales necesitamos retroalimentación, la cual puede venir de:

  • Opiniones de nuestros compañeros acerca de nuestras ideas.
  • Como resulto el código una vez escrito.
  • La facilidad y funcionamiento de las pruebas automáticas.
  • Como se comporta la idea una vez esté en funcionamiento.

Se debe de tratar de obtener tanta retroalimentación tan pronto como se pueda, y siempre recordar atenderla, aunque esto signifique disminuir un poco la rapidez de las nuevas implementaciones.

La retroalimentación también complementa a la comunicación y a la simpleza, obteniendo nueva información para comunicar e identificando que soluciones son las más simples y efectivas. También hay que notar que entre más simple un sistema, más fácil es obtener buena retroalimentación.

Coraje/Valentia:



Coraje es la accion efectiva frente al miedo, aunque nuestro medio no es inherentemente peligroso,tambien nos enfretamos al miedo de las consecuencias de nuestras acciones. El coraje lo debemos de complementar con los otros valores para obtener una guia de que hacer frente a una situacion donde nos de miedo actuar, ya sea al resolver un problema o tomar responsabilidad de una falla, la comunicacion, simpleza y retroalimentacion tambien se benefician del coraje al
obtener informacion concreta para actuar.

Respeto:



Los valores anteriores se basan y diregen con este, si no hay respeto y aprecio entre el grupo de trabajo XP no se puede aplicar efectivamente, si el equipo no respeta el proyecto, este ya esta perdido.

Que es XP (Extreme Programming)?

Technorati Tags:

Extreme Programming, es un estilo de desarrollo de software enfocado en la aplicación excelente de técnicas para programar, comunicación clara y trabajo en equipo con el propósito de conseguir mejores resultados, en un tiempo más corto y de una manera en que nos sintamos más felices y realizados con el trabajo que hacemos.

XP se basa en una serie de valores:

  • Comunicación
  • Retroalimentación (feedback)
  • Simpleza
  • Coraje
  • Y Respeto

XP expresa estos valores por medio de una serie de prácticas, practicas que se complementan unas a las otras y amplifican sus efectos positivos en el desempeño personal y del equipo.

La unión, a nivel intelectual, de estas prácticas y valores las da un grupo de principios que nos guían en la aplicación de los valores, aun cuando no exista una práctica clara para resolver nuestros problemas.

Que distingue a XP de otras prácticas de desarrollo?

  • Tiempos de desarrollo más cortos, que resultan en una pronta y continua realimentación durante el proceso de desarrollo.
  • Una planificación incremental y adaptable, concentrándose en un plan general primero y esperar que evolucione durante la vida del proyecto.
  • Permite calendarizar fácilmente la implementación de funcionalidad para responder rápidamente a las necesidades cambiantes del proyecto.
  • Se base en pruebas automatizadas, creadas por todos los involucrados e interesados en el proyecto, que permiten que el sistema evolucione y detecte defectos tempranamente.
  • La comunicación oral juega un papel importante, asi como las pruebas y el propio código para comunicar la estructura y el propósito del sistema.
  • Trabaja desde un punto de vista de evolución, donde el trabajo continuara mientras el sistema este en funcionamiento.

XP reconoce que el desarrollo de software es un trabajo de humanos, humanos que pueden fallar, que necesitan comunicarse, que pueden cambiar de planes y que sobre todo necesitan trabajar juntos.

Noticias Mario Kart Wii




Bueno, en estos ultimos dias han salido algunas noticias nuevas del que seguro sera el juego de carreras favorito para Wii y un verdadero competidor de SSBB por la adiccion de los jugadores.

Mario Kart Wii:

y Algunas de las noticias son:

Integracion con los miis:


El regreso de Luigis Raceway:












Algunas imagenes de la interfaz para juego en linea:













y muchas imagenes mas en: Nintendo Wii Fanboy


En noviembre se anuncio que Mark Wahlberg seria la estrella en la adaptacion al cine del gran juego de video "Max Payne". Los rumores indican que la filmacion comenzara el 2 de Marzo en la ciudad de Toronto. John Moore (Behind Enemy Lines) sera el director. Esperemos que la historia se siga de cerca y que incluyen en el elenco a Mona Sax :)



Update: y Ella seria Mona Sax:


Mas informacion: ProductionCharts

Intro de Super Smash Brothers Brawl

Sin duda alguna uno de los juegos mas esperados por cualquier fanatico de Nintendo, el primer juego fue un exito sorpresivo, el segundo el mejor juego de GameCube y ahora este parece que elevara esa calidad aun mas.

Con casi 40 personajes, una entretenida campaña para 1 jugador (escrita por el mismo autor de Final Fantasy VII) y sobre todo, el escenario para las peleas mas freneticas entre 4 jugadores que se han visto, este juego sera un seguro exito.

y Aqui esta el video prometido, de la version japonesa que sale esta semana:


Star Wars: The Force Unleashed


Star Wars: The Force Unleashed es el evento multimedia que Lucas Arts tiene planeado para este verano, se centra principalmente al rededor del videojuego del mismo nombre, así como comics, figuras de acción y mercadería relacionada.

El juego promete ser una experiencia muy realista (dentro de lo posible en el universo de Star Wars), donde las reacciones de los enemigos del ambiente serán justo lo que uno esperaría al ser azotados por un aprendiz de Sith con gran poder. Uno de los elementos que más llama la atención del juego es el uso de poderes de fuerza tan exagerados que hacen ver a Yoda como un padawan.

Esta semana en CES 2008, le fueron revelados a Ars technica algunos detalles nuevos de lo que promete ser un superjuego para todas las consolas este año (Que mal que no hay versión de PC), algunos de los detalles nuevos son:

  • El personaje principal, es un aprendiz secreto de Darth Vader durante el tiempo entre los episodios III y IV. (la voz la provee el actor Sam Witwer, de BattleStar Galactica)
  • Utiliza el Lightsaber en la espalda, en una manera poco ortodoxa pero de una apariencia amenazante, que al mismo tiempo permite siempre ver el lightsaber mientras la cámara esta detrás del personaje.
  • Las batallas con jefes será enormes, incluyendo una pelea con un Rancor. Durante la batalla habrá secciones interactivas donde se debe de seguir una serie de botones (como en God of War o Ultimate Alliance) pero aquí no son obligatorias, solo dan puntos extra.
  • Sera posible personalizar tanto el lightsaber como el personaje, pero no habrá la posibilidad de utilizar 2 lightsabers o uno de doble espada (como el de Darth Maul)
  • La versión para Wii del juego incluye una modalidad de 2 jugadores, para realizar duelos de lightsabers con un amigo en el mismo cuarto.
  • La versión de PSP contendrá algunas escenas clásicas de las películas, pero estas serán expandidas con los vistosos poderes de la fuerza que permite el juego.

Y aquí dejo el trailer que desde hace tantos meses me tiene esperando este juego:




La próxima generación de lentes de visión nocturna a ser utilizados por el ejercito de los Estados Unidos, utiliza tecnología ya antes vista en examenes médicos y en la inspección de planchas de silíceo utilizadas para dispositivos muy pequeños.

Utilizando materiales avanzados y circuitos complejos, las cámaras pueden detectar luz reflejada en longitudes de onda invisibles tanto para el ojo humano como para la tecnología de visión nocturna actual. Con una resolucion de 640x512 y un peso menor a los 10 gramos, las cámaras son suficientemente livianas para ser usadas en vehículos no tripulados lanzados desde la mano.

En la propia imagen se puede apreciar la gran diferencia que causa esta tecnología.

read more | digg story

Resident Evil: Degeneration


Capcom y Sony Pictures Entertainment nos traerán este año una nueva película de Resident Evil, pero aquí no veremos a Milla Jokovich quemando cuervos, si no que será una película completamente animada por computadora. La película ocurre 7 años después de los eventos de Raccoon City (Resident Evil 2) y un año después de lo que se vio en Resident Evil 4, nos vuelve a presentar como personajes principales a Leon S. Kennedy y Claire Redfield,


En este link pueden ver el teaser de la película que viene en la versión de HD-DVD o Blu Ray de Resident Evil: Extinction

Me agrada bastante la idea de que hagan una película de Resident Evil más apegada a los juegos de video, sobre todo si sigue la historia de mis personajes favoritos en la serie. Leon y Claire.
Además al utilizar CGI se pueden recrear de una mejor manera el estilo de los juegos así como la apariencia de los personajes.

Esta es sin lugar a dudas el mejor video de fan de Star Wars que he visto, hecho por miembros del sitio TheForce.Net, presenta una bien pensada coreografia de pelea, muy buena edicion de sonido y de efectos especiales, se nota la gran dedicacion de los involucrados en hacer un buen corto.

En esta pagina se puede bajar la version de alta resolucion del video, o en este link.

y aqui la version de youtube:

Spider-Man, por James Cameron


En 1991, el famoso director James Cameron escribió, con ayuda de otros, una adaptación para cine de Spider-Man. Rumores rápidamente circularon de que el seria el hombre que finalmente traería las aventures de su "friendly neighborhood Spider-Man" al cine, pero finalmente Sony compro los derechos de la adaptación y eventualmente fue Sam Raimi quien nos dio una estupenda trilogía de este gran personaje.

La historia de esta adaptación no es muy distinta a la versión que finalmente pudimos ver, incluso me parece que muchos de los elementos del villano principal fueron tomados para la versión de cine de Norman Osborn, incluyendo algunos de sus dialogos. El personaje de Spider-Man es un tanto mas obscuro en esta versión, por lo que se ve Cameron queria un Spider-Man mas salvaje, siendo guiado más por su instinto que por la razón en muchas de sus acciones. Al mismo tiempo Spider-Man es mas joven que en la cinta de Raimi y vemos mucho mas de su vida en la escuela y de los abusos de Flash.

AQUI se puede leer la adaptación completa, si algún día deben de reiniciar la serie de películas (como sucedió con Batman), este seria un genial punto de partida.

Entradas más recientes Entradas antiguas Página Principal