Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

eXtreme Programming ¿sirve?

editada por SegFault el 11 de Noviembre 2005, 06:06h   Printer-friendly   Email story
LgEaObNrAiReDlO nos cuenta: «Tenía que hacer una presentación de una metodología de desarrollo para la facultad, por esas cosas que tiene el azar me toco XP (extreme programming), nunca antes había oído hablar de esto, pero me puse a investigar con todas mis ansias. El día de la presentación frente a la clase y al profesor, explicamos (junto con mis compañeros de grupo, tres en total) algunas características XP las cuales señalo a continuación (las que más me llamaron la atención). En fin, ¿alguien tiene alguna experiencia con XP? ¿es aplicable? Escuché que Netscape está hecho con XP; en fin, ¿qué opinan?» En el resto de la noticia sigue hablando sobre XP.
«Los puntos son
  • Es una metodología ágil pensada para proyectos cortos con requerimientos muy cambiantes o poco claros
  • Apunta a una alta integración con el usuario
  • La idea es ofrecer muchas entregas del sistema agregando funcionalidad paulatinamente en lapsos cortos de tiempo, esto permite que el usuario tenga más claro si el sistema hace lo que él quiere, además de comprometerlo en el desarrollo
  • Programación en parejas, dos personas por máquina; esto hace el desarrollo más llevadero y el surgimiento de ideas, y la estandarización del código, además los grupos se pueden rotar (propiedad colectiva del mismo)
  • Utilizar estándares de codificación
  • Orientando todo a las pruebas, se realizan pruebas de unidad de los módulos incluso se diseñan antes del software
  • 40 horas de trabajo semanal, las horas extras mitigan los ánimos de los desarrolladores
  • Se planificado a muy corto plazo (a lo sumo un par de meses)
  • Todo se centra en el resultado, es decir, cumplir con lo que se planeó y nada más
  • No agregar funcionalidad, porque si los requerimientos son cambiantes no tiene sentido, lo principal el cumplir el plan
  • Se realizan reuniones informales todos los días por la mañana para intercambiar experiencias del día anterior
  • Se realizan pruebas de integración con frecuencia
  • Refactorizar siempre que se pueda
  • KISS = Keep it simple stupid!!, es decir, la solución más sencilla que cumpla con los requerimientos es la adecuada, ya iremos mejorándola si nos queda tiempo
  • Ahora bien, todo esto es aplicable para proyectos cortos donde algunos puntos (como el rendimiento, la eficiencia, la seguridad) no son críticos, bueno sería hacer un sistema de control de vuelo e ir haciendo entregas parciales mientras vamos agregando funcionalidad sobre la marcha (como hacer que el tren de aterrizaje funcione al aterrizar) pero es muy aplicable yo diría al 70% de los proyectos con los que nos encontramos la mayoría de nosotros.

    De todos modos el profesor hizo una reflexión final que delata su desacuerdo con esta metodología, palabras textuales: "lo de las horas es para no pagar horas extras, y lo de la programación en parejas es para no tener gurús, es el típico modelo de Thailandia"

    Una reflexión final, algo que alguien dijo una vez "Un cliente es aquella persona que te dice lo que quería en el momento que le entregas lo que te pidió".»

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • ¿En qué quedamos?

    (Puntos:2, Inspirado)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 06:45h (#637415)
    Me lo expliquen si Es una metodología ágil pensada para proyectos cortos con requerimientos muy cambiantes o poco claros no se entiende lo de No agregar funcionalidad, porque si los requerimientos son cambiantes no tiene sentido, lo principal el cumplir el plan.

    Requerimientos cambiantes y alta integración con el usuario implican impepinablemente que no hay plan (ni tope de tiempo ni hostias). Agregar funcionalidades es casi diario. Ayer no era necesario llevar la contabilidad de los tikets de aparcamiento pero mañana si, se necesita para antes de ayer registrar las visitas de comerciales externos, etc., etc.

    Yo siempre he programado así (tengo la "suerte" de ser "el programador" de la empresa) a matacaballo y con el usuario cogido de los huevos para que luego no diga que no es eso lo que quiere (a lo sumo, que se le ha olvidado pedir no se qué, pero que se le olvida pedirlo a él, no implementarlo a mi)

    La XP puede que sea una metodología novedosa en algunos ámbitos, pero los que estamos a pie de obra, tenemos una cierta experiencia en la parte realmente "extrema".

  • Estoy de acuerdo en parte

    (Puntos:2, Interesante)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 07:13h (#637421)
    Yo hice Xp con un compañero del trabajo para un proyecto por decisión nuestra. Te puedo decir que teniamos total libertad para hacer el proyecto como quisieramos cumpliendo unicamente los detalles que queria el cliente que en este caso eran tonterias variadas, mas relacionadas con lo estetico que con la funcionalidad. El proyecto eso si era corto, un par de meses, pero et puedo decir sin miedo que son dos meses que no estas quemado, acostumbrado a que te digan esto tiene que estar para ayer y cargartelo tu solo, aqui tienes un compañero que te ayuda y da ideas, lo que no se le ocurre a uno, se le ocurre al otro. Yo lo veo no como una forma de que no haya gurús, si no una forma de no quemar a los programadores porque si le encargan eso a uno solo se muere, que es lo que se habria hecho normalmente. Esa fue mi experiencia y fue buena (por cierto requerimientos siempre cambiantes, pero funcionalidades habia que añadir siempre). Algun comentario?
  • Es eXtreme Programming

    (Puntos:1, Informativo)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 07:16h (#637424)
    No "Xtrem".
  • demasiado bonito

    (Puntos:2, Interesante)
    por Peter Tulia (22269) el Viernes, 11 Noviembre de 2005, 07:23h (#637429)
    ( http://barrapunto.com/ )

    En mi opinion el problema de XP no es tanto en la forma de trabajar, que puede ser mas o menos novedosa (parejas de programadores, pruebas antes que codigo, etc), sino en las precondiciones que requiere: nos reunimos todos por la mañana, no rotamos, el cliente siempre esta accesible, el jefe es un jefe, los papeles no hacen falta porque para eso esta la gente, compartimos todo, etc.

    Realmente si tienes esas precondciones cualquier metodologia, o mas aun, hasta sin metodologia se puede sacar un proyecto.

    Por ello mi conclusion es que el problema de XP es mas de aplicabilidad que de metodo. Parece extremadamente atrativo, pero como dijo Hannibal Lecter, "se empieza a codiciar aquello que se tiene cerca y no se posee"

  • mmhh

    (Puntos:1)
    por kenai (19964) el Viernes, 11 Noviembre de 2005, 07:32h (#637435)
    No tengo experiencia con él, pero me imagino que resultados debe dar, sinó compañías como éstas [c2.com], no lo emplearían.
  • El comentario de tu profesor

    (Puntos:5, Interesante)
    por Derfel (6207) el Viernes, 11 Noviembre de 2005, 07:40h (#637443)
    ( http://www.pedrocarrasco.net/ )
    Respecto al comentario de tu profesor:

    Horas extras

    Está demostrado en XP que trabajar más horas de las que te pagan por contrato (40 en nuestro caso), baja el rendimiento y la calidad del producto final. De todos modos, el tener que hacer horas extras se suele deber a dos cosas:

    - O tu jefe se baja los pantalones ante el cliente. Esto es problema de tu jefe, por lo que tendrá que pagarlo él.

    - O el analista se ha ido de varas al planificar (típico en planificaciones a largo plazo o de proyectos completos). Lo mismo, el problema es del analista, por lo que lo tendrá que pagar él.

    En ambos casos, la culpa no es del programador por lo que no tendría que hacer las horas extras y como mínimo se las tendrían que pagar. Aún así, una de las premisas de XP es planificar los hitos a muy corto plazo (dos días como máximo es un buen punto de partida) e ir haciendo entregas de estos hitos.
    Por ejemplo, en el sistema de control de vuelo que comentan más abajo: tú puedes diseñar un sistema de control de vuelo sin problemas, símplemente haces como entregable algo que tenga la funcionalidad mínima exigida. Luego lo puedes ir ampliando. Hay muchos proyectos grandes que demuestran que XP es una metodología a tener en cuenta (aunque no la única ni es la piedra filosofal).

    Gurús programadores

    Hoy en día un gurú en una empresa es más una carga que algo útil. Hay muchísima gente que sabe programar y para la mayoría de los proyectos sirve más un buen equipo de trabajo que un gurú que nadie sabe lo que hace y que si se va de la empresa te deja en pelotas.
    Aún así, personalmente no creo en los gurús, puede que hace unos años tuviesen sentido, pero hoy en día pienso que en un equipo de trabajo hacen más daño que otra cosa. Prefiero a buenos programadores, ingenieros, etc. que al genio de la informática.

    No sé cómo es el modelo de programación en Tailandia, pero te puedo asegurar que una buena metodología bien aplicada puede garantizarte el éxito del proyecto. No hablo de XP, hay varias metodologías, hay que saber elegir en función del tipo de proyecto y el equipo de desarrollo que tengas. El problema que veo en los proyectos de informática es que se suele pasar de metodologías y suelen empezar a saco, lo que suele augurar un fracaso económico del mismo (proyectos que se van de tiempos, producto final distinto del ofertado e incluso cancelación de proyectos), en este tipo de proyectos, XP te puede ser útil.

    Salu2

    --

    Derfel
    "De las cosas que se pueden hacer con un ordenador, la más inútil es la más divertida"
  • Mmmm

    (Puntos:3, Divertido)
    por suix (15503) el Viernes, 11 Noviembre de 2005, 08:04h (#637452)
    ( http://barrapunto.com/ )
    Ya entiendo... por eso hay una version de windows llamada XP, le añaden funcionalidades sin ningun tipo de plan previo...
    --


    Si! Porque somos europa ¬¬, antes no lo eramos???
  • Mi experiencia con extreme programming

    (Puntos:3, Informativo)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 08:05h (#637453)
    Durante 4 meses estuve trabajando en un proyecto en el cual estuvimos desarrollando bajo la filosofia extreme programming. Lo principal es que no es una filosofia nueva, sino es aplicar lo que uno hace habitualmente cuando programa, pero sin puntos intermedios. Todo. Sus puntos más fuertes, en mi experiencia, son los siguientes:
  • test-driven programming, o sea programar orientado a las pruebas unitarias, de tal modo que antes de desarrollar un módulo, codifiques otro módulo que verifique las condiciones que debe cumplir. De este modo, mientras vas programando, vas verificando que cumple las pruebas que deberia cumplir. Y al final del desarrollo, tienes una aplicacion paralela que te testea la que tu has hecho, y que va a seguir siendo valida aunque modifiques codigo, con la seguridad que ello conlleva.
  • programar solo lo que se pide. Realmente esto es para evitar tirar codigo innecesario pensando en el futuro. Todos sabemos que al final, si hay que hacer cambios, también habrá que hacerlos en ese código tirado con previsión de futuro, con lo cual hemos tirado el tiempo.
  • pair-programming. Todos hemos necesitado alguna vez a alguien al lado que nos revise código porque no somos capaces de ver algo evidente ("un perro de carton", que dicen algunos). Además, esto evita tirar código que no haga falta, y código estúpido que sólo uno entiende. Sin embargo, en este punto, hay que ser bastante dialogante y convincente para lograr que se programe como tú quieres y no como quiere el otro.
  • No has opinado sobre los comentarios. En XP, si uno pone un comentario, es que el código no es suficientemente claro, por lo que hay que codificar mejor y tratar de reducir los comentarios a los estrictamente necesarios.
  • Salu2.
  • Me choca que no comentes el alto nivel de abstraccion que es necesario, mucho diseño de interfaces y templates y muchas implementaciones. Cada vez que refactorizas acabas obteniendo los interfaces y la implementacion, de modo que cuando cambian los requisitos cambias la interface y automágicamente cambias la implementacion.

    También te convendría nombrar herramientas de generacion de código, ya sea Anotations, XDoclet etc.

    Desde que llevo usando XDoclet para configurar las aplicaciones en las que voy trabajando ahorro mucho tiempo de configuración y deploy, ademas de tener en el mismo código de una clase u objeto cómo está configurado, o mediante anotations cómo se crean los pojo's o beans clásicos que necesita.

    --
    Dos ruedas son suficientes. Cuatro, redundancia.
  • ¿Horas extra?

    (Puntos:2)
    por Erik (2085) el Viernes, 11 Noviembre de 2005, 08:43h (#637487)
    ( http://barrapunto.com/ )
    lo de las horas es para no pagar horas extras

    Quizá tu profesor hace mucho que no trabaja en el sector, porque si no sabría que lo normal es hacer (muchas) horas extra gratuitas.
    --


    F. de la O.
  • por Auriga (22219) el Viernes, 11 Noviembre de 2005, 08:46h (#637491)
    El extreme programming es un método ágil diseñado por Kent Beck ( http://en.wikipedia.org/wiki/Kent_Beck ). Principalmente habla de conseguir lo que el cliente quiere en el menor tiempo posible.

    He de reconocer que algunas de las "reglas" del XP son buenas ideas, aunque otras son bastante raras:

    - Mantener a todos los programadores en la misma sala... Está muy bien para equipos pequeños, pero para un equipo mediano-grande...

    - No hay documentación en papel, el código es documentación suficiente. Mientras tanto también se intenta minimizar el número de comentarios intentando la claridad del código... Creo que un mínimo de documentación siempre es necesario por muy bien que esté el código. De hecho, en ocasiones me pierdo mirando mi propio codigo fuente cuando el número de clases es muy elevado, dado que, en ocasiones, a pesar de seguir un "estándar" de nombres de clase y paquetes que de información sobre su contenido... la memoria es finita. Teniendo en cuenta que los grupos "rotan" cada cierto tiempo esto puede llevar a mucha duplicación de código, código redundante.

    - K.I.S.S. extremo. Mantenerlo simple es una cosa, no crear una "base" y "picar" el código directamente sin un mínimo de planificación y refactorizar como un loco es una muy diferente.

    Existen muchos más "postulados" que son demasiado "extremos" y que, en caso de ser el proyecto de una envergadura media-grande. Tenderán a crear un código fuente caótico e inmantenible, que cumple los objetivos puntuales del usuario en el momento de la "release", pero, como muchos de nosotros sabemos, el 80% del ciclo de vida de un proyecto es el mantenimiento, y la XP intenta acelerar el primer 20% del tiempo de vida de un proyecto en detrimento del resto.

    Es posible que en un grupo veterano, donde todos siguen estándards y existe una buena comunicación y un "sentido del grupo" se cree un código y una arquitectura de calidad con XP, pero también es posible que este grupo también sea capaz de finalizar el mismo proyecto en tiempo sin una metodología tan "extrema".

    Creo que la XP es aplicable en ciertos momentos del desarrollo, pero no de principio a fin.

    Por cierto, ¿Habéis visto cómo presenta el señor Beck esta metodología? No voy a entrar en opiniones personales salvo decir que da la impresión de que se le haya subido a la cabeza.

    Saludos.
  • Lo peor para la calidad del software

    (Puntos:2, Interesante)
    por tR1K1 (14391) el Viernes, 11 Noviembre de 2005, 08:55h (#637500)
    Este es el tipo de "metodología" (porque no es una metodología, ni nada... ya me diras que método sigue) que utilizan todas las empresas que no se dedican al desarrollo de software.

    Este tipo de programación es el que se usa simplemente para cumplir el capricho del cliente. Esta orientado a cumplir plazos irracionales de entrega de software. Y SIEMPRE acarrea un tiempo amplisimo de corrección y mejora.

    Una empresa que pretenda tener BUENOS productos software JAMAS utilizará este tipo de programación. Si verdaderamente se piensa en ofrecer productos software de calidad se deberán aplicar verdaderas metodologías de desarrollo de software (CMMi, Metrica3, etc.).

    Y me no me parece correcto (es mi opinion, por supuesto) que a este tipo de programación (porque no va más allá de ser una forma de progrmación) se le califique de ingenieria del software. Yo trabajo como ingeniero del software (para eso me hice mi certificación) y puedo asegurar que el XP está prohibido de igual modo que el uso de las sentencias GOTO en cualquier lenguaje de programación.
    Es más el XP es totalmente una lacra para la calidad del software.
  • El Profesor del Mes

    (Puntos:1, Divertido)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 08:57h (#637503)
    "lo de las horas es para no pagar horas extras, y lo de la programación en parejas es para no tener gurús, es el típico modelo de Thailandia"

    Vaya profesor más cañero!! ¿Tardó mucho en hacer aquella reflexión? con lo de "...es el típico modelo de Tailandia" es que me estoy despollando. No tiene ni idea el tío, pero claro, ahi en clase es el referente de los alumnos. Seguro que no ha programado en pareja en su vida (incluso se podría quitar lo de "en pareja").

    En fin, lo que hay que oir.
  • Opino que sí ...

    (Puntos:2, Informativo)
    por El Pantera (19616) el Viernes, 11 Noviembre de 2005, 09:00h (#637506)
    ( http://barrapunto.com/ )
    La verdad es que nunca lo he usado, pero creo que puede ser interesante.
    Mi experiencia me dice que cuando el cliente se involucra el programa se termina antes, con más calidad y con menos quebraderos de cabeza para el equipo de desarrollo.
    Los proyectos que he hecho en los que el cliente no estaba presente a menudo terminaron TODOS MAL. El cliente no se acuerda de lo que te pidió (aunque firme una ERS), te cambia los requisitos (se cree que todo es poner un botón y que el resto del tiempo te estás rascando), etc.
    Pero cuando el cliente está encima (que es una de las características de la XP) va todo mejor.
    Sobre lo de programar en parejas es, como han dicho, para evitar la dependencia de un programador (sea gurú o no). Porque ya sabemos, pagan poco a los programadores, pero dependen mucho de ellos.
    --

    "Si alabaras al César no tendrías que comer alubias" ->"si tú comieras alubias no tendrías que alabar al César"
  • Jornadas de S.L. en Asturias

    (Puntos:2, Informativo)
    por ArriKi (21019) el Viernes, 11 Noviembre de 2005, 09:15h (#637523)
    ( http://barrapunto.com/~ArriKi/journal | Última bitácora: Jueves, 25 Noviembre de 2010, 16:04h )
    En las últimas jornadas llevaron a un ponente de una empresa que utilizaba esta metodología de trabajo. Según nos comentaba, por un lado había alternancia entre la persona que "escribía" código y la que "vigilaba", de manera que el cansancio disminuía.

      También comentaba que las horas extra no suelen ser buenas porque el cansancio podía hacer que escribieras líneas que parecían impecables un día y al día siguiente había que tirar el código.

    Definía objetivos parciales con el cliente de manera que cuando estaban planificando el proyecto definían que módulos eran mas importantes, para asegurarse un mínimo de funcionalidad en caso de retraso, y cumplir las espectativas mínimas del cliente.

    Los módulos se iban probando al final de cada semana, aun sin tener el producto acabado, para ir viendo porque falla la integración. Si al final un módulo fallaba, tenían casi todo el soft. desarrollado.

    Decía que el principal punto flaco era, como siempre, definir el tiempo de desarrollo e implantación.

    Según comentaba, la productividad había aumentado enomemente, además del tiempo de desarrollo, pues la mayor parte de los fallos les iban corrigiendo sobre la marcha.

    También me decía que iban haciendo reuniones casi semanales con el cliente, cortas pero muy efectivas. Comentaba que las especificaciones se firmaban, y cada funcionalidad extra que pedía el cliente durante el desarrollo (creo que eso es inevitable) le implicaba mucho mas tiempo y algo mas de dinero, pues e un fallo del cliente que está firmado. De esta manera, al cliente le salía rentable definirlas de mano.

    Yo no creo que sea mala idea, aunque no creo que sea la única manera de hacer las cosas bien. En mi opinión esta metodología es para un tipo de programador muy definido que puede encajar en estas reglas de trabajo en equipo.

    De todas maneras, el principal problema sigue en el aire, definir el proyecto, aunque creo que puede resolver muchos de los pequeños problemas de programación que luego se arrastran hasta hacerse inabarcables.

    _

    _
    --
    • "Los pastores serán brutales mientras que las ovejas sean estúpidas" E. Godin
  • Algo de teoría

    (Puntos:2, Informativo)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 09:28h (#637535)

    No he tenido la oportunidad de poner en práctica en un proyecto real la programación extrema, sin embargo sí que la he aplicado de forma parcial.

    La programación extrema [wikipedia.org] la idearon Kent Beck, Ward Cunningham, y Ron Jeffries. Aunque también Martin Fowler [martinfowler.com] ha hecho divulgación de esta metodología. Algunas prácticas que incluye la programación extrema son el refactoring [refactoring.com] y el test-driven development [wikipedia.org].

    Una idea interesante de la programación extrema es que no tiene porqué adoptarse totalmente las metodologías extremas, si no que pueden ir adoptándose según interese. En este aspecto sí que he aplicado la programación extrema, usando ampliamente tests, usando moderadamente la programación a pares, ¿quién no hace refactoring?, etc.

    Algunas de las prácticas que propone son criticables, se podrían mejorar, o pueden tener efectos negativos si se aplican de una determinada forma, pero también puedo decir que algunos aspectos como los test de unidad y el refactoring han sido indiscutiblemente positivos.

    Saludos.

  • Si eso se ha hecho toda la vida!!!

    (Puntos:5, Divertido)
    por Rei (13337) el Viernes, 11 Noviembre de 2005, 10:26h (#637595)
    ( http://www.ayanami.es/ )
    Sin ir más lejos lo estoy haciendo yo ahora en la universidad. Equipos de dos personas, con proyectos cortos (2 semanas a 1 mes que es cuando se ha de entregar).

    Realizar todas las chapuzas necesarias para que el código compile y funcione (al menos los 5 minutos que el profesor va a estar trasteando con tu programa).

    Como no sabes muy bien ni que te piden ni como hacerlo, cada dos lineas de código compilas de nuevo a ver si sigue funcionando lo que llevas hecho.

    No añades ninguna funcionalidad fuera de lo demandado por que no tienes tiempo y si lo tienes no te atreves no sea que jodas el programa.

    Esa misma falta de tiempo te lleva a intercambiar los últimos dos días fragmentos de código con el resto de compañeros...

    Pues vaya un invento este del eXtreme Programing, llevamos siglos practicándolo y lo llamamos "hacer una chapucilla para salir al paso". Y lo de las dos personas solo significa que mientras una trabaja la otra tiene tiempo de ir a por un café, charlar con los de alrededor y que luego te tengan que explicar que son todas esas lineas de código nuevas que no entiendes que hacen...

    (que conste que no soy informático, solo un intruso en potencia).
    --
    We're hope so that people might understand each other -- Rei & Kaworu
  • por xlopez (22256) el Viernes, 11 Noviembre de 2005, 10:29h (#637599)
    ( http://alacantilado.blogspot.com/ )
    A la XP le pasa lo que a todas las metodologías, no se puede aplicar al 100%.

    Por ejemplo en lo de programación por parejas.
    Si el ahorro en tiempos en del 20% lo que antes costaba hacer 100 horas ahora costará 80, pero tendra un coste económico de 160, porque hay que pagar a dos programadores. Eso no hay empresa que lo soporte.
    Lo que si se puede hacer es trabajar uno al lado del otro y cuando uno se atasque preguntar. a mi me ha pasado un millón de veces, se acerca el compañero y dice 'quita ese punto y coma' o algo similar. Y se ahorra mucho porque la mayoría de veces siempre es un fallo obvio que nos obcecamos en no ver.

    En general la XP me gusta. Pero como con todo no hay que ser integrista.

  • diseño

    (Puntos:2)
    por colapso (143) <eduoliveros en yahoo punto es> el Viernes, 11 Noviembre de 2005, 11:33h (#637663)
    ( http://eduoliveros.com/ | Última bitácora: Martes, 28 Diciembre de 2004, 21:19h )
    Hay una cosa que no me gusta nada nada de esta metodología y es la poca importancia que le da al diseño de la aplicación al inicio del desarrollo...
      Lo cual, en mi opinión, es un craso error...

    Verdaderas basuras se pueden generar aunque se utilice una programación basada en tests (lo cual es una idea mágnífica, de hecho fundamental para poder refactorizar).
  • por Papipo (10510) el Viernes, 11 Noviembre de 2005, 12:33h (#637715)
    Leo en varios comentarios que hay gente que defiende el diseño previo de la aplicación. Entiendo que esto es importante, un análisis general ayuda mucho, se vaya a usar una metodología ágil o no.

    En la empresa que trabajo, vamos a hacer un programa de gestión muy potente para cierta gente. Llevamos muchas horas de análisis, documentación de requisitos, planificación de características, y mil cosas más. Si hubiéramos empezado a programar con un pequeño análisis previo, seguro que estaba hecha la mitad del sistema. Para colmo, da igual lo mucho que analices EL CLIENTE SIEMPRE QUIERE CAMBIOS. Prefiero mil veces basar el desarrollo en la capacidad de reacción que en la de previsión, porque el que paga a veces quiere cosas "raras". No se le puede convencer de que lo que quiere no es lo que necesita, porque quien mejor lo sabe es él. Eso sin contar las particularidades y manías de muchos clientes.

    Quizá lo mejor sea proponerle al cliente un desarrollo incremental tipo XP, y que vaya pagando según se desarrolla. Se le explican las razones para hacerlo así y ya está. Se cobra cada mes, semana o lo que sea y punto.

    Está claro que hacer aplicaciones megalíticas de un plumazo está al alcance de muy pocos (¿nadie?).
  • por Rastafari (22169) el Viernes, 11 Noviembre de 2005, 14:16h (#637769)
    Seguir XP al pie de la letra es algo que simplemente nadie o casi nadie hace, muchos dicen que usan XP pero luego no programan en parejas y en raras ocasiones se tiene al cliente disponible en el proyecto a todas horas. Es dificil cumplir con todo lo que dice la métodologia pero también es cierto que XP introduce algunos conceptos desde mi punto de vista cruciales en un desarrollo.

    TDD (Test Driven Development): esto es FUNDAMENTAL, la idea es escribir primero el test y luego el código esto ayuda primero a diseñar porque nos ponemos en el papel del usuario de la futura clase antes de programarla y si los test son buenos evitaremos largas horas de depuración para encontrar determinados errores. La idea es: sólo esta implementado lo que esta testeado y es demostrable que funciona, si no esta testeado no esta hecho.

    Integración continua: en proyectos medios/grandes tener un proceso que automaticamente integre el código ahorra muchisimo tiempo, por ejemplo se puede configurar para que se baje del control de versiones todos los días el código y lo compile a cierta hora o bien para que compile ante eventos determinados (alguien sube código). Por otra parte esto obligla indirectamente a usar un control de versiones (algo que aunque parezca increible algunos no hacen...) y además a pensar como estará estructurado y usarlo correctamente. Esto es otro punto que puede ahorrar contidades ingentes de tiempo.

    Relación cercana con el cliente: Si algo es importante en un proyecto es que el cliente este integrado en el desarrollo, sino al final entraremos en un bucle de "un paso para adelante dos para atras", cuando más cortas sean las entregas y más estrecha la relación con el cliente mejor para todos (cliente y desarrallodares).

    Respecto a las criticas que hace tu profesor la primera me parece una barbaridad y con el segunda en cierto modo estoy de acuero:

    - la primera es absurda porque en nuestro sector nadie paga horas extras. El trabajo de desarrollar soft es un trabajo INTELECTUAL Y CREATIVO y por tanto el estado de animo de los desarrolladores influye notablemente en la calidad del software producido, un grupo de programadores cabreados por no ver a su mujer o novia y encima sin un duro no suele ser lo mejor para producir buen software.

    - Más que "gurus" lo malo es que en el equipo de desarrollo se formen "islas de conocimiento", o sea que tal cosa de la aplicación sólo la conozca juanito y cuando juanito no esta y eso falla "salvense quien pueda", para esto otra de las cosas que dice XP es que los equipos de 2 deben moverse y participar en distintas areas del desarrollo de la aplicación. A mi sin embargo no me gusta demasiado lo de trabajar en equipos de dos porque considero que cada persona necesita su espacio individual para realizar su trabajo con comodidad, y como decia antes el estado de animo de los desarrolladores es parte del exito del proyecto.

    En definitiva, aunque no se aplique XP tal cual si que propone una serie de cosas muy interesantes que se pueden aplicar en cualquier proyecto. Lo importante es conocer que dice cada metodologia e intentar extraer lo mejor de cada una para resolver nuestro caso particular, no creo en una métodologia unica y magnifica que sirva para todos y para cualquier tipo de proyecto.
  • sobre la programación en parejas

    (Puntos:2, Inspirado)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 14:23h (#637773)
    La programación en parejas se aprovecha del sentido del ridículo de la gente: Ni te tiras un pedo en público ni picas código cerdo cuando alguien está mirando. Estando solo te cortas menos...
  • por HaCHa (15004) el Viernes, 11 Noviembre de 2005, 17:30h (#637917)
    Palabras mas o menos textuales de un importante directivo de la industria del software español (cuyo nombre no me atrevo a mencionar ni como PH):

    "Eso de la programación extrema es una rebelión de los programadores, que se han montado una paja mental para defender sus intereses por encima de los del proyecto haciéndole creer al empresario y al cliente que si el equipo de desarrollo se pasa media semana haciendo el idiota las cosas van a ir mejor.
    ¿Qué mierda es esa de que un programador no puede hacer horas extras? ¿Cómo se atreven a decirme que un tío tecleando y otro mirando no significa un 50% de la mano de obra tocándose los cojones? ¿Es que no se pierde bastante tiempo en reuniones ya como para ahora ir haciéndolas todos los putos días? ¿Qué clase de metodología es esa que va esquivando la planificación? ¿Qué jeta es esa de cubrir los requerimientos estipulados y nada más? ¿Eso es calidad? ¿Desde cuando los obreros controlan su forma de trabajar?
    Implantaré una metodología como esa cuando se decrete la Navidad permanente."

    Sin ánimo de trollear, creo honestamente que, desde la perspectiva de un empresario conservador, la valoración que os comento es bastante dura de rebatir. Estoy seguro de que muchos directivos no van a permitir que la XP salga adelante: no les suena nada bien. Parece una metodología poco seria. Son postulados que no pueden defenderse fácilmente ante un Consejo de Administración.

    Vamos, que mis jefes no ven porqué los métodos de la XP les vayan a aportar ventajas competitivas. Les parece una cuestión sindical. Así de claro.
    Y todo es porque la XP mezcla técnicas de trabajo con condiciones laborales en un mismo discurso. Y esa no es la forma de dirigirse a un Project Manager. Al menos no en España.

    ¿Alguien sabe de una empresa grande con oficinas en este país que emplee XP en sus proyectos pequeños?
    Yo no.

  • Nada nuevo

    (Puntos:1)
    por daveez (18473) el Viernes, 11 Noviembre de 2005, 19:30h (#637983)
    ( http://barrapunto.com/ )
    Vamos, salvo por lo de las horas extra y lo de currar en pareja, es la programación que se lleva haciendo toda la vida en consultoría, no?
    --


    Es el amor al sexo sin amor lo que me guía
  • por Jorge Mota (20605) el Sábado, 12 Noviembre de 2005, 05:31h (#638207)
    ( http://fox.desdeguate.com/ )
    yo tengo un libro de eXtreme Programing with c# y otro de migrating from vb to vb.net en el que hacen mucho enfasis, en este tipo de programacion, diciendo que reduces la cantidad de errores y fallas, ya que al haber 2 en la misma pc, colaboran, pero por experiencia se, que unicamente sirva, para que el que este a la par se duerma, o te quite el tiempo, luego de un buen rato de verte programando(o tu al que esta programando). siempre por experiencia, cuando se tiene duda de que manera implementar algo, mas cabezas aportan mas ideas, y muchas veces se termina complicando el tema mas de lo debido. quiza para temas muy pequeños o no tan complejos, funcione, pero para programar toda una aplicacion, practicamente las probabilidades son casi nulas. Saludos+
  • Si funciona...

    (Puntos:1)
    por Fayser (12345) el Sábado, 12 Noviembre de 2005, 13:16h (#638357)

    pero para que funcione, desde el principio hay que tener en cuenta unas cuantas cosas para que el asunto no se desmadre:

    1) Los proyectos necesitan de un contrato firmado antes de empezar, con requisitos que permitan verificar que el proyecto está acabado (y listo para cobrar la pasta). Es necesario que el cliente sepa, desde el primer momento, fijar ese marco de referencia: si no los proyectos con XP no acaban nunca, empiezan siendo un huevo y acaban siendo una castaña.

    2) La formalización de los requisitos se hace vía User Stories. El cliente debe comprometerse, una vez acordada cada una, a no andarla cambiando de nuevo: una cosa son requisitos flexibles y otra cambiar de idea cada día.

    3) Dado que no se usa una documentación de diseño medianamente formal, requiere que el grupo de trabajo sea capaz de transmitir ese conocimiento de forma oral. Es decir: no más de 10 personas y todos trabajando juntos. Pero hay muchos proyectos que requieren la colaboración de diferentes empresas, con lo que unos están trabajando aquí y otros en la conchinchina. En estos casos ojo con XP que acabará en un cristo.

    4) Pruebas unitarias... Xp se suele usar para trabajar rápido, y cuando se va rápido se tiende a pasarse por el forro las pruebas unitarias. Sin pruebas unitarias el refactoring acaba irremisiblemente en un cristo. Y sin refactoring no hay XP: hay code & fix, que resulta en la KK a que estamos acostumbrados en este mundillo.

    Así que... XP si, pero sabiendo lo que te traes entre manos. Si no, acaba en un cristo del 15. Vaya, como con todas las metodologías: si al final lo que hacen falta son buenos programadores, que la metodología buena para cada proyecto la acaban definiendo ellos.

  • por Sergiodf (15067) el Lunes, 14 Noviembre de 2005, 03:29h (#639403)
    ( Última bitácora: Martes, 30 Noviembre de 2010, 03:16h )
    Discúlpenme por la tardanza de mi comentario... es que tuve una semana complicada.

    Quiero aclarar, como cada vez que se habla de este tema, que XP fue pensado por y para programadores Smalltalk.
    Esto quiere decir que todas las personas que anteriormente dijeron "no siempre puede ser aplicado" o "no puede ser aplicado en su totalidad" tienen razón... desde el momento en que no se programa en Smalltalk.

    Como decían por ahí que se la pasan modificando los test porque modifican la función, desde el vamos esta mal planteado el test. El método X del objeto Y debe devolver un objeto Z. El test debe verificar que se cumpla el requerimiento del usuario. El test cambia si el requerimiento cambia. Si después de modificar un método no se pasa el test, entonces hay que rehacer el método. ¿Quien te dice que en otra parte del código no se está esperando que el método siga funcionando como era antes?

    La función de 750 líneas. ¿En ningún otro punto del programa se hace lo mismo que en algún punto de esa función? Obviamente, como dijo el que puso el comentario, es la base de su programa y no lo va a modificar. Pero si desde un principio se intenta hacer ese sistema con XP y en Smalltalk, jamás se llegaría a 750 líneas. Refactorización, unitest, se acabó el asunto.

    Ciertamente las discusiones sobre XP es una de las cosas sobre las que, cuando alguien plantea el tema, más se habla sin saber, sobre todo por las personas que creen saber de lo que están hablando.

    Con respecto a los jefes, horas extra, planificaciones poco acertadas, dos por máquina, ¿realmente piensan que la baja de un programador del equipo por /stress/ les sale mas barato? Justamente en proyectos largos es donde peor les va a ir si prefieren "programación tradicional" contra XP.
    --
    Pongo una firma porque a veces abuso del <br />.
  • por inniyah (5892) el Viernes, 11 Noviembre de 2005, 08:14h (#637457)
    ( http://www.miriamruiz.es/ )
    Yo conozco al menos dos empresas en las que desarrollan con XP, y están bastante contentos (aunque sigue habiendo algunos puntos complejos de resolver, como ajustarse al presupuesto permitiendo realizar muchos cambios al cliente).

    Tal vez tu opinión sobre XP no sea buena, lo respeto, de hecho hay algún punto controvertido para el empresariado que hace que les cueste mucho aceptar una metodología así (como por ejemplo el tema del trabajo en parejas). Asímismo no es una metodología que se pueda aplicar a todo tipo de proyecto de forma universal, en mi opinión.

    En todo caso, no me parece correcto que digas que en ninguna parte porque no es cierto.
    [ Padre ]
  • por Tromperri (13293) el Viernes, 11 Noviembre de 2005, 08:25h (#637471)
    Que atrevida es la ignoracia... Microsoft tiene un montón de equipos desarrollando con SCRUM...
    [ Padre ]
  • Naturalmente...

    (Puntos:5, Divertido)
    por pobrecito hablador el Viernes, 11 Noviembre de 2005, 08:27h (#637472)

    Para andar por casa, pues lo que hacemos todos.

    Sí, yo me siento a programar a menudo con el gato ayudándome. Luego cuando teclea él, le corrijo yo. Mientras, mi canario y mi perro van preparando los módulos de pruebas. Lo único que no puedo cumplir libremente es con la rotación de los grupos, porque no puedo poner al gato con el canario ni al perro con el gato, por lo demás está claro que es lo que hacemos todos para andar por casa...

    [ Padre ]
  • Re:Pero vamos a ver

    (Puntos:1)
    por Auriga (22219) el Viernes, 11 Noviembre de 2005, 08:54h (#637498)
    Que yo sepa es un conjunto de prácticas que le funcionaron a Kent Beck Va a ser que no. La primera vez que se aplicó la XP (Creo que era el proyecto C3) el proyecto resultó un fracaso. KISS Es un acrónimo MUY utilizado en el mundillo de la programación. No es despectivo, es una "regla". En cuanto a la bibliografía, utiliza google, hay cientos de sitios donde se explica la XP.
    [ Padre ]
  • Re:Pregunta tonta

    (Puntos:3, Informativo)
    por Auriga (22219) el Viernes, 11 Noviembre de 2005, 09:01h (#637508)
    Porque el XP es tan sólo una de las metodologías de las que forman parte de la ingeniería del software.

    La ingeniería del software es mucho más que XP, de hecho, muchos te dirían que XP no se podría llamar ingeniería.

    Saludos.
    [ Padre ]
  • Re:Y esto como se factura.

    (Puntos:1, Informativo)
    por esparver (11505) el Viernes, 11 Noviembre de 2005, 11:09h (#637637)
    ( http://esparver.blogspot.com/ )
    Yo uso dos sistemas:
    Cada mes me pagas X por ir poniendo el sistema al dia (yo pongo los plazos, el cliente las prioridades y el precio es fijo)
    O bien facturo por módulos.

    La primera tiene la ventaja de la continuidad, con la segunda suelo ganar más dinero -por ahora, tampoco hace tanto que hago esto-
    [ Padre ]
  • Re:Sin h...

    (Puntos:1)
    por Yonderboy (22) el Viernes, 11 Noviembre de 2005, 12:21h (#637703)
    ( http://barrapunto.com/~Yonderboy/bitacora | Última bitácora: Martes, 03 Junio de 2008, 20:02h )
    corregido. Ves? No era tan flipante ;-)
    --

    "Porque las opiniones cambian, el relativista cree que cambian las verdades." --Gómez Dávila

    [ Padre ]
  • corregido

    (Puntos:1)
    por Yonderboy (22) el Viernes, 11 Noviembre de 2005, 12:22h (#637705)
    ( http://barrapunto.com/~Yonderboy/bitacora | Última bitácora: Martes, 03 Junio de 2008, 20:02h )
    corregido. Hacía daño a la vista, sí.
    --

    "Porque las opiniones cambian, el relativista cree que cambian las verdades." --Gómez Dávila

    [ Padre ]
  • Re:Ortografía...

    (Puntos:2)
    por DZPM (18824) el Viernes, 11 Noviembre de 2005, 22:40h (#638092)
    ( http://www.davidarcos.net/ | Última bitácora: Sábado, 09 Diciembre de 2006, 15:25h )
    Estos moderadores que no saben moderar... ¡la metamoderación os quitará los puntos para siempre!
    --
    Hic sunt trolls [davidarcos.net]
    [ Padre ]
  • 11 respuestas por debajo de tu umbral de lectura actual.