Son scrum y agile comunismo?

Lo que hay en el software es un burbujon y un vendehumismo de nivel epico .

Los informaticos llevais desde finales de los 90 a razon de un nuevo lenguaje/metodologia/filosofia de desarrollo cada 6 meses , la lista de de nombres y conceptos es infinita y sigue aumentando . Por otra parte , la algoritmia apenas evoluciona y para el usuario de software las funcionalidades , la robustez y la utilidad sigue siendo practicamente la misma desde hace 20 años .
Anda, pues como en todo. Pero es que lo "viejo" no vende. Hay que disfrazarlo o matizarlo un poco. De hecho, lo que menos ha cambiado sustancialmente es el campo del saber humano que mueve todo esto: el márquetin/marketing/mercadotecnia...

Las técnicad son las mismas de siempre: conceptos nuevos y reveladores, hacerte sentir especial, usar jamelgas y personslidades, apabullarte con términos extraños para hacerte elegir entre comprar o admitir tu ignorancia...
 
Humo y más humo, al final se toman requisitos, se empieza a desarrollar, cuando al cliente le sale de la vaina te pide cambios, te peleas con él y al final te la meten doblada como siempre, esto es así y será así ya le pongan un nombre u otro, por lo menos en software.

Lo de decir si esto es comunismo u otro rollo no veo por donde cogerlo, no hay q obsesionarse viendo cosas donde no las hay.

Enviado desde mi D2303 mediante Tapatalk
 
Yo trabajé con la metodologia Agile y Scrum y el concepto me gustó pero el ScrumMaster era un iluso. El tio se pensaba que "el proyecto" era meternos con calzador los valores del agilismo y el proyecto fue muy duro. Mucho mas que si no se aplicara toda esta parafernalia. Las tareas se eternizaban y se discutia sobre el sesso de los angeles por cada tontería, llegando a la extenuación.

Pero ya os digo que fue un problema de este chaval que era un flipado.
 
Yo trabaje en un proyecto de responsabilidad compartida, con responsabilidad para ambos, el cliente tenía fechas para aprobar las cosas y nosotros para entregarlas, al final se generaba una batalla entre las gerencias para ver quien enmarronaba mas al otro. Eso sí, tienes donde agarrarte.

La ventaja del ux primero es que despues se desarrolla a toda leche, y sí, hay cambios pero mucho menores.
 
Última edición:
Entregar cada dos semanas es una locura, añade presion constante, si no existe un traserilisis profundo es ir dando palos de ciego, te puedes encontrar a mitad de desarrollo.con que la tecnologia empleada no es la optima, dificulta tareas de optimizacion y planificacion que acaban en profusion de ñapas.

Yo creo que lo correcto es, traserilisis de requisitos, realizacion de prototipos interactivos por el equipo de ux, testeo por parte del cliente, todos los cambios se realizan sobre los prototipos de carton piedra faciles de cambiar y despues se tira el codigo.
Ya lo han dicho por ahi.
Tirar primero los prototipos te permite que el cliente vea su aplicacion, y permite que el.desarrollador vea que es lo que va a tener que desarrollar pudiendo parar o cambiar operativas imposibles o que ralentizan etc antes de tirar una sola linea y de haber apostado por una tecnologia.
Ademas obliga al cliente a retratarse y hacer su parte, que es proporcionar los datos, la operativa deseada etc, y si hay problemas en el.cliente entre departamentos, egos, etc, saltan cuando aun es facil resorverlo.

Yo hago lo mismo. Monto prototipos y se los mando al cliente.

En ese momento aflora buena parte de las dudas o ideas de bombero del cliente, o al reves. Muchas veces la idea encaja bastante bien con el cliente y sabes que vas sobre seguro y el entiende ya que se le va a preparar. En el caso de que haya mucha disparidad de opiniones, como el punto uno, es el momento de hablar, aclarar conceptos y ver que marco de consenso vamos a poder conseguir, y replantearse ese apartado en concreto, etc.

Esta siempre ha sido la mejor alternativa.
 
Porqué fracasan los grandes contratos?:

- En la administración: Porqué están apañados, y gran parte del presupuesto es para dar de comer a partidos y a los Bárcenas. Con lo que queda se hace lo que se puede (cada vez que entro en la pagina de la agencia tributaria me dan ganas de vomitar de lo mal que está hecha).

- En la privada: Porque las grandes entidades quieren construir mega-proyectos por la mitad de lo que cuestan, sacan licitaciones leoninas en las que las cárnicas compiten (y mienten) a gloria para ganarlos y después sale lo que sale. Lo lógico es que en un proyecto de 4 años se incluyan releases, prototipos y un presupuesto importante para cambios, pero eso encarece los proyectos y las entidades españolas pasan de pagar de mas.

Totalmente de acuerdo, el mamoneo a esas esferas es increíble. Como son increíbles los requisitos estatales (a veces dan risa), como son increíbles las mentiras que se gastan en algunos ámbitos para conseguir proyectos.

Pero eso no quita para que cuanto más largo sea el proyecto, más necesario sea buscar un sistema eficiente. No digo que Agile sea la panacea (estoy aún por poder confirmarlo...), pero sí creo que el planteamiento tradicional es válido para construir un rascacielos o una central nuclear pero no para el software.

Tú lo dices: los proyectos importantes llevan un gran presupuesto para cambios. Esto es: se desarrolla algo que no se necesita, para volver a hacerlo como sí necesita.

Es una incongruencia que hay que corregir. Porque significa que el cliente gasta mucho más dinero y se gasta más tiempo, mientras la empresa de desarrollo termina haciendo muchas más horas porque al final el cliente presiona para obtener sus resultados y se renegocia 'de malas'.

No creo que se trate de reinventar el mundo, sino de ser consciente de que esta es la realidad. Y las empresas de software a menudo priorizan tenerlo todo atado (en el sentido de que esté escrito todo perfectamente detallado...), lo cual les sirve para 'tener la razón', pero no para conseguir satisfacción del cliente.

---------- Post added 13-feb-2016 at 11:37 ----------

Yo trabajé con la metodologia Agile y Scrum y el concepto me gustó pero el ScrumMaster era un iluso. El tio se pensaba que "el proyecto" era meternos con calzador los valores del agilismo y el proyecto fue muy duro. Mucho mas que si no se aplicara toda esta parafernalia. Las tareas se eternizaban y se discutia sobre el sesso de los angeles por cada tontería, llegando a la extenuación.

Pero ya os digo que fue un problema de este chaval que era un flipado.

Esa es la impresión que me da el Scrum. Que depende demasiado de las personas.

Que si el scrummaster es un emocionado de la vida, el proyecto se va a pique. O si los equipos de desarrollo son unos flowepower que se toman las reuniones como asambleas de Podemos, la situación puede ser de risa.

Quizás funcione en Sillicon Valley, con una experiencia, unos niveles de desarrollo y una orientación. Pero para una empresa media española igual es contraproducente.
 
Es que por lo que yo tengo entendido, esas operativas se implementaron en el mundillo del código abierto, dónde hay un desarrollador en UK, otro en alemania y otro rusia, y no hay "cliente", en el sentido de que estas desarrollando a tu bola.
 
Entregar cada dos semanas es una locura, añade presión constante, si no existe un análisis profundo es ir dando palos de ciego, te puedes encontrar a mitad de desarrollo con que la tecnología empleada no es la óptima, dificulta tareas de optimización y planificación que acaban en profusión de ñapas.

Yo creo que lo correcto es, análisis de requisitos, realización de prototipos interactivos por el equipo de ux, testeo por parte del cliente, todos los cambios se realizan sobre los prototipos de cartón piedra fáciles de cambiar y despues se tira el código.
Ya lo han dicho por ahi.
Tirar primero los prototipos te permite que el cliente vea su aplicación, y permite que el desarrollador vea que es lo que va a tener que desarrollar pudiendo parar o cambiar operativas imposibles o que ralentizan etc antes de tirar una sola línea y de haber apostado por una tecnología.
Ademas obliga al cliente a retratarse y hacer su parte, que es proporcionar los datos, la operativa deseada etc, y si hay problemas en el cliente entre departamentos, egos, etc, saltan cuando aun es fácil resorverlo.

En el fondo el concepto es parecido, aunque haya bastantes matices ditintos.

Se trata de evitar que después de hacer un análisis, la empresa desarrolladora trabaje meses en la sombra para terminar entregando un proyecto que no se amolda a lo que esperaba el cliente con la consiguiente insatisfacción y desperdicio de recursos por ambas partes.

Entregando prototipos de cada funcionalidad es una forma (muy eficiente, además...) de dividir un todo muy complejo en partes mucho más pequeñas que son testeadas por el cliente para no trabajar dos veces.

Si se trabaja sobre esa base de relación cliente-proveedor, la única diferencia de implementación de Agile (al menos según el concepto que tengo yo...) es que el cliente pueda en un momento dado cambiar el orden de prioridad del desarrollo porque ya va utilizando lo que vas liberando y reconsidere sus necesidades, descartar desarrollar funcionalidades que creía importantes, o incluso solicitar nuevas sin que eso suponga un drama, porque exista esa flexibilidad contractual pero sin que eso suponga un puteo para la empresa que desarrolla.

Pero en cuanto a concepto...la parte más importante es que la comunicación entre cliente y proveedor sea constante, el testeo sea continuo y el desperdicio de recursos sea mínimo.
 
En España, a diferencia de los otros países en los que he trabajado, es casi imposible vender un proyecto grande en Time&Materials. Los clientes quieren precio cerrado siempre, salvo para proyectos en los que compran carne programadora al peso.

Claro, las consultoras venden a precio cerrado, pero una vez firmados los diseños, cuando el cliente quiere cambiar una coma, lo crujen, y de ahí que Scrum les parezca tan guay, pueden cambiar lo que quieran (en teoría) y sí, las consultoras venden proyectos de Agile a precio cerrado, en los que la variable es el scope.

Resultado: ostras como panes cuando se dan cuenta que se han tirado meses de reuniones y cambios para implementar 4 insensateces. Eso sí, todo muy guay y con papelitos.

El problema no es la metodología en este caso, sino las consultoras, puesto que las metodologías de desarrollo tradicionales en cascada también tienen esos problemas.

Habrá que utilizar la metodología adecuada al tipo de proyecto: si es un proyecto con muchos estandares y legislación, con requisitos bastante cerrados pues Métrica 3 puede ser buena opción. Si el cliente tiene una idea aproximada de lo que quiere en un mercado cambiante, pues Agile.

De todas formas lo más importante son las personas, si pones gente incompetente tendrás un churro de producto o servicio. La metodología es importante pero no tanto como gente que sepa de qué va la vaina.

Respecto al TDD es básico para tareas posteriores como la integración o la entrega, garantizando que nada se rompe por nuevos cambios en el código. Llevo haciendolo por norma durante años y te ahorras muchisimos quebraderos de cabeza.
 
Última edición:
Humo y más humo, al final se toman requisitos, se empieza a desarrollar, cuando al cliente le sale de la vaina te pide cambios, te peleas con él y al final te la meten doblada como siempre, esto es así y será así ya le pongan un nombre u otro, por lo menos en software.

Lo de decir si esto es comunismo u otro rollo no veo por donde cogerlo, no hay q obsesionarse viendo cosas donde no las hay.

Enviado desde mi D2303 mediante Tapatalk

Efectivamente, ha sido así siempre :´(.

Por eso mismo, ¿por qué no buscar la fórmula en la cual contemos con que eso va a pasar?

Repito, no puedo asegurar que Agile sea la panacea, al menos de momento. Pero sí que tengo claro que utilizar un modelo de negocio y de relación entre cliente y proveedor que sabes de antemano que es perjudicial para ambas partes por sus consecuencias negativas me parece un sinsentido.

Al menos, lo suficiente como intentar mejorar el proceso en la medida de lo posible.
 
La diferencia es que esas partes pequeñas son código, muy costoso de realizar.
Un prototipo es algo muy rápido de hacer, incluso si es navegable.
También puedes dividir las funcionalidades en ux.

A mi me ha pasado de presentar prototipos y el cliente creer que eso ya funcionaba, que ya era la aplicación, y tienes que explicarles que no, se puede hacer muy aproximado a lo que va a terminar siendo.

Hay que hacer iteracciones.

Es decir si vas a desarrollar unos prototipos aprobados, y después hay un cambio rellenito, es una iteracción más.

Tienes ya un ok anterior, y puedes negociar mejor, no es un chorreo constante por parte del cliente.

En el orden, UX, Diseño y maquetación.
Las maquetas ya suelen ser una visión muy aproximada de lo que el cliente va a tener, a partir de ahí no debería haber muchos cambios.

Pero si el proyecto es muy rellenito, la mejor manera es hacer iteracciones, fases, siempre en ux diseño, maqueta, porque es que a veces es el propio cliente el que tiene en casa un berenjenal de tres pares de narices que tiene que aclarar, quien se encarga de qué, quien proporciona esto o lo otro, competencias, etc.
Si no se resuelve eso antes apaga y vámonos.
Si el cliente se impacienta se puede desarrollar una de las fases o de los módulos, como esta todo bastante atado es rápido.

En el último proyecto rellenito del que tengo noticia, se estuvo un par de años con ux, maqueta, después en unos meses, con distintos equipos para cada apartado, se desarrollo, los tiempos de desarrollo me dejaron con la boca abierta.
Pero es que gracias a la labor de ux, ya estaba todo el análisis hipermascado, con todos sus problemas que siempre hay, pero había flujos, prototipos, de todo.
También se habían desarrollado un par de operativas en ese tiempo, con una tecnología, que después se descartó, el cliente vió aplicación rulando, y se pudo ver que esa tecnología no podía ser.
 
Última edición:
De todas formas lo más importante son las personas, si pones gente incompetente tendrás un churro de producto o servicio. La metodología es importante pero no tanto como gente que sepa de qué va la vaina.

En eso estoy completamente de acuerdo: sin personas competentes no hay posibilidad de viabilidad alguna.

Aún así, he visto alguna vez la sensación de frustración y de hastío en gente muy válida cuando ha desarrollado la mejor de las soluciones posibles a un problema concreto, ajustándose perfectamente a las especificaciones dadas, y tiene que volver a rehacer la funcionalidad porque el problema viene de que esas especificaciones se establecieron antes de que el cliente conociera el software.

La jovenlandesal también hace mucho, como en cualquier trabajo. Y no hay nada que toque más las narices a un desarrollador eficiente que tener que rehacer un trabajo que estaba bien hecho por motivos ajenos a su trabajo...

Como a cualquier creador o artesano (por decirlo de alguna forma...), al desarrollador también le da seguridad, confianza y ánimos ver que el proyecto va avanzando. Y por tanto le suele dar asquito volver una y otra vez a partes del proyecto que ya daba por zanjadas.

---------- Post added 13-feb-2016 at 12:13 ----------

L
En el último proyecto rellenito del que tengo noticia, se estuvo un par de años con ux, maqueta, después en unos meses con distintos equipos, se desarrollo, los tiempos de desarrollo me dejaron con la boca abierta.

Ya te he comentado que me parece una estupendísisima idea que el cliente pueda 'ver' como será el programa, y una forma de evitar rehacer un código ya hecho.

Pero veo un inconveniente en hacer toda la parte visual de un proyecto medianamente grande y luego hacer el desarrollo 'de tirón'.

Que el cliente comprenda cómo será el flujo evita muchos, muchísimos problemas. Pero no olvidemos que eso no significa que lo esté usando.

Mi concepto (al menos el que tengo en la cabeza, aún estoy desarrollándolo, jeje...) es que hubiera un core de funcionalidades mínimas usables, teniendo en cuenta las dependencias, que pueden ser una parte bastante pequeña del software. Dependerá si ese software sustituye a otro, necesite importación, etc etc, el que ese core pueda ser pequeñito o medianamente grande.

Ese core se podría validar mediante los métodos que tu propones, para asegurar el tiro al máximo. Que el cliente pueda hacerse una idea de cómo sería su UX y matizar al máximo su necesidad.

Y entonces, para mi importante, se desarrolla y se libera. Y es el uso constante (no siempre será posible, pero sí en muchos casos...) el que marcará el orden de prioridades siguiente o nuevas necesidades no contempladas.

Si se desarrolla todo del tirón, tener el OK del cliente a una maqueta evita muchos problemas. Pero si el software es bastante amplio, al final puede estar lleno de funcionalidades que se terminarán no utilizando, o carecer de otras importantes que surgen con el uso...

Por eso me parece importante (siempre que se pueda, repito...) que en cuanto haya un mínimo usable el cliente pueda utilizarlo, para a partir de ahí seguir dándole forma con el mismo procedimiento: el cliente establece prioridades, se preparan pantallas para su revisión, etc etc.
 
Totalmente de acuerdo, el mamoneo a esas esferas es increíble. Como son increíbles los requisitos estatales (a veces dan risa), como son increíbles las mentiras que se gastan en algunos ámbitos para conseguir proyectos.

Pero eso no quita para que cuanto más largo sea el proyecto, más necesario sea buscar un sistema eficiente. No digo que Agile sea la panacea (estoy aún por poder confirmarlo...), pero sí creo que el planteamiento tradicional es válido para construir un rascacielos o una central nuclear pero no para el software.

Tú lo dices: los proyectos importantes llevan un gran presupuesto para cambios. Esto es: se desarrolla algo que no se necesita, para volver a hacerlo como sí necesita.

Es una incongruencia que hay que corregir. Porque significa que el cliente gasta mucho más dinero y se gasta más tiempo, mientras la empresa de desarrollo termina haciendo muchas más horas porque al final el cliente presiona para obtener sus resultados y se renegocia 'de malas'.

No creo que se trate de reinventar el mundo, sino de ser consciente de que esta es la realidad. Y las empresas de software a menudo priorizan tenerlo todo atado (en el sentido de que esté escrito todo perfectamente detallado...), lo cual les sirve para 'tener la razón', pero no para conseguir satisfacción del cliente.

---------- Post added 13-feb-2016 at 11:37 ----------



Esa es la impresión que me da el Scrum. Que depende demasiado de las personas.

Que si el scrummaster es un emocionado de la vida, el proyecto se va a pique. O si los equipos de desarrollo son unos flowepower que se toman las reuniones como asambleas de Podemos, la situación puede ser de risa.

Quizás funcione en Sillicon Valley, con una experiencia, unos niveles de desarrollo y una orientación. Pero para una empresa media española igual es contraproducente.


Como siempre, "sentido comun".

En ese departamento este tio del que hablamos iba de divo y aquello era un show esperpentico. Recuerdo haber dedicado una reunión entera (de horas) a deliberar sobre un solo dato en pantalla. Si el dato tiene que ir en zainita, o no, con el titulo resumido o sin resumir, con tonalidad de fondo o no, etc.... jorobar, que estemos una reunión entera para el escenario completo ok. ¿Pero para un dato en pantalla? Ya esta bien de justificar lo injustificable. Así eran las reuniones con este tio.

Por eso os digo. La metodologia esta de querida progenitora, pero es solo una herramienta.
 
Para ver si algo es una chorrada sólo hay que hacerse las preguntas correctas:

¿Utiliza Oracle para hacer sus bases de datos Scrum/Agile? No.
¿Utiliza Microsoft para hacer sus productos Scrum/Agile? No.
¿Utiliza Cisco para hacer sus productos Scrum/Agile? No.
¿Utiliza SAP para hacer sus productos Scrum/Agile? No.
¿Utiliza Huawei para hacer sus productos Scrum/Agile? No.
¿Utiliza Apple para hacer su iOS Scrum/Agile? No.
¿Utiliza Tesla para hacer sus productos Scrum/Agile? No.
¿Utiliza Amazon para hacer sus productos Scrum/Agile? No.
¿Utiliza Google para hacer su coche inteligente Scrum/Agile? No.
¿Utiliza Intel para hacer sus productos Scrum/Agile? No.
¿Utiliza AMD para hacer sus productos Scrum/Agile? No.
¿Utiliza Boeing/Airbus para hacer sus productos Scrum/Agile? No.
¿Utilizan todas las empresas anteriores documentación formal para detallar sus productos? Sí

¿Utiliza Google para hacer sus webs/apps Scrum/Agile? Parcialmente
¿Utiliza Facebook para hacer sus webs/apps Scrum/Agile? Parcialmente
¿Utiliza Twitter para hacer sus webs/apps Scrum/Agile? Parcialmente
¿Utilizan todas las empresas anteriores wikis (tipo Confluence)/user stories/logs/emails para detallar sus productos? Sí


¿Os imagináis en un proyecto teniendo a un tío exclusivamente dedicado a recordaros qué es un business traserilyst, un tester, un DBA, un arquitecto, que es un requerimiento? Absurdo pero en Scrum hay un tío que se dedica a eso y si ocurre es porque es antinatural y antiintuitivo y hay que "venderlo" constantemente, va en contra del sentido común.

Scrum/Agile es la McDonalización de la ingeniería para que las consultoras puedan vender a bajo coste, teniendo al personal haciendo todos los roles posibles y con presión en el trabajo descomunal, meetings diarios, etc. sin ningún tipo de autonomía individual, en habitaciones compartidas y donde todo el mundo ve lo que haces y dices.

Para mí el simil del comunismo es magnífico por parte del forero, describe exáctamente en lo que se han convertido las sw factories donde no se deja especializar a la gente (donde antes había un DBA, ahora hay un scrum team difuso) menos para los puestos powerpointineros como el Product Owner y el Scrum Master, el primero un tío que no entiende ni de técnica ni de plazos y que simplemente le dice que sí al cliente pasando el marrón a los de abajo, el segundo un tío que como si fuera el líder de una secta, les dice a los marineros que su sentido común se equivoca, que es normal destrozar el sistema a mitad del partido para meter cosas que el product owner promete.

Donde antes había jerarquías, ahora hay remeros sin categoría y dos vendemotos. Comunismo puro y duro.

Como me he reido con la descripcion de Scrum Team.
 
Volver