Aversión al riesgo en un contexto decisorio de marco estrecho

La cuestión aquí radica en el “mi punto de vista es el único bueno”, cuando verdades universales hay pocas y el tiempo en cuanto a cantidad no suele ser sinónimo de calidad: por un lado deja apartada la posibilidad de que el aprendiz pueda enseñar al maestro, y por otro, hay personas, que seguro no es su caso, tienen 30 años de experiencia, repitiendo el primer año.

Una pequeña disertación (mentira, larga):

Si dividimos la forma de afrontar los proyectos en una forma tradicional llamemosle en cascada o waterfall vs una forma moderna llamemosle ágil o “agile”, cada proyecto puede aplicarse mejor siguiendo una o la otra o a veces, mezclando alguna etapa de una en la otra.

Waterfall puede servir para proyectos de envergadura o alcance pequeño y/o muy acotados, con equipos pequeños. Por ej. desarrollar una utilidad, un CLI o librería de conexión a una API o una prueba de concepto para validar una hipótesis. Y aún así, se enriquece si empleamos prácticas típicamente potenciadas con el agile como TDD, CI/CD por nombrar alguna.

Agile sirve para proyectos en los que la única forma de validar el proyecto es entregándolo y hacer, no ya sólo que su cliente lo pruebe y valide, si no que sus usuarios o a su vez clientes (e incluso usuarios de sus clientes) lo validen. Léase validar como hacer que se use. Un software sin usuarios …

La educción de requisitos puede formar parte de los artefactos que utilice para acometer un proyecto, tanto en waterfal como en agile. Pero la literatura e internet están llenas de fracasos de desarrollos puramente waterfal caja negra.

Por otro lado ver a un ente privilegiado y providente (una persona o comité) que es capaz de definir todo lo que debe hacer el software, mitigar el riesgo de desviación en alcance, presupuesto y tiempos, de modo que cuando unos trabajadores de cuello azul lo desarrollen y se entregue dentro del plazo comprometido (¿2-3 años vista?) con el cliente sea lo que este espera (y repito lo anterior que comentaba: que sea lo que usen sus usuarios o clientes), es como hacer sonar la flauta. Los proyectos se enriquecen cuando en ellos participan varios stakeholders: clientes, usuarios y equipo de desarrollo, típicamente multidisciplinar y se entrega de forma continua: cuello blanco

Le recomiendo que revise la historia del desarrollo del software, de cómo cuando al nacer, el desarrollo de software me refiero, nos fijamos en escuelas cercanas como la ingeniería industrial o arquitectura para copiar las mismas etapas (diseño-plano, perfiles-obreros, código-ladrillos) y cómo a través del tiempo y la frustración, se vio que debía haber otras formas de hacer software: movimiento agile y el agile manifiesto y que no eran trasladables 1 a 1 ni mucho menos por los graves problemas de sobrecostes y disgustos a la entrega.

Si necesita enlaces, puede pedírmelos.

Y por terminar esta parrafada que hasta a mi me está costando leer para repasar (¿quizás no debiera publicarla?) como se suele decir, como muestra vale un botón y partiendo de que la gente puede vivir y comer de muchos tipos de actividades y cómo afrontarlas, me encantaría que me pusiera ejemplos concretos, públicos (webs, Apps, sistemas, etc.) que se acometieron en alcance, presupuesto y tiempo con una estrategia waterfall, con recomendaciones de clientes y buen NPS; no hay más crédulo que el que ve y mete el dedo en el agujero del clavo. No es un reto, o quizás sí, como digo, de todo se aprende y me vendrá bien conocerlos.

Por mi lado, puedo hablarle directamente de www.dialenga.com, producto de mi empresa, desarrollado durante sus 3 años de vida con metodologías ágiles, con el usuario en el centro (product management, hablando con el cliente y usuario constantemente), entregas continuas mensuales y que usamos en nuestra propia empresa (por lo de Taleb y el ingeniero que vive debajo del puente), además de para más de 20 clientes y más 20000 usuarios. Sigue en evolución porque para mi el software es un ente vivo. Y podemos hablar de otros proyectos abordados igualmente si lo desea.

Un saludo.

7 Me gusta

Nada que disculpar. Estamos debatiendo y aprendiendo tod@s de tod@s. Muchas gracias

3 Me gusta

Yo diría que no, diría que radica en distinguir complejo de complicado, algo que no es tan difícil pero que al final acaba en bastante debate en el foro.

Desde mi punto de vista no hay ninguna.

Ya le digo yo que no, aprendo a diario digamos que da bagaje ver 30 años de cambios y asimilarlos… y lo que queda.

Lo que no se puede es afrontar un proyecto por complicado que sea sin definición previa, luego lo gestiona como quiera, el problema de informático es pensar como informático, algo inútil pues la informática sirve para algo, por lo tanto el informático ha de ser ‘mutante’ según el proyecto, si le toca un proyecto de medicina no le vendría mal una semana rotando un hospital por diferentes puestos, viendo las tareas a mecanizar y mejorar, he dicho un hospital como podría haber dicho cualquier otra cosa, esto se ha de hacer siempre, siempre, siempre, se ha de hablar el lenguaje del cliente, abogado, médico, contable, etc… de eso va mecanizar procesos de comprenderlos, organizarlos y mejorarlos. No de probar navegadores precisamente… el que no entienda esto que se dedique a otra cosa, escribir un programa en un lenguaje es como hablar un idioma, se puede aprender más o menos, pero luego hay que tener algo que decir, por lo tanto usted podrá saber chino y podrá dar una conferencia en chino si domina el tema de la conferencia, el chino no es el tema, es el me7dio, por lo tanto o aprende el tema o busca asesoramiento que le escriban la conferencia. Y creo que con esto lo he dicho todo. Luego gestiona el proyecto como quiera, si quiere con una libreta y un lápiz… de hecho he gestionado muchos proyectos así.

No creo que sea necesario comentar más. Yo creo en la reutilización y la escalabilidad del software así como los años aportan conocimiento para dejar unas prácticas y adoptar otras, pero es que no estamos hablando de esto, vuelvo al inicio: complicado vs complejo.

Dígame usted qué proyectos complejos ha realizado o ejemplos si quiere y se podrían analizar si son complejos o complicados. Ese es el tema y en primera fase como se actúa ante una u otra causa, en software y el la vida en general que al fin y al cabo es lo mismo.

Le agradezco de veras el tono y las formas.

2 Me gusta

Complicado vs complejo

Deje que utilice algunas fotos de un viejo libro (aunque no mucho, 2011), Management 3.0 por Jurgen Appelo para establecer un marco sobre el que hablar:


Por si no se lee bien:

Complicated referes to a system’s construction being too intricate to understand, unless you’re an expert, whereas complex and chaotic refer to a system’s behavior which is unpredictable to a small or large degree.

También interesantes en la imagen los dos modelos por David Snowden Cynefin y por Ralph Stacey The agreement and certainty model (o matriz)

Complejidad y predictabilidad

Complejidad en sistemas software

Destaco:

When it requires an expert to understand the structure of your software, I (the author) prefer to say it is complicated. And when the behavior of your system cannot be fully predicted (as in AI, neural networks, or multiplayer games), I say the software is complex.

Los proyectos software como systemas complejos adaptativos

…describes that systems composed of “agents” … can be molecules, neurons, web servers, or people, always organizing and reorganizing themselves into larger structures, and thereby forming new emergent structures with new emergent behaviors.

Resumen complejidad vs complicado
La complejidad aduce a cuán impredecible es un sistema o los sistemas en cuanto a los comportamientos que de ellos se esperan, mientras que el caracter complicado lo fija el nivel de experiencia de la persona que lo aborda.

Un sistema puede ser complejo y muy fácil de programar, por ej. El Juego de la Vida, que con unos patrones sencillos produce resultados inesperados. Y al contrario, un algoritmo u optimización para mejorar el rendimiento de un sistema puede ser muy complicado de conseguir, requiriendo a un experto que lo aborde, pero no afecta a su relación con su entorno y la salida siempre es la esperada.

El debate
Después de esta introducción larga, creo que por un lado podemos decir que estamos de acuerdo, o así lo veo yo, en que para abordar un problema, hay que pensar y rodearse de gente que ayude a descubrir qué se necesita (el gran QUÉ) por parte de clientes y usuarios con ayuda de expertos y el equipo multidisciplinar (recordemos que necesitar es distinto de querer).

Y el quid de la cuestión es la complejidad en las relaciones entre los diversos stakeholders como son clientes, usuarios, equipo de desarrollo (visto como desarrolladores y diseñadores de ux y ui) y otros elementos (márketing, legal, comercial, infraestructura o soporte). Complejidad por los resultados inesperados ante agentes con comportamientos impredecibles: ¿hemos entendido bien lo que nos pedían? ¿Cumplimos con el cliente, pero también con otros stakeholders? ¿Lo usarán los usuarios del cliente? ¿Que a lo mejor son sus propios clientes? Aquí puede haber preguntas mil.

Esta es la raíz del debate para mi, sea el proyecto optimizar el cuello de botella del cliente que ejecuta una transacción por minuto cuando lo deseado es 1 segundo (complicado) o conectarnos con una heterogenidad de sistemas para consultar fuentes de datos metereológicos algunos con APIs poco documentadas, otros con limitaciones de API por consumo temporal y otros a los que hay que hacer ingeniería inversa o web scraping donde cada semana cambián la forma de presentar los datos.

De modo que, complejidad vs complicado o expresado como eliminar la incertidumbre en el mejor de los casos para mi es semántica. Sabemos que queremos que el sistema responda en 1 segundo y no en 1 minuto (despejada la incertidumbre) y convertido en complicado, pero ahora entra la incertidumbre de cómo conseguirlo, aparece otra incertidumbre aunque despejamos la anterior. Puede ser que sea tan fácil como tocar un parámetro en algú sitio, o tener que cambiar media arquitectura o infraestructura.

Pero esto es un ejemplo muy sencillo, cuando hablamos de crear desde cero un software que tienen en la cabeza en forma de nebulosa nuestros clientes, la única forma de eliminar la incertidumbre es publicar cuanto antes, acortar los tiempos de entregabilidad (sic) de software funcionando, haciendo las actividades que sean necesarias para poder ponerlo en marcha cuanto antes, y esto es complejo porque intervienen de nuevo las personas y no sabemos cómo responderán: ¿les gustará a nuestros clientes? ¿les gustará a nuestros usuarios? y lo más importante ¿lo utilizarán? ¿pagarán por utilizarlo? Y no sé si les habrá pasado al resto, pero cuántas veces alguien describía un lanzador de satélites como que era lo que necesitaban, cuando en realidad les servía con un botón que copia&pegara un código.

Lo que aquí se ha comentado que es una receta para el desastre es abordar un desarrollo como un proyecto en cascada, caja negra, (ojo, que yo comentaba que puede tener sus aplicaciones y casos de uso en función del alcance, tipo de proyecto o de equipo) con una fase larga de extracción de requisitos ligándolo con que se eliminará toda la incertidumbre.

Y por enlazarlo algo, mínimamente al hilo, y ya que me perdonen los dioses o demonios del offtopic, nuestro Sistema 1 según Kahneman ha entrado sin pensar a contestar con un No a ¿eliminar incertidumbre por completo, desarrollo caja negra? Conseguir que tras varios meses analizando requisitos, sin validar nada, diseñar su ui, sin validar nada, programarlo, sin validar nada, probarlo, sin validar nada, y el último día, tras varios meses o años presentarlo, vuelvo a decir, que ya puede sonar la flauta (sin validar nada con cliente se refiere). Si esto sí que lo aborda, lo puede llamar agile o fragile, pero a fin de cuentas estaríamos de acuerdo en casi todo, salvo en la parte de eliminar la incertidumbre por completo que para mi, repito, se despeja en la cúspide del cono de incertidumbre.

Un saludo.

14 Me gusta

Ese es el problema, que lo que para ustedes es semántica, no solo usted sino muy buena parte del foro para mí es muy importante y de ahí radica las diferencias en la visión de los problemas, resumiendo:

Complicado: Se puede conocer y resolver.
Complejo: Se desconoce y no se sabe cómo evolucionará en el futuro.

Complicado: Se trabaja, se pule y se entrega controlando errores sobre que lo que no se controla.
Complejo: Averigua tú, fuerza bruta siempre.

Y esto es.

1 me gusta

Para el desastre dependerá de quien lo gestione… digo yo. Y paro aquí.

Es muy difícil sacarle algún estoy de acuerdo :blush:.

Yo sí se lo digo, comparto la definición complejo vs complicado (es la que es). Y no es que no comparta su rigidez con el lenguaje, es semántica porque va más allá de tener razón, va de sea complicado o complejo se parte siempre de presupuesto, alcance y tiempos, con la calidad en el centro.

Usted indica que siendo complicado puede dar un presupuesto que se adecua a presupuesto, alcance y tiempos, con calidad entiendo, porque elimina la incertidumbre y sabe que necesita P programadores, E expertos, D diseñadores, etc. durante T tiempo que supone un P presupuesto, y de ahí no se mueve (quizás le meta un pequeño margen del X% por asegurar). Yo creo que no, y que pasará lo que comentaba @Segado, en unos acertará y en otros no, pero en conjunto le debe compensar (a no ser que quiera cerrar).

Y muchas veces se acierta o se gana porque se renegocia con el cliente según se consume presupuesto, recortando alcance u otras variables anteriores como la calidad.

Y desastre o no, como le decía en algún comentario anterior, me alegra saber que a usted no le pasa, en serio. Me pica la curiosidad sobre los tipos de proyectos que lleva, sin malicia.

Un saludo.

8 Me gusta

Error, vea este vídeo, y los que siguen si quiere más:

Así lo veo y no sólo yo, si a ustedes les va bien otra cosa y la venden perfecto, para gustos los colores. No hay más discusión.

1 me gusta

Sí, dado que es 0 bajará algo la media. :speak_no_evil:

6 Me gusta

image

3 Me gusta

Lamentablemente nadie se ha molestado en ver el vídeo que enlacé para saber de que hablo, pero para dar 16 me gusta a un señor que afirma esto no han tenido que pensar demasiado. Este señor que afirma que la complejidad son los navegadores, pues si atiendo a su popularidad debe ser ¿verdad?

Hola,

Este señor del que usted habla, fundó una empresa de informática que posteriormente vendió a una multinacional y ahora se dedica a tocarse la barriga en su casa a pesar de no haber cumplido aún los 40. Algo debe de saber :grin:

Edito: además, en este hilo, han participado, al menos que yo sepa, un empresario y dos directivos de primer nivel del mundo de las tecnologías.

Saludos!

18 Me gusta

Vaya, pues si que los tiene contados, @autoinmune , en todo el tiempo que lleva usted con nosotros, si las estadísticas no mienten, ha recibido usted unos 3.300 corazoncitos y ha asignado la friolera de 0.

Por alguno de sus comentarios entiendo que no le gusta la política de los corazoncitos, pero me resulta tremendamente difícil descifrar, porque es tan sensible a contar cuantos reciben los demás y cuantos recibe usted.

Ya le digo, que le pregunto por curiosidad, no por nada en especial, y sin acritud alguna.

18 Me gusta

Buenas tardes @autoinmune, permítame que le diga que yo si ví el vídeo (que me perdone cualquier $DEITY que me lo puse a x1.75).

@Segado puso un símil que diversas personas que hemos contribuido al hilo estamos de acuerdo, y usted respondió lo siguiente:

De repente, se abrio el melón más grande de la huerta, llamado Complejidad vs complicado. Nos apetecía un buen melón bien grande y jugoso.

Aquí, a más de uno nos encantaría que nos enseñara, o al menos a mi y de nuevo repito que sin malicia, no con teoría de vídeos o enlaces de la wikipedia sobre ingeniería de requisitos, cómo usted es capaz de acertar siempre en costes y tiempos, entregando lo que espera el cliente con una calidad. Cómo es posible que el instante t0, usted dice: esto son 100.000€ y se necesita este equipo, y entregamos en este plazo, su cliente lo acepta y al final y sale con su margen de contribución esperado, porque como siempre acierta.

Yo le he preguntado por varios ejemplos reales, tipología de proyectos para entenderlo mejor. Puede que se hayan quedado en el maremagnum de cosas que hemos escrito.

Por último, usted facilitó ese vídeo, que repito, yo sí he visto, pero concluyó sus aportaciones con un

Y ahora entra de nuevo al debate, metiendo ese comentario (que sinceramente, sin magnificarlo, yo he visto sufrir a equipos haciendo compatibles ciertas webapps con varios navegadores, con versiones del pleistoceno, y eso no hay matriz de riesgos que te lo despeje, sin más).

No le entiendo.

Le comenté esto

Porque de todo lo que le compartí, seguro que se lo leyó y clicó en ello, pero no me indicó nada al respecto, sólo me hablaba de lo mismo.

Perdóneme, pero es difícil dar al like cuando uno pone empeño y sólo le dicen Error, mire este vídeo teórico (lo de teórico es cosa mía).

Un saludo.

16 Me gusta

Un placer degustar sus artículos.
Las motivaciones bajo las cuales las personas tomamos las decisiones no suelen ser fáciles de analizar y el concepto de riesgo se suele tomar más de la cuenta como excusa cuando conviene como si ese tipo de análisis de riesgo fuera el único posible.

El caso que comenta creo que es parecido al hecho de invertir en renta variable con un marco temporal amplio en lugar de hacerlo con un marco temporal estrecho. Si nos vamos a un año concreto es fácil poder encontrarse con un año muy negativo pero si ampliamos sensiblemente ese marco temporal, la racionalidad de la decisión respecto a no invertir va ganando probabilidades positivas. Y más si ajustamos a inflación.

Tal vez por esto hay que andarse con cuidado con conceptos como la volatilidad como medida del riesgo, una herramienta que puede ser útil pero que suele focalizar el riesgo excesivamente a corto plazo.
Si uno invierte a 15 años o pretende ir retirando su dinero de forma escalonada, debería de preocuparle bastante menos que cuando todavía le queda tiempo significativo para retirar dinero, aparezcan caídas significativas.

En este sentido creo que el tiempo y la dispersión de situaciones juegan también un papel importante en intentar entender la tipología de los riesgos que implican los distintos tipos de situaciones y decisiones. Por ejemplo el escenario actual es propicio a que uno “haga planes” a partir de una rentabilidad alta y una inflación muy baja, sin embargo en este caso, debería ajustar la inflación al alza y la rentabilidad a la baja para intentar valorar el riesgo de ese tipo de decisión.

Desde el punto de vista de la lógica empresarial que tanto nos gusta citar, sin cierta capacidad de asumir riesgos incómodos, suele ser complicado que una empresa pueda mantener su estatus actual. La dinámica competitiva es algo a no olvidar en la toma de decisiones y no vale eso de pensar que si no hacemos nada nos quedaremos igual de bien que estamos. Fisher comentaba que como inversor de largo plazo en empresas, sólo le interesaban aquellas con la mentalidad adecuada para que el cambio fuera el motor de su actividad no aquellas que simplemente querían vivir de laureles pasados o actuales.

11 Me gusta

Se lo voy a explicar con un vídeo y le recomendaré leer a Foucault, aunque me temo que ni lo van a ver ni lo van a leer. Pero todo tiene su explicación si se busca:

Esto a usted le aporta, para mi es un claro sesgo de autoridad… le entiendo a usted, pero disiento y bastante.

Me alegra enormemente. Espero que ahora entienda de qué estoy hablando.

No lo mezcle, los costes no tiene que ver con la ejecución correcta del proyecto, le pondré un ejemplo claro: si se presenta a un concurso cerrado ¿cómo lo hace? O no se presenta nunca porque no puede o sabe calcular costes… La cuestión es cómo afrontar un proyecto previamente si con una complejidad que se puede despejar o con una complicación para la cual se tiene una estrategia; bien mi teoría es clara tengo que saber qué tengo que hacer en primera instancia, luego calcularé los costes y firmaré un contrato / o un concurso si me convienen y si no rechazaré el proyecto por inviable económicamente.

2 Me gusta

Verá , @autoinmune , en efecto he visto el video. No me ha dado tiempo a leerme a Foucault.

Lo siento, pero no soy capaz de entender su más que segura brillantez, y por tanto no saco una conclusión clara de lo que quiere transmitir. Nosotros los que no hemos nacido con un CI alto, y somos más bien del montón, precisamos de respuestas sencillas y claras que hasta un niño de cuatro años pueda entender, quizá porque nuestra madurez se quedó más o menos por esa edad. Explicar las cosas con claridad, hace que yo pueda empatizar con usted, y entender realmente lo que quiere decir. También entiendo que usted no quiera rebajarse a mi nivel, y por ello me copie y pegue cosas de otros, pero a mi cuando le pregunto a usted, me importa poco lo que hayan dicho otros, y me interesa más desgranar lo que piensa usted.

Si usted no va a perder su valioso tiempo para hacerme entender lo que realmente usted quiere decir, no me haga perder el mío.

Sin acritud, ceso cualquier intento más de tratar de empatizar con usted mientras no vea que de verdad y genuinamente tiene usted la intención de que ambos aprendamos juntos. A estas alturas de mi vida, es lo menos que puedo hacer por usted, pero sobretodo por mi. Por supuesto siéntase libre de seguir expresando su opinión y la de otros con respeto y educación como ha hecho hasta ahora.

Gracias.

24 Me gusta

Le agradezco esto, pero lo dice usted no yo. Así que lo puede argumentar hágalo, pero a la vista de que no me entiende en absoluto dudo que su afirmación sea sincera.

Realmente no hace falta CI alto para entender, el vídeo es claro y lo argumenta bien, si no lo entiende y necesita nivel de cuatro años como dice lo siento de veras.

Pienso exactamente que el poder general verdad, lo dice el vídeo y bajando un poco el nivel, le sigo recomendado leer a Foucault, y que el poder son relaciones, también los dice el vídeo (y los like son relacciones) y generan razón… no sé si puedo ser más explícito sin que ustedes piensen que les estoy tomando el pelo.

Han dado 16 like a un señor no sabe ni lo que dice, eso es: Generar verdad, poder, relaciones. Creo que es algo muy sencillo de entender y a usted no le costará mucho si quiere hacerlo.

Ahí quería llegar yo, Jvas, es Ud. de los míos (sesgo del pelota rastrero).

Para entenderme solo ha de leer a Francisco Ibáñez, por lo que le recomiendo analice el video que le reproduzco, le dará la más aproximada idea de cómo opera mi cerebro y porqué en vez de CI lo mío es TDI, eso sí, con tracción a mis cuatro neuronas.

Cita

10 Me gusta

Me he reído un buen rato @CalimeroRex , he de reconocer que soy un gran fan de su sentido del humor :laughing:

Siempre he pensado que donde hay sentido del humor, hay inteligencia a raudales.

5 Me gusta