31/07/2013

Metodologías ágiles: software satisfactorio en menos tiempo

Metodologías ágiles: software satisfactorio en menos tiempo

Con el paso del tiempo, distintos autores han ido proponiendo nuevas metodologías de desarrollo de software en pos de generar procesos que satisficieran las necesidades del mercado en cada momento.

Actualmente nos encontramos frente al auge del desarrollo ágil de software: una familia de metodologías iterativas e incrementales donde los requerimientos y las soluciones evolucionan a través de la colaboración entre equipos autoorganizados y multidisciplinarios. Nacieron de la necesidad de adaptarse a entornos inestables (donde las cualidades que debe poseer la aplicación pueden cambiar sobre la marcha) y a crecientes exigencias de productividad. Estas metodologías motivan procesos de desarrollo veloces y hacen hincapié en la permanente comunicación con el cliente, para poder entregarle exactamente el software que desea.

Veamos algunos de los principales métodos ágiles de desarrollo de software:

  • Extreme Programming (XP). Apunta a producir software de alta calidad en poco tiempo. Se basa en ciclos cortos de desarrollo, compuestos por cuatro actividades: codificación, testing, comunicación con el cliente y diseño. En una metodología tradicional, todas las tareas se desarrollarían de manera secuencial y recién al final tendríamos el feedback del cliente, pudiendo tener que rehacer un gran porcentaje del producto si no satisface sus necesidades. Pero en XP, la constante supervisión del cliente reduce los desvíos con respecto a sus expectativas.
  • Scrum. Propone «una estrategia flexible y holística donde un equipo de desarrollo trabaja como una unidad para alcanzar una meta común». Todos los involucrados en el proceso asumen un rol particular, con responsabilidades definidas. El trabajo se divide en unidades de tiempo fijo, llamadas sprints, al final de las cuales deben haberse cumplido ciertos requerimientos.
  • Feature-driven development (FDD). Reúne una serie de buenas prácticas de desarrollo de software y las implementa tomando como guía las funcionalidades que el cliente valora. Es ideal para equipos de trabajo de gran volumen.

Si bien no es obligatorio ajustarse a una metodología particular a la hora de afrontar un proyecto de desarrollo, lo cierto es que las metodologías ágiles están aportando grandes resultados en muy diversos entornos de trabajo.

0

angularjs Aplicaciones en Facebook aplicaciones mobile behavioral targeting Botones Call-to-action breadcrumbs breadcrumbs web búsqueda de personal búsqueda facetada Call-to-action buttons Client-side cliente-destacado cms a medida coding comercio electrónico content marketing CSS3 PIE cuanto debe pesar un sitio data-driven web design Datos estructurados Defacement Denegación de servicio Desarrollar una aplicación web desventajas de PhoneGap diseñar newsletters diseño web diseño web argentina diseño web esqueuomórfico Diseño web responsive Diseño web responsivo diseño web santa fe diseño web Smart TV diseño web televisores DOM desde PHP enlaces rotos filtros de búsqueda flash flat web design formularios sitio web fragmentos enriquecidos función de autocompletar futuro de la realidad aumentada html HTML5 html5shiv inbound marketing Initializr interfaces Web para televisores javascript jobs jQuery Mobile Mapbox maquetado html/css maquetador web masonry layout menú de navegación menú desplegable Metodologías ágiles Modernizr MVC Navegación por teclado oferta laboral OpenStreetMap paginas de Facebook Paper js Paper js framework personas Phishing plan de QA Polyfills polymer portfolio-destacados portfolio-inicio programacion de CMS Programadores WordPress página de contacto página de error 404 que es Backbone.js Realidad aumentada Resultados instantáneos server-side skeuomorphic design sliders y usabilidad soporte Internet Explorer Storytelling Underscores usabilidad usabilidad buscadores user-centered design ux velocidad de carga web Vendor prefixes ventajas jQuery Mobile Ventanas integradas versiones antiguas de Internet Explorer WAI-ARIA web components web imprimible Web Semántica WordPress para ecommerce