Este sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de.\nSitio web donde se informa a las jóvenes de los problemas que puede acarrearles un embarazo precoz. Las mujeres desnudas más guapas en fotos eróticas de alta calidad Fotos eróticas: Mujer modelo desnuda / jovencita en pelotas / mujer erótica / galerías fotos.\nMUJER enseña La PANOCHA\nLas mujeres desnudas más guapas en fotos eróticas de alta calidad Fotos eróticas: Mujer modelo desnuda / jovencita en pelotas / mujer erótica / galerías fotos. Ummm Una maravilla realmente. A pesar de que yo, por lo general, apuesto mas por la experiencia y el buen sabor de los años bien disfrutados, no puedo dejar de. Hay mujeres más velludas que otras, es normal. Pero si eres de las que tiene vello oscuro y grueso excesivo en donde casi ninguna mujer lo tiene, como la cara, la. Este sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de.\nHay mujeres más velludas que otras, es normal. Pero si eres de las que tiene vello oscuro y grueso excesivo en donde casi ninguna mujer lo tiene, como la cara, la. Sitio web donde se informa a las jóvenes de los problemas que puede acarrearles un embarazo precoz. Hay mujeres más velludas que otras, es normal. Pero si eres de las que tiene vello oscuro y grueso excesivo en donde casi ninguna mujer lo tiene, como la cara, la. Este sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Este sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de.\nEste sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Ejercicios Para Crecer Los Senos. El tamaño de los senos es un tema muy emocional para la mayoría de las mujeres. El pecho, al ser una parte tan integral y sensible. Hay mujeres más velludas que otras, es normal. Pero si eres de las que tiene vello oscuro y grueso excesivo en donde casi ninguna mujer lo tiene, como la cara, la.\nUmmm Una maravilla realmente. A pesar de que yo, por lo general, apuesto mas por la experiencia y el buen sabor de los años bien disfrutados, no puedo dejar de. Ummm Una maravilla realmente. A pesar de que yo, por lo general, apuesto mas por la experiencia y el buen sabor de los años bien disfrutados, no puedo dejar de.\nUn grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida. Un grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida. Los muslos de las mujeres famosas con las piernas mas atractivas y sensuales.\nEste sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Ejercicios Para Crecer Los Senos. El tamaño de los senos es un tema muy emocional para la mayoría de las mujeres. El pecho, al ser una parte tan integral y sensible.\nEste sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Un grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida. Los muslos de las mujeres famosas con las piernas mas atractivas y sensuales. Las mujeres desnudas más guapas en fotos eróticas de alta calidad Fotos eróticas: Mujer modelo desnuda / jovencita en pelotas / mujer erótica / galerías fotos.\nBellas y de busto reducido. 1) Esta jovencita es un primor, cara de ángel y pechos sensuales. Divina. 2) Chica de aspecto intelectual y lindas tetas. 3) Rubia. Ejercicios Para Crecer Los Senos. El tamaño de los senos es un tema muy emocional para la mayoría de las mujeres. El pecho, al ser una parte tan integral y sensible. Vídeos porno de mujeres morenas gratis en español. Las mejores películas de chicas látinas desnudas follando gratis. Desnudos de chicas latinoamericanas. Chicas. Ejercicios Para Crecer Los Senos. El tamaño de los senos es un tema muy emocional para la mayoría de las mujeres. El pecho, al ser una parte tan integral y sensible.\nSitio web donde se informa a las jóvenes de los problemas que puede acarrearles un embarazo precoz. Bellas y de busto reducido. 1) Esta jovencita es un primor, cara de ángel y pechos sensuales. Divina. 2) Chica de aspecto intelectual y lindas tetas. 3) Rubia. Vídeos porno de mujeres morenas gratis en español. Las mejores películas de chicas látinas desnudas follando gratis. Desnudos de chicas latinoamericanas. Chicas.\nEste sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Un grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida. Bellas y de busto reducido. 1) Esta jovencita es un primor, cara de ángel y pechos sensuales. Divina. 2) Chica de aspecto intelectual y lindas tetas. 3) Rubia. Ummm Una maravilla realmente. A pesar de que yo, por lo general, apuesto mas por la experiencia y el buen sabor de los años bien disfrutados, no puedo dejar de.\nSitio web donde se informa a las jóvenes de los problemas que puede acarrearles un embarazo precoz. Ejercicios Para Crecer Los Senos. El tamaño de los senos es un tema muy emocional para la mayoría de las mujeres. El pecho, al ser una parte tan integral y sensible.\nVídeos porno de mujeres morenas gratis en español. Las mejores películas de chicas látinas desnudas follando gratis. Desnudos de chicas latinoamericanas. Chicas. Un grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida.\nEste sitio tiene contenido ADULTO. Si no tienes 18 años de edad debes ABANDONAR inmediatamente este sitio. Todas las modelos presentes en movietorrent.ru son mayores de. Un grupo de científicos ha determinado que los hombres que tienen una fijación especial por los senos de las mujeres, podrían alargar hasta cinco años más su vida.\nLos pequeños pechos de las mujeres jóvenes 8 10 19\n4 thoughts on “Los pequeños pechos de las mujeres jóvenes”\nЛидия к записи Los pequeños pechos de las mujeres jóvenes


Las 15 mejores empresas de Empresas de suelos y moquetas en Tadworth, Surrey, UK | Houzz\n1.125 empresas de suelos y moquetas en Tadworth, Surrey, UK\nPor mucho que el suelo de nuestro hogar sea para ser pisado, merece una especial atención. Además, si te gusta caminar descalzo, seguro que has notado la diferencia entre caminar por parqué a caminar por baldosas. En la variedad está el gusto y en los diferentes tipos de suelos, el confort personal de cada uno. Encontrarás soladores y tiendas de alfombras en Tadworth, Surrey, UK que te ayudarán a dar con la solución más adecuada para tu espacio y para ti. ¿Te decantarás por poner tarima flotante o te atreverás esta vez con la moqueta? Más\nVisit Our Ascot Showroom\nHaz clic para llamar23,1 km de Tadworth, Surrey\nHaz clic para llamar14 proyectos en TadworthPatrocinado\nHaz clic para llamar14 proyectos en Tadworth, Surrey\nHaz clic para llamar7,2 km de Tadworth, Surrey\nValoraciones destacadas para 1.125 empresas de suelos y moquetas en Tadworth, Surrey, UK\n¿Qué tipos de suelos hay en Tadworth, Surrey, UK?\n¿Qué puedo encontrar en una tienda de alfombras de Tadworth, Surrey, UK?\nEncuentra soladores y tiendas de alfombras en Tadworth, Surrey, UK. Mejora los resultados de la búsqueda en la sección “Profesionales” incluyendo el nombre de tu ciudad o comunidad autónoma. También puedes consultar las fotos de proyectos de los profesionales de Tadworth, Surrey, UK para encontrar expertos que hayan trabajado en proyectos similares al tuyo.


Iba a titular este artículo «Cómo el capitalismo está arruinando la vida de miles de millones de personas». Pero luego me pareció excesivamente catastrofista. Todos los años escribo alguna historia de trasfondo social por Navidad. Esta es la historia actual de mucha gente.\nYa escribí en 2012 acerca de la desaparición paulatina de la clase media. Y desde entonces hasta ahora es cómo si el fenómeno se volviese cada vez más acuciante, siendo los Millenials comparativamente más pobres que sus padres de la Generación X y la Generación Z, a su vez, aún más pobre que los Millenials.\nEn los departamentos de marketing incluso han puesto nombre a la nueva clase social: A.L.I.C.E. Asset Limited Income Constrained Employed. En español, empleado con activos limitados e ingresos restringidos. Lo que quiere decir que son personas quienes, en teoría, tienen una casa, pero en realidad lo que tienen es una hipoteca que cuesta más que la casa, sus ingresos se ven fuertemente mermados por impuestos y, en los países anglosajones, por exorbitantes gastos sanitarios y sociales. Eso sí, pueden ser felices y dar gracias a Dios de que tienen un empleo, aunque ese empleo de 80.000$ al año en Silicon Valley sólo les dé para vivir en una roulotte, la atención sanitaria a un parto sin seguro médico puedan ser algo así cómo entre 25.000$ y 50.000$ y el 42% de los norteamericanos que son diagnosticados de cáncer acaba en bancarrota.\nPara algunos, la solución ha sido subirse al carro de otra clase social, los D.I.N.K.IES Double Income No Kids, es decir, parejas sin hijos donde trabajan los dos. Lo cual es muy respetable, además de que ya hay demasiada gente en el Mundo cómo para traer más. Pero el medio para tener una buena vida no puede ser forzosamente renunciar a tener hijos.\nLo paradójico es que es precisamente en algunos de los paises países más ricos es dónde se está empujando a un mayor porcentaje de población por debajo del umbral de pobreza relativa. Relativa porque no es lo mismo ganar 30.000$ al año en África, en Europa o en Norteamérica. En el Reino Unido se estima que un 20% de los niños viven por debajo del umbral de pobreza relativa. Lo cual quiere decir que no disponen de suficientes recursos para todas las necesidades básicas: alojamiento, manutención, sanidad y educación.\nLa infame ciudad amurallada de Kowloon en Hong Kong, los 60.000 sin techo de Los Ángeles o el recuento de que en el Reino Unido hay más centros de comida para indigentes que franquicias de McDonald’s.\n¿Dónde está la cantidad ingente de dinero que existe?\nEl caso es que en el mundo existe una gran cantidad de dinero. Suficiente cantidad cómo para erradicar la pobreza. Sostengo, además, que todo ese dinero es real y necesario. La masa monetaria se ha multiplicado vertiginosamente sin que se produzca hiperinflación. Esto es en parte debido a la acción de los bancos centrales, pero también debido al incremento acelerado de la frontera de posibilidades de producción. Cada día que pasa somos, en conjunto, más ricos, y esa riqueza creciente debe tener un reflejo en el crecimiento monetario para impedir la deflación que para los más pobres es igual de mala o incluso peor que la inflación.\nLo que sucede es que con la inflacción baja, el mecanismo de creación de dinero mediante el crédito bancario ya no da para más. Las empresas están endeudadas hasta las cejas y la gente simplemente no puede pedir y pagar préstamos suficientes cómo para sostener el crecimiento de la economía. Fué por ello que los bancos centrales se pusieron a imprimir dinero cómo locos. Y el problema no fue imprimir ese dinero, que cómo ya h expuesto era necesario, el problema fué cómo se repartía ese dinero, lo cual se hizo mediante el mecanismo de LA DEUDA.\nPondré un ejemplo sobre lo pernicioso de la deuda: en Estados Unidos, el gobierno podría haber decidido invertir en educación universitaria gratuita (o muy barata) cómo la que hay en la Comunidad Económica Europea. Sin embargo, decidieron subvencionar un porcentaje del coste de las universidades y, además, dar facilidades al crédito estudiantil. Paralelamente, las universidades se embarcaron en una carrera por subir en los rankings de valoración, para lo cual necesitaban mejorar sus instalaciones y personal, para lo cual tenían que subir las tasas pero cómo el Gobierno Norteamericano pagaba una parte y existían créditos blandos, todavía era posible acceder a la educación superior. El resultado es que, según Wikipedia, en EE.UU. hay un billón y medio de dólares de deuda estudiantil (1.500.000.000.000$). Hay más de 44 millones de personas endeudadas con una deuda media por encima de los 37.000 dólares por cabeza. Estamos hablando de deuda contraída por jóvenes que no tienen activos ni empleo en el momento de contraerla.\nLa deuda se sostiene sobre tipos de interés artificialmente bajos. Que a su vez se generan para mantener a raya la temible inflación. Pero es más, parece haber por parte de los gobiernos una auténtica cruzada contra el ahorro y contra la liquidez en general debida a una deficiente interpretación del enfoque keynesiano del gasto, cuyo origen se remonta al libro de Keynes La teoría general del empleo, el interés y el dinero, en el que postula que el ahorro reduce los ingresos de otra persona al no estar siendo consumidos los bienes y servicios prestados por esa otra persona. Si bien es cierto que el gasto puede estimular durante cierto tiempo la economía, lo que los keynesianos no contemplan es que cuando la gente se queda sin ahorros pierde la capacidad de planificarse estratégicamente, de hacer frente a imprevistos y de aprovechar las oportunidades que surgen. No pueden invertir, ni pueden cambiarse a un trabajo mejor a otra ciudad, porque no tienen dinero para sufragar el traslado aunque a la larga les reportase mayores beneficios.\nLa guerra contra la tenencia de dinero por parte de la población es tan exacerbada que en ocasiones se ha llegado a plantear prohibir el papel-moneda. Cuyo uso ya está, de hecho, muy restringido de forma legal y práctica porque el objetivo último es abolir cualquier tenencia anónima de riqueza para que todo sea fiscalizable.\nPor qué prevalece el fenómeno\nNo recuerdo dónde leí que uno de los mayores logros del capitalismo es haber creado pobres de derechas. Creo que este ha sido en parte un gran logro de las clases dominantes en las últimas dos generaciones: han convertido a regiones enteras de sus propios países en zonas subdesarrolladas. Antes existían los países «del Primer Mundo» versus los países «en Vía de Desarrollo». Ahora existen las zonas ricas cómo Richmond en el Valle del Támesis o Palo Alto en Silicon Valley y la periferia nacional de esas zonas dónde la gente vota Brexit o Trump porque no entiende qué demonios está pasando. Y lo peor es que dudo que ni los partidarios del Brexit ni los conservadores estadounidenses lo entiendan tampoco.\nLa aceptación del capitalismo sin límites por buena parte de la sociedad posiblemente se debe al miedo al comunismo. Ciertamente, el comunismo cómo orden social ha fracasado sistemáticamente en múltiples ocasiones. Los defensores del capitalismo argumentan que en ausencia de ricos y pobres nadie tiene un incentivo para esforzarse y consecuentemente, a la postre, todo el mundo acaba siendo pobre. Se supone que debe existir una selección natural de los más fuertes. Y esto, en principio, estaría bien en términos evolutivos y de supervivencia a largo plazo de toda la Humanidad. El problema es que «fuerte» en el contexto del capitalismo significa ambicioso, avaro, audaz, despiadado, insolidario y cortoplacista. Y todas esas actitudes individuales son veneno puro para la sociedad y para todo el planeta en conjunto a largo plazo. La defensa a ultranza de la supervivencia del más fuerte está peligrosamente cerca del nazismo. Excepto que los nazis lo expresaban explícitamente y, para ellos, el «fuerte» era aquel capaz de sacrificarse para hacer grande a su nación.\nOtra causa para la derechización social es el desencanto con la izquierda. Los partidos de izquierdas, en general, llevan décadas obsesionados con un discurso narcisista de lo políticamente correcto. En EE.UU. los demócratas no han podido digerir que Donald Trump y llevan desde que accedió a la presidencia acosándole a él personalmente. Ya no se habla de las políticas de Trump excepto cómo si él fuese el responsable del cambio climático. En Europa la izquierda se ha obsesionado con la cuestión de género. Y no es que al votante medio le moleste que existan lavabos unisex para personas pansexuales, pero eso a la gran mayoría le importa un bledo el día de las elecciones. En el Reino Unido los laboristas dificilmente podían hacer peor campaña contra unos tories debilitados por el fracaso de las negociaciones del Brexit. La izquierda ha perdido su gran discurso político en favor de las cosas importantes para la mayoría de la gente.\nDe dónde procede la situación actual\nEl fenómeno creo que tiene su origen en los años 80. Hasta entonces, incluso en Estados Unidos, había una cierta tendencia hacia la protección social y los servicios públicos, herencia de las conquistas en derechos humanos durante los 60 y los 70 y del miedo a la propagación del comunismo. Luego llegó la Era Reagan. El paradigma de que todo lo que el sector público podía hacer el sector privado podía hacerlo mejor. Se privatizó todo lo privatizable. En España se privatizaron las telecomunicaciones, la electricidad, las aerolíneas, casi toda la antigua SEPI. Se salvó RENFE y, cómo consecuencia, España tiene una de las mejores infraestructuras ferroviarias del Mundo. Por contraposición en el Reino Unido se privatizaron las compañías ferroviarias (que no la infraestructura, que en España es ADIF). La diferencia es que en el Reino Unido el trasporte es el triple de caro, con trenes diesel de los años 80 que sólo últimamente han empezado a reemplazar por trenes eléctricos y las líneas de alta velocidad todavía están pensando en ellas.\nLa lógica espuria de las privatizaciones es de lo más perversa: los hospitales son caros porque las enfermeras cobran mucho y trabajan poco, se desperdicia en medicamentos que la gente no paga y ¡por Dios! ¡se presta sanidad gratuita y universal a inmigrantes sin papeles! Solución: privatizar, las enfermeras, a partir de mañana, mileuristas, las píldoras despachadas de una en una cómo hacen en Inglaterra, a un precio fijado unilateralmente por el proveedor, eso sí, y el que no tenga una cartilla sanitaria que se muera del asco. Resultado: el sistema de salud norteamericano donde el coste medio por persona son 10.345$/año y el 14,5% de los hogares que tienen entre 50.000$ y 75.000$ de ingresos anuales carecen de seguro médico.\nCuando se dejan los salarios a merced del mercado estos tienden a bajar porque el mercado opera maximizando los beneficios de las empresas.\nPor otro lado, las empresas más grandes, por lo general, pagan una cantidad comparativamente baja de impuestos en relación a sus beneficios reales. Los beneficios los utilizan para crear monopolios de facto y con los monopolios consiguen lo que parece imposible: que haya al mismo tiempo casi pleno empleo y que, al mismo tiempo, que no suban los sueldos. Cómo los sueldos son bajos, el contribuyente medio no puede pagar muchos impuestos. Cómo el Estado recauda poco, no tiene presupuesto para servicios públicos. Y así es cómo se llega a una situación cómo la del Reino Unido dónde, siendo uno de los países más prósperos de la Tierra, los políticos hacen campaña para dejar de mandar dinero a Europa con la excusa de destinarlo al NHS (el sistema de salud pública británico). Y el caso es que realmente no tienen dinero para el NHS.\nCuales son las consecuencias últimas de la tendencia\nSegún se degrada la calidad de vida de las personas, estas tienen tendencia a volverse agresivas con sus semejantes. Se establece una competencia feroz por los pocos empleos bien pagados. Se culpa a los inmigrantes. Y la gente hace todo lo que puede por precibir las pocas ayudas que todavía provienen del sistema de protección social.\nEl consumismo a ultranza tiene además devastadores efectos secundarios medioambientales.\nQué se podría hacer para mejorar la vida de las personas\nEn primer lugar, la solución no es subir los impuestos a los ricos ni a las empresas. Yo, de hecho, opino que el impuesto de sociedades no debería existir en absoluto. La razón es que el impuesto de sociedades grava el ahorro de las empresas y el ahorro de las empresas es lo que les permite generar empleo. En la obsesión por ocultar beneficios, las empresas recurren a todo tipo de trucos desde re-facturarse a sí mismas vía paraísos fiscales a endeudarse de forma ficticia para que todos sus beneficios se vayan pagos de intereses aun presunto acreedor que reside en un paraíso fiscal.\nLa solución tampoco es atacar a los pequeños ahorradores imponiéndoles cargas fiscales y tipos de interés en la práctica negativos. Antes al contrario hay que ayudar a la gente a ahorrar de manera que estén preparados para pagar su propia pensión o para afrontar gastos imprevistos.\nLa solución debe incluir el mantenimiento un sistema de bienes y servicios públicos gratuitos o muy baratos que proporcione a la gente suficiente tranquilidad cómo para mantener enfocados en tareas con alto valor añadido y en aprovechar oportunidades en lugar de vivir día a día intentando llegar a fin de mes.\nOtro punto en el que hay que cambiar cosas es la inflación real. Es cierto que las subidas en la cesta de la compra se ha mantenido moderadas durante años y que el precio del petróleo en 2019 ha caído a la mitad desde 2014. Pero por otra parte se han disparado los precios de las casas. Han subido sin cesar los precios de los suministros. Y cada día es menos atractivo invertir en acciones de sobrevaloradas de empresas fuertemente endeudadas.\nLos elevados precios de las casas son en gran parte culpa de las malas prácticas de política urbanística del Estado y de las Administraciones Locales. Porque no se puede construir ni una chabola sin una licencia municipal. Casi todo el mundo prefiere vivir cerca del transporte público, del trabajo, del colegio y de un hospital. Pero las infraestructuras públicas cuestan dinero. Entonces lo que se hace es crear polígonos empresariales y poner a la gente a vivir alrededor, cuanta más gente en menos espacio, mejor, porque menos kilómetros de metro son necesarios. Pero eso genera que la demanda se concentre en unas pocas zonas urbanas fuera de las cuales, además, es imposible construir por tratarse de terreno rústico.\nHay que crear políticas efectivas de conciliación de la vida familiar y laboral. La incorporación de la mujer al mercado de trabajo debida a las necesidades productivas durante Las Dos Grandes Guerras fue uno de los mejores inventos de la historia para mejorar la economía además de proporcionar libertad financiera a las mujeres. Para incorporarlas al mercado de trabajo había que incorporarlas primero al sistema educativo y eso creó en pocas generaciones una sociedad más culta en media. Pero trabajar para una madre debería ser una elección no una necesidad por motivos económicos. El reparto 50%-50% hombre-mujer a mi me parece una mala idea. Porque no se pude ser atleta o bombero o madre al 50% dado que pierdes competiciones, muere gente en catástrofes y se crían hijos carentes de suficiente afecto y cuidados.\nEn conclusión hay que poner en práctica el sistema de valores que ha hecho a Europa el continente más próspero y justo. Estos son: la solidaridad y caridad, la condenación de los pecados capitales, la justicia e igualdad ante la ley, las oportunidades meritocráticas de movilidad social, el soporte a la maternidad, el respeto por el trabajo cómo una fuente de vida digna y la conciencia medioambiental.\nEsta mañana tuve una conversación con alguien escandalizado por las noticias falsas en las redes sociales. «Los usuarios son las noticias falsas», le dije, lo cual, obviamente, sólo sirvió para enfadarle. Pero sinceramente lo creo. Todos sufrimos un sesgo cognitivo. Este sesgo cognitivo nos induce a dar veracidad a las cosas en las que creemos y a despreciar cómo falsas aquellas en las que no creemos. El resultado es un filtrado colaborativo basado en prejuicios. Es decir, las plataformas cómo Facebook se enfrentan al desafío de centenares de millones de personas tratando de difundir falsedades. El problema es tan grande que la única solución que se ha encontrado hasta ahora es la censura. Además, en el caso de Facebook el problema se agrava porque cada usuario es, en esencia propietario de su muro. Por consiguiente, cada usuario puede eliminar de un plumazo cualquier opinión contraria a la suya. Esto es así porque en Facebook saben que los usuarios a quienes les llevan la contraria se enfadan y se dan de baja. Como resultado, la red se convierte en un escaparate gigantesco de los prejuicios de sus usuarios, sin que exista posibilidad de ningún debate real acerca de ellos.\nDecálogo sobre la Verdad.\nTécnicas de manipulación social y control de las flame wars.\nCreo que frustración es la palabra que más se aproxima a lo que la mayoría de las personas sienten cuando tratan con programadores. Frustración en el sentido de diferencia entre expectativas y realidad. Es este artículo sugiero una plantilla con una serie de puntos que pedirle a un programador que se supone que va a entregar algo, para evitar malentendidos. Hay cosas que hay que pedirle antes de que empiece el trabajo y otras después. No entraré en metodología de seguimiento de proyecto, sólo en la documentación que debe se debe exigir.\nDebería incluir cómo mínimo:\ntipo de tarea, si es una mejora, corregir un error o cambiar algo que ya existe\nnúmero de referencia único para trazar cada tarea\nLa descripción de la funcionaldiad deseada es teóricamente responsabilidad del analista funcional, o del cliente, pero nunca hay que dejar que una persona sin conocimientos técnicos diseñe en solitario una funcionalidad.\nEn la redacción de especificaciones existe una jerga de moda que es cómo en este ejemplo:\nCómo administrador de la trastienda u operador de la trastienda con permiso de modificar pedidos quiero que el formulario de edición de pedido me permita modificar la cantidad de items en una línea del pedido siempre y cuando el pedido no haya sido ya empaquetado para su envío de manera que el cliente pueda hacer cambios de último minuto llamando por teléfono si se ha equivocado en un pedido.\nNótese que la especificación del requerimiento contiene:\nlo que se pide (modificar la cantidad de ítems).\nlo que se pretende conseguir con el cambio.\n3 Criterio de aceptación\nAquí se especifica qué comportamiento debe exhibir el software entregado para que sea aceptable como solución al problema planteado. La especificación debe explicar sin ambigüedades el comportamiento actual (AS-IS) versus el comportamiento esperado (TO-BE).\nSiguiendo con el ejemplo anterior el criterio de aceptación podría ser:\n1. Entrar en la trastienda y buscar un pedido.\n2. Acceder al formulario de edición de pedido.\n3. Si el pedido ya ha sido empaquetado para envío o ha sido cancelado entonces no es posible modificar la cantidad de ítems en cada línea.\n4. Si el pedido no ha sido aún empaquetado para envío entonces aparecerá un botón [Editar Cantidades] que permitirá cambiar la cantidad de ítems en cada línea.\n5. Cuando se cambia la cantidad el precio varía de forma acorde.\n6. No es posible especificar cantidades por encima del stock disponible.\n7. Si una cantidad se pone a cero entonces la línea de pedido desaparecerá cuando se grabe el pedido.\nEs posible y deseable añadir también requerimientos no funcionales. Típicamente estos son el tiempo máximo que una transacción puede durar y cuántas transacciones concurrentes debe ser capaz de atender el sistema sin sobrepasar el tiempo máximo de servicio.\n4 Finalidad y principios\nAquí se explica el propósito último del cambio. Por ejemplo, si se trata de mejorar la experiencia del cliente priorizando la consistencia del interfaz sobre su simplicidad. O si es un cambio puramente técnico cual es el compromiso entre velocidad y uso de memoria.\n5 Cambios en el modelo de datos\nDe manera que se pueda saber fácilmente qué nueva información estará disponible para explotación o qué otros sistemas habría que modificar al ser afectados por un cambio en el modelo de datos.\n6 Consideraciones de diseño técnico\nListado de asunciones y dependencias.\nReferencias a documentación y notas de reuniones.\nDescripción de las restricciones: throughput, latencia, ancho de banda, integridad de datos, seguridad…\nSi se está desarrollando un API o servicio, documentación estructurada tipo JavaDoc o Swagger.\n7 Notas de implementación\nEn ellas se enumeran las partes del software que serán creadas o modificadas con una descripción de los cambios a realizar en cada parte. Las notas de implementación deben explicar cómo los cambios técnicos casan con el criterio de aceptación.\nListado de los sistemas con los que se comunica el software a modificar y cómo se interactúa con dichos sistemas.\n9 Plan de pruebas\nLas pruebas son resumidamente de cuatro tipos:\n10 Plan de despliegue\nDónde se instalará el nuevo sóftware, en que máquinas y entornos.\nSi la funcionalidad requiere cambios en la configuración, cómo instalar un certificado digital, abrir un puerto en el firewall, instalar una librería, etc.13 Documentación\nCómo mínimo el manual de usuario y la guía de operación.\n11 Estimación de esfuerzo y plazos de entrega\nCuántas horas/hombre costará el desarrollo. Cómo se encajan dichas horas/hombre en un calendario.\nCuando esté desarrollado el software, videos o capturas de pantalla que muestren su funcionamiento.\n12 Bitácora de trabajo\nDonde figuran las horas empleadas en cada tarea con fines de contabilidad analítica y mejora de las estimaciones en futuros desarrollos.\n13 Resultados de las pruebas\nExplicando qué se ha probado, con cuántos usuarios y datos se hicieron las pruebas de carga y sobre qué hardware.\nPost relacionado: Cómo estimar el esfuerzo en desarrollo de software\nEl 26 de abril de 1986 se produjo una explosión que destruyó el reactor nuclear número 4 de tipo RBMK (Reaktor Bolshoy Moshchnosti Kanalnyy) en la central de Chernobyl. Recientemente, HBO ha puesto de moda el incidente con una miniserie. No voy a hacer aquí un spoiler de la serie ni a contar los hechos, ya que para eso es fácil recurrir a la página del accidente en Wikipedia o a libros como Midnight in Chernobyl o Chernobyl: The History of a Nuclear Catastrophe. Lo que voy explicar son los factores causantes de la catástrofe, aplicados como ejemplo al desarrollo de software, pero los principios subyacentes son los mismos para cualquier otra área de ingeniería.\nAntes de empezar, conviene tener en cuenta el postulado fundamental de la teoría de desastres: si existe alguna posibilidad, por improbable que sea, de que suceda un desastre, entonces sucederá si se observa el sistema durante suficiente tiempo. Es por esto en parte que se ha paralizado en muchos países la construcción de centrales nucleares ya que, en el fondo, es imposible garantizar que nunca habrá ningún accidente.\nNo obstante lo anterior, hay formas de incrementar espectacularmente la probabilidad de un desastre, y voy a ellas.\nCausa #1: La persona al mando no es quien debería ser.\nLa última palabra en decisiones operativas la tiene una persona que no comprende bien los fundamentos de la tecnología empleada. Además, está más preocupada por las implicaciones políticas del proyecto y por su propia carrera que por los daños que pudieren ser causados. También es posible que la persona responsable se encuentre demasiado cansada o ansiosa o distraída con otras cosas.\nCausa #2: «Esto nunca ha pasado».\nOtro principio aplicable a los desastres es que siempre son peores que el peor de los desastres anteriores. Hay dos razones posibles para ello, por la intensidad del suceso, o porque, en su ingenuidad, las personas a cargo piensan que el hecho de que algo no haya sucedido nunca en el pasado implica que nunca sucederá. Esto puede parecer un error de juicio muy tonto, pero, por ejemplo, existen emails de Mark Zuckerberg con el jefe de producto de Facebook en 2014 Sam Lessin en los que Zuckerberg cree imposible que suceda una fuga de datos como la que se produjo años después con el escándalo de Cambridge Analytica.\nEn general, soy escéptico de que haya tanto riesgo estratégico de fuga de datos como piensas. Estoy de acuerdo en que existe un claro riesgo en el lado del anunciante, pero no he descubierto cómo eso se conecta con el resto de la plataforma. Creo que filtramos información a los desarrolladores, pero no puedo pensar en ninguna instancia en la que los datos se hayan filtrado de un desarrollador a otro y nos hayan causado un problema real. ¿Tienes ejemplos de esto?\nCausa #3: Las medidas de seguridad están por debajo del mínimo absoluto necesario.\nEn el caso de Chernobyl el edificio de contención estaba pésimamente fabricado con materiales de mala calidad. El tejado era débil y estaba fabricado con un material que no era ignífugo. Además faltaban barras de control en el núcleo del reactor.\nEn el caso de un proyecto software puede que la auditoría de seguridad contra intrusiones no se considere crítica o que nadie haya probado realmente a restaurar los backups.\nCausa #4: Se ignoran pequeños defectos.\nLa investigación tras el desastre de Challenger en 1986 demostró que la causa de la explosión podía trazarse hasta unas juntas que no habían sido testeadas por debajo de 10 grados centígrados. Tanto la NASA cómo el proveedor de las juntas conocían el problema. Y los ingenieros advirtieron del peligro de programar el lanzamiento para un día de frío extraordinario.\nEn software, la dinámica es ignorar todo aquello que no está definitivamente roto. No se investigan los logs a menos que haya un reporte de error por parte de los usuarios. Se va posponiendo sine die el arreglo de partes potencialmente conflictivas. Los errores de redondeo y conversión de unidades han causado también algunos de los desastres de software más famosos.\nCausa #5: Se presiona a los ingenieros para que se salten sus propios protocolos.\nEn el análisis de las causas del accidente fatal del vuelo 5022 de Spanair el 20 de agosto de 2008 se determinó que se produjo a una combinación de dos factores. Primero el sistema TOWS que alerta sobre la configuración inapropiada de los flaps estaba inoperante. El TOWS no es un sistema crítico (pequeño defecto). Además los pilotos omitieron la comprobación, probablemente porque el avión iba con más de una hora de retraso debido a un problema previo con la turbina de aire de impacto (RAT), otro pequeño defecto. El avión se estrelló porque intentó despegar con los flaps replegados.\nTras el accidente, y con los datos aportados por la CIAIAC, la Agencia Europea de Seguridad Aérea emitió la Directiva de Aeronavegabilidad AD 2008-0197, de fecha 29 de octubre de 2008, por la que se enmienda el manual de vuelo de los aviones del tipo DC-9 y MD, incorporando una comprobación obligatoria del TOWS antes del arranque de motores en cada vuelo.\nEn software, es tristemente habitual reducir o incluso prescindir de los tests. A veces doy una estimación de tiempo requerido y recibo la pregunta: «¿Y sin los unit tests cuanto tardarías?» ¡No! Idiota. Un entregable de software sin juego de pruebas es cómo un plato de bacalao con tomate, pero sin tomate y a veces incluso sin bacalao.\nCausa #6: El sistema se somete a un stress inusual.\nEn el caso de Chernobyl la situación de stress fué que se decidió realizar una prueba tras un periodo en el cual la central había estado funcionando por debajo de su plena potencia, lo cual causa una acumulación indeseable de gas xenon y, además, de las treinta barras de control que el manual operativo del RBKM-1000 especificaba que debía haber cómo mínimo, habían sido retiradas todas menos seis.\nEn software las situaciones de stress se empiezan a producir aproximadamente cuando el sistema recibe una carga de trabajo que es 100 veces mayor de la normal. Aunque muchos sistemas fallan incluso antes con tan sólo 10 veces más carga de la normal.\nCausa #7: Se acumula lentamente sobrecarga en el sistema.\nExiste una página en Wikipedia con un listado de los puentes que se han caído desde 1800. En muchos casos el fallo estructural fué debido a una fatiga de materiales combinada con un peso puntual extraordinario sobre el puente (stress inusual).\nEn software es frecuente que las aplicación «pierdan» memoria con el paso del tiempo, y que se vaya agotando el espacio en disco o las conexiones disponibles contra la base de datos. Cuando se agota el pool de conexiones a la base datos todo el sistema deja de funcionar. Por separado, puede que todos los componentes estén bien: el servidor web, el servidor de aplicaciones y puede que hasta la propia base de datos, excepto porque no hay posibilidad de conectarse a ella.\nCausa #8: Malentendidos y mala comunicación.\nEl peor accidente aéreo de toda la historia ocurrió el 27 de marzo de 1977 en el aeropuerto de Los Rodeos en Tenerife. Chocaron dos Boeing 747. El aeropuerto estaba saturado de tráfico debido a que un aviso de bomba en el aeropuerto de la cercana Gran Canaria había obligado a desviar vuelos a Los Rodeos. La causa fue que, en medio de una intensa niebla, el comandante de uno de los aviones estaba ansioso por despegar y recibió una comunicación: «you are clear» de la torre de control. Según las normas, el comandante debería haber esperado a recibir una segunda confirmación, pero sin esperarla se dirigió a la pista de despegue y aceleró encontrando en su camino al otro avión que iba camino de aparcar. Y hay otros muchos accidentes aéreos atribuidos a errores de comunicación: la colisión en pleno vuelo de Charkhi Dadri en 1996, el vuelo 152 de Garuda Indonesia Airlines en 1997, el vuelo 965 de American Airlines en 1995, el vuelo 182 de Pacific Southwest Airlines en 1978, el vuelo 1008 de Dan Air en 1980, el desastre en el aeropuerto de Linate en 2001, el vuelo 52 de Avianca en 1990.\nEn el desarrollo de software, creo que se pueden imputar más errores a especificaciones deficientes y mala comunicación que a ninguna otra causa singular. En 1962 hubo que destruir el cohete Mariner 1 con destino a Venus debido a que un programador implementó incorrectamente una fórmula matemática escrita a mano omitiendo una barra superior.\nQue significa el enésimo valor suavizado de la derivada con respecto al tiempo de un radio R. Pero en la especificación del programa se omitió la función de suavizado que especifica la barra superior.\nCausa #9: Se toman decisiones estúpidas fruto del pánico.\nEn Chernobyl el jefe de ingeniería envió dos ingenieros a que intentaran insertar manualmente las barras de control en el núcleo. Poco después de dar la orden se dió cuenta de que las barras ya eran en sí misma muy pesadas y si no estaban bajando por su propio peso sería inútil intentar empujarlas. Pero ya era demasiado tarde, los dos ingenieros recibieron una dosis letal de radiación y murieron pocos días después.\nEn software una buena parte de Black Monday del 19 de octubre de 1987 y el Flash Crash del 6 de mayo de 2010 se atribuyen a trading algorítmico operando en modo pánico.\nYo he presenciado en demasiadas ocasiones cómo se intentaba cambiar una versión de software de forma temeraria, o se apagaban sistemas de alerta y seguridad que impedían hacer algo o se introducían cambios no testeados para arreglar un bug crítico urgente que acabó siendo dóblemente crítico.\nCausa #10: Se usan productos sin soporte del fabricante.\nEl caso más famoso de software no soportado es probablemente el bug que la CIA plantó en un software canadiense que los soviéticos estaban intentando adquirir cómo parte de un plan estratégico para hacerse con tecnología sensible estadounidense. El bug inducía premeditadamente un aumento de presión en un gaseoducto transiberiano y provocó en 1982 la mayor explosión no nuclear causada por el hombre en toda la historia.\nMe gano la vida con el arte de la programación. Lo que implica, entre otras muchas cosas, que me importan un bledo los nimios problemas autoinfligidos de la mayoría de la gente. Porque, sí: un gran porcentaje de problemas entre la población del mundo desarrollado son imaginarios, fruto del aburrimiento. No obstante lo anterior, profesionalmente me tomo muy en serio todos los problemas de todos los usuarios; incluyendo aquellos a quienes siendo estudiante en mi juventud veía por la ventana fumar porros mientras yo tomaba apuntes sin levantar la vista de la pizarra para no perderme. Y ahora esos bandarras me vienen llorando que un Excel que no se quiere abrir les está haciendo la vida miserable. Incluso a esos les presto ayuda desinteresadamente sin dudarlo. En este post explico cómo lo hago.\nLo primero que me gustaría comentar acerca de la empatía es que es una de las habilidades peor entendidas que existen. Mucha gente confunde la empatía con la sensibilidad y son en cierto sentido casi lo contrario. Pondré un ejemplo, supongamos que tu muy mejor amigo (o amiga) te dice: «Mi pareja y yo estamos embarazados». La mayoría de las personas responderán bien «¡Enhorabuena!» bien «¡No me jodas!». Por descontado que la noticia de un embarazo no deja indiferente a nadie. Sin embargo, ambas respuestas son equivocadas a menos que supieras de antemano si es lo que ellos querían que pasase. Puede que el embarazo fuese no deseado, entonces es una mala noticia. O puede que fuese lo más deseado del mundo. En cualquier caso la única respuesta prudente es: «¿Embarazados? ¿Y cómo os sentís ambos al respecto?».\nExiste el mito de que las mujeres son más empáticas que los hombres. Yo personalmente creo que es justo al revés. Mis razones para creerlo son dos. Primera, existe un amplio consenso entre los psicólogos acerca de que las mujeres experimentan sus propias emociones de forma más intensa y frecuente que los hombres. Esto es un hándicap porque las personas que experimentan emociones intensas no ven el mundo cómo es, sólo lo ven cómo les hace sentir a ellas. Es por eso que la figura arquetípica de un psiquiatra es un psicópata cómo Hannibal Lecter quien, desprovisto de cualquier emoción propia, puede ver perfectamente las de los demás sin sesgo cognitivo alguno. La segunda razón es que, en general, es más fácil manipular a los hombres que a las mujeres por la vía de la culpa, y la culpa, en el fondo, es el sentimiento de que hemos herido la sensibilidad del otro.\nLo que sí es cierto es que las mujeres tienen mayor capacidad para interpretar el lenguaje no verbal que los hombres. Hay bastante estudios comparativos de niños y niñas que demuestran que las niñas desde muy temprana edad pueden leer mejor que los niños las expresiones faciales de sus padres. Con una única excepción, si la expresión es una clara amenaza agresiva entonces los hombres la captan más rápidamente y mejor que las mujeres.\nPero, sin más preámbulos, voy a pasar ya a la lista de consejos, que es lo que empatizo que cualquiera que haya leído hasta aquí estará esperando impacientemente.\nMimetizar el lenguaje corporal\nLo primero que necesita una persona para percibir empatía en otra en sentir que está siendo comprendida. La forma más eficaz de lograr esto es simplemente decir «te comprendo» y poner la misma cara que está poniendo el otro cuando está diciendo algo. Esto lo saben hacer muy bien los expatriados que no entienden el idioma pero saben que para integrarse en el grupo hay que reirse cuando se rie todo el mundo aunque no hayas entendido el chiste. Mimetizar la expresión facial es especialmente útil cuando no se encuentran palabras significativas, por ejemplo en un funeral. Dado que la muerte es un suceso terminal que admite pocos o ningún comentario, lo mejor es fijarse en si los allegados del difunto están rotos por el dolor o rebosantes de alegría al percibir ¡por fin! la herencia.\nEvidentemente, no siempre hay que poner la misma cara que el otro. Si durante una conversación una persona está claramente a la defensiva, por ejemplo, con las piernas y brazos sendamente cruzados, cruzar los brazos nosotros también sólo servirá para iniciar una serie de monólogos paralelos. En este caso lo que hay que adoptar un lenguaje corporal que muestre que no estamos en actitud de criticar ni amenzar sino de escuchar y comprender.\nCrear una zona de seguridad\nEsto es un requisito previo y esencial para una comunicación significativa. Si la otra persona piensa que será cuestionada o criticada es prácticamente seguro que evitará iniciar una conversación. La piedra angular de la empatía es un interés sincero por la otra persona desprovisto de juicios a priori. Ningunear los sentimientos del otro no mejora en nada la situación, pues, aunque, cómo he dicho, su problema sea inicialmente imaginario, a base de imaginarlo tozudamente esa persona ha convertido el problema en algo muy real de la misma forma en la que Pinocho dejó de ser un niño de madera.\nEscuchar activamente y con plena presencia\nEsto parece obvio pero, de hecho, muchas veces las personas no están escuchando sino que simplemente están esperando a que el otro se calle y a menudo ni siquiera esperan pues los latinos tenemos una cosa llamada «conversación colaborativa» que básicamente consiste en interrumpiar al otro cuando lo que dice te está aburriendo o estás en desacuerdo o te parece una tontería.\nLa tres técnicas básicas de la escucha activa son el reflejo por ejemplo «Me suena lo que dices», «creo que tú eres un poco cómo yo»; la afirmación, por ejemplo, «Correcto»; y el ánimo a segir hablando, por ejemplo, «¿Y qué pasó después?», «¿Qué te hace decir eso?», «Sólo por curiosidad…».\nYo siento muchas veces la necesidad imperiosa de interrumpir. Algunos no hablan más que mierda, la verdad, pero siempre me reprimo pensando: ¡Un momento! Lo que estoy a punto de decir ya me lo sé, ergo no me aporta nada verbalizarlo excepto una demostración de pedantería hacía la otra persona, sermoneándole algo que ya sabe (aunque a veces no se haya dado cuenta).\nLa precipitación es enemiga del entendimiento. Las personas empáticas se toman su tiempo y dejan espacio para el silencio y la reflexión.\nEvitar los consejos no solicitados\nDecirle a alguien lo que debería hacer es poco eficaz por varios motivos. Para empezar puede que el oyente no esté dando credibilidad a nuestras palabras pero, además, se sabe que las personas creen más firmemente en sus ideas cuando piensan que han llegado a ellas por sus propios medios.\nLa alternativa es hacer preguntas y compartir experiencias. Al decir: «antes de que tomes una decisión, en mi experiencia lo que me pasó fué esto y aquello e hice lo otro y lo de más hallá y el resultado fué tal y cual» compartimos sabiduría con la otra persona pero no le damos el mensaje de que estamos intentando influenciarla.\nCuando una persona está ofuscada en sus propios pensamientos obsesivos hay muy poco que se puede hacer para sacarla de ellos. Salvo contadas excepciones, la empatía en esos casos consiste en dejar que se estrellen y luego ayudarles a ir recogiendo los pedacitos de ellos mismos que les hayan quedado para recomponerse. Muchas personas que acuden a un consultor no quieren realmente solucionar su problema, lo que quieren es que alguien les justifique por qué no pueden solucionarlo. Esto es lo mismo para el paciente de psicoterápia que tiene un mal hábito cómo para el gerente en una empresa que se pasa el día explicando por qué las mejores prácticas conocidas en su sector no se pueden aplicar en su departamento. Entonces cuanto más escuchas sus quejas menos les ayudas.\nHablar en términos de «nosotros» en lugar de «tú»\nLas personas tienen tendencia a creer más a quienes se parecen a ellos. Esto lo sufren los padres de adolescentes quienes creen más a otros adolescentes que a sus padres a pesar de que sus colegas son evidentemente un atajo de zotes. La empatia puede surgir de forma espontánea entre dos personas simplemente porque ambas nacieron en el mismo pueblecito de una región remota, la similitud crea proximidad.\nPreguntar qué podemos hacer por la otra persona\nYo siempre que se me acerca alguien cuyas intenciones desconozo, inicio la conversación de la misma forma: «¿Qué puedo hacer hoy por tí?». La promesa a priori de ayuda hace que la otra persona se sienta comprendida incluso antes de haber pronunciado su primera palabra.\nImaginar el punto de vista del otro\nEsto es de hecho muchísimo más difícil de lo que parece. Mi ejemplo favorito es un acertijo que sólo un psicópata puede resolver. El acertijo narra que un hombre asiste a un entierro donde por casualidad conoce a dos hermanas y se enamora instantáneamente de una de ellas que había venido de lejos. Al terminar el entierro se separan y él la busca infructuosamente. Entonces decide matar a la otra hermana que sí sabe dónde está ¿por qué?. La razón es que el hombre espera que su amada asista al entierro de su hermana. Pero, sinceramente, hay que ser un tarado mental para urdir semejante estrategia y un medio tarado ni siquiera para imaginarla.\nLa forma más práctica de imaginar el punto de vista del otro se basa en ignorar sus actos y sus palabras y centrarse en enumerar sus miedos, sus objetivos y sus deudas emocionales.\nPor qué la mitad de la población no se entiende con la otra mitad\nLa fuente más frecuente de conflicto entre el cliente y el proveedor de un desarrollo de software a medida es la diferencia entre las expectativas de plazos, costes y calidad y lo que realmente se entrega. En este artículo presento un modelo sencillo de estimación junto con una plantilla Excel. Todo ello con el fin de reducir sorpresas y frustración. Me hubiese gustado que el texto fuese cómo una simple receta de cocina: 50g de azúcar, 2 huevos, 400g de harina… Pero me temo que la explicación requiere que introduzca algunos conceptos previos antes de llegar a la receta en sí misma.\nPara los impacientes, aquí está la plantilla Excel para hacer estimaciones de software, aunque aviso seriamente de que su uso es peligroso si no se manejan bien los principios expuestos a continuación.\nPorqué es difícil estimar con fiabilidad\nTodavía hoy en día, las estimaciones del esfuerzo requerido para desarrollar un programa tienen casi más de arte que de ciencia. Es posible estimar con precisión cuánto se tarda y cuánto cuesta fabricar un tornillo, esto porque todos los tornillos son iguales, pero en el caso del software cada programa es diferente. Existen, no obstante, varios modelos de estimación maduros y bien conocidos que producen buenos resultados siempre y cuando estén correctamente calibrados.\nA la complejidad intrínseca de la estimación, hay que sumar los factores económicos que influyen en el proceso. El mercado del software es cómo el de los coches usados. El cliente evalúa coches de diferentes proveedores. A primera vista todos lucen cómo recién pintando y huelen a nuevo por dentro. El cliente sabe que no todos los coches son efectivamente igual de seminuevos. Y que el vendedor tratará de colocarle aquel vehículo que le reporte mayor beneficio. Por consiguiente, en ausencia de una forma de distinguir entre un vehículo bueno y uno malo, lo más sabio que puede hacer el cliente es elegir el más barato entre los que parecen iguales dado que así al menos minimiza sus pérdidas en el caso de que la compra resulte ser una tartana. Esto induce a los proveedores a bajar precios de forma temeraria en la esperanza de ganar un contrato a pérdida pero obtener beneficio en la actualización y mantenimiento de un software incompleto y defectuoso.\nLa diferencia entre estimar, planificar y presupuestar\nQuien compra un desarrollo lo que quiere saber es cuánto dinero le va costar. Este cálculo requiere tres etapas: 1ª) estimación de esfuerzo, 2ª) planificación de proyecto y 3ª) negociación económica. Aquí vamos a cubrir sólo la parte de estimación de esfuerzo. La razón es quela planificación requeriría otro artículo entero, y la negociación económica, cómo ya he explicado, suele consistir en el regateo gitano más absoluto.\nLa moda actual es estimar el esfuerzo en unidades abstractas y no en horas/hombre. La razón es que el número de horas requeridas para desarrollar una funcionalidad puede variar (y varía) mucho dependiendo de la naturaleza del proyecto, de la calidad de las especificaciones y de la clase de mano de obra empleada. Por supuesto, al final se convierten las estimaciones abstractas en horas/hombre mediante un proceso que explicaré más adelante.\nProyectos cerrados versus “time & materials”\nLos presupuestos de los proyectos suelen presentarse en dos modalidades: 1ª) funcionalidad, precio y plazo previamente acordados, o 2ª) facturación de horas sobre la marcha según se vayan descubriendo necesidades.\nLos departamentos financieros suelen abogar porque se compren proyectos cerrados debido a que bien los consideren cómo inversión en activo bien cómo un gasto, les gusta tener una cifra bien defenida que contabilizar. Pero no siempre se sabe a priori todo lo que se necesitará, es más, la mayoria de las veces no se sabe y en principalmente debido a ese desconocimiento inicial que surgieron las técnicas ágiles de desarrollo iterativo facturando al cliente por “time & materials”.\nAl proveedor, en realidad, lo que más le interesa no es un proyecto cerrado ni “time & materials” sino cobrarle al cliente por el valor que el proyecto tiene para él. La razones son que el proveedor puede pedir más dinero, ya que el cliente rentabilizará sobradamente la inversión; y no se arriesga con una oferta a la baja en concurrencia competitiva con otros proveedores ni ve sus márgenes erosionados porque el cliente sabe cuánto cuestan realmente las cosas. En consultoría, la regla del dedo gordo para los márgenes es que estos no pueden nunca inferiores al 15% si el encargo se subcontrata enteramente a un tercero ni inferiores al 40% si el proyecto se realiza con recursos propios. Por debajo de estos umbrales mínimos el proveedor está en serio riesgo de acabar perdiendo dinero. Pero si el cliente tiene acceso a la contabilidad analítica del proveedor (sabe cuánto tiempo tarda en hacer algo y cuánto le cuesta la mano de obra por hora trabajada) entonces lo esperable es que el cliente trate de reducir el precio hasta dejar al proveedor en su coste de empresa más un 10%.\nCalidad de las especificaciones y retrabajo\nEs difícil exagerar la importancia de empezar con unas buenas especificaciones. El mayor porcentaje de problemas con el software proviene de que las especificaciones eran incompletas o erróneas.\nAdicionalmente, los diseñadores gráficos saben mejor que nadie que el esfuerzo requerido para completar una tarea está relacionado con la cantidad de decisiones que tenga que tomar el cliente. Paradójicamente, a mayor cantidad de decisiones y responsabilidades por cuenta del cliente mayor coste. Es debido a dos razones: 1ª) que el tiempo empleado en comunicación y retrabajo aumenta y 2ª) que es difícil imponerle el cumplimiento de hitos en plazo al cliente y, por consiguiente, se generan más tiempos muertos de espera.\nVamos a introducir a continuación algunas definiciones que necesitaremos para hablar con precisión durante el proceso de estimación.\nObjetivos (Targets) : Es lo que se pretende conseguir expresado en términos del valor entregado al cliente.\nFuncionalidades (Features): Son las características del software descritas según su comportamiento.\nHistorias de Usuario (User Stories): Son conjunto de funcionalidades que deben implementarse juntas para alcanzar un objetivo.\nÉpicas (Epics) : Son grupos de historias de usuario que definen funcionalmente grandes porciones del software.\nEstimaciones (Estimates) : Son predicciones de cuanto esfuerzo se requerirá para producir cada funcionalidad.\nPlanificación (Planning) : Esel proceso de conectar los objetivos con funcionalidades y sus estimaciones para producir un calendario de entregas. Es importante recalcar que las estimaciones no son planes para alcanzar un objetivo. Las estimaciones no deben ser una predicción condicionada por los objetivos de negocio.\nExpresiones de probabilidad (Probability confidence statements): Son predicciones sobre el futuro que incluyen una probabilidad de ocurrencia expresada cómo un porcentaje. Cuando debido a una incertidumbre irreducible las estimaciones incluyen una expresión de probabilidad, esta no debeser inherentemente ambigua del estilo «altamente probable» o «muy improbable». Las afirmaciones con probabilidad deben usar un porcentaje: «Llegaremos a esa fecha de entrega con un 85% de probabilidad» incluso si el porcentaje en sí mismo es otra estimación. La razón es que, incluso sin un fundamento cuantitativo para los porcentajes, su uso reduce el número de malentendidos entre las partes. Por consiguiente, los porcentajes no deben interpretarse cómo una probabilidad sino cómo una métrica de lo que tenía en mente quien hizo la estimación.\nRangos (Ranges): Son intervalos de tiempo dentro de los cuales se espera que una funcionalidad esté completada. Los rangos se pueden expresar cómo una Fecha ± X Unidades de Tiempo o cómo un triplete [fecha más temprana de entrega, fecha más probable de entrega, fecha más tardía de entrega] lo cual es equivalente a hablar de mejor caso, caso medio y peor caso. Por convenio, se puede considerar que la fecha más probable de entrega es aquella en la cual la funcionalidad estará lista con más de un 75% de probabilidad y la fecha más tardía de entrega es aquella en la cual la funcionalidad estará lista con más de un 95% de probabilidad.\nDefinición de «Funcionalidad Lista» (Definition of Ready): La definición precisa de cuándo una funcionalidad está lista para ser entregada, usada y facturada es uno de los aspectos más controvertidos del proceso de desarrollo de software. Cómo mínimo, cada funcionalidad debe haber pasado los tests unitarios del desarrollador, las pruebas de integración de sistemas, las pruebas funcionales del equipo de testeo y la validación del cliente. Pero ningún software está realmente listo para pasar a producción sólo porque haya pasado unas pruebas. Ningún fabricante sensato de automóviles pondría un nuevo modelo en una cadena de producción sólo porque ha pasado algunas horas de prueba en un circuito. Lo que mejor determina la fiabilidad de un software es la cantidad de horas en las que se ha observado su funcionamiento libre de fallos en condiciones de uso reales o indistinguibles de las reales. Además, puede haber requerimientos adicionales para que algo esté listo, por ejemplo:\nPara el propósito de estimar, se pueden considerar dos grandes tipos de estilo de desarrollo; secuencial e iterativo, que a su vez tienen los siguientes subtipos.\nPrototipado Evolutivo Iterativo (Iterative Evolutionary Prototyping): Es el estilo que se emplea cuando los requerimientos no son bien conocidos.\nProgramación Extrema Iterativa (Iterative Extreme Programming): En este estilo sólo se definen los requerimientos que serán implementados en la siguiente iteración.\nEntrega secuencial por etapas (Sequential Staged Delivery): En este estilo la mayoría de los requerimientos se proporcionan al inicio del desarrollo. Un caso especial es el Proceso Unificado Racional (Rational Unified Process, Jacobson, Booch, 1999) en el cual se busca que al menos el 80% de los requerimientos estén bien definidos al inicio.\nEntrega Evolutiva (Evolutionary Delivery): Este estilo define cualquier cosa entre no tener casi ningún requerimiento al principio y tenerlos casi todos. Y su acercamiento es bien iterativo, bien secuencial dependiendo de cuántos requerimientos se disponga.\nScrum: Es el estilo de desarrollo más en boga actualmente. Consiste en coger un conjunto de funcionalidades que pueden ser implementadas en un sprint. Un sprint es un intervalo arbitrario de tiempo, pero no muy corto ni muy largo, normalmente entre 15 y 30 días. Una vez que se ha acordado el sprint, el cliente no puede hacer ningún cambio sobre ese sprint. Debido a que Scrum no admite modificaciones sobre la marcha dentro de un sprint, es en parte un estilo secuencial, pero, debido a hay múltiples sprints, es también iterativo.\nFactores que afectan a las estimaciones\nSi bien las estimaciones de las que tratamos aquí son de índole técnica, existen factores externos que no se pueden ignorar a la hora de realizarlas. Entre los más importantes cabe citar:\nIncertidumbre es las especificaciones.\nCarencia de implicación de los usuarios en la validación de requerimientos.\nCambios en el alcance y prioridades del proyecto sobre la marcha.\nCapacitación profesional de los recusos humanos empleados.\nCambios en las plataflormas y herramientas subyacentes.\nCambios frecuentes de contexto entre actividades no relacionadas.\nIndisponibilidad de terceras partes involucradas en el proceso.\nClaridad de los requerimientos de fiabilidad.\nCambios en las dependencias con sistemas externos.\nQué contar y cómo contarlo\nEl método que se propone aquí es hacer algo similar a un escandallo de producción. Se realiza un inventario de las piezas a fabricar, se calcula el coste de cada una por separado y luego se suma. En un proyecto de software hay muchas cosas que pueden considerarse piezas, tanto de alto nivel cómo requerimientos legales, casos de uso, historias de usuario, etc. cómo artefactos técnicos tipo páginas web, tablas en base de datos, informes, etc.\nLas piezas que merece la pena contar deben cumplir ciertas características:\nDeben estar altamente correlacionadas con el tamaño del software a producir.\nSe debe poder contar antes de que empiece el desarrollo.\nEl conteo debe producir una media estadísticamente significativa.\nContar las piezas debe requerir poco esfuerzo.\nAlgunos ejemplos de piezas útiles:\nTablas en Base de Datos\nFragmentos del Front-End\nPáginas Web Completas.\nA cada pieza se le asignará un tamaño o complejidad, es decir, podemos hablar, por ejemplo, de formularios simples (2-4 campos) medios (4-12 campos) y complejos (+12 campos).\nA cada pieza se le asignará una medida del esfuerzo requerido para fabricarla llamada story points. Los story points son una estimación del esfuerzo independiente de los factores que afectan a la productividad. Están fuertemente correlacionados con el número de horas necesarias para producir la pieza, pero no son horas. Los story points sirven para desacoplar la estimación de esfuerzo de la cantidad de tiempo requerido, por ejemplo, digamos que para cavar una piscina de 8×4×2 metros hay que sacar 64m³ de tierra, eso serían los story points: 64. Luego el tiempo necesario para cavarla depende de si lo haces a pico y pala o cuentas con una excavadora.\nAdemás, los story points sirven para medir la productividad. En un equipo de trabaja mejorando contínuamente sus habilidades, procesos y herramientas la tendencia que se debe observar es hacia el incremento de número de story points producidos por semana. Es decir, con las mismas horas de trabajo se espera que el equipo tienda a producir más valor con el paso del tiempo.\nAquí definiremos por convenio un story point cómo la unidad atómica de trabajo que no puede ser subdividida con propósitos de estimación. Grosso modo, un story point equivale a entre dos y cuatro horas de trabajo, ya que es prácticamente imposible realizar ningún cambio aunque sea algo tan trivial cómo cambiar dos líneas en un fichero de configuración en menos tiempo si se tiene en cuenta el tiempo necesario para leer y entender el cambio requerido, verificar que ha funcionado y procesar la burocracia asociada a la petición de cambio.\nLuego en resumen el método de estimación de esfuerzo consiste en listar las funcionalidades de producto, para cada funcionalidad enumerar las piezas que requiere y a cada pieza asignarle una cantidad de story points. Esto es lo que hace el siguiente Excel de ejemplo:\nEstimaciones de alto nivel\nAl principio de todo es posible que no se pueda hacer un escandallo porque las piezas que se requerirán son aún desconocidas. En primera aproximación, una cosa que se puede hacer se conoce cómo t-shirt sizing (a mi me gusta más llamarlo cake sizing). La idea es muy sencilla: a cada funcionalidad se le asigna una categoría de complejidad a ojo de buen cubero: minúscula, muy pequeña, pequeña, mediana, grande, muy grande, enorme. Cada categoría se correlaciona con un número de story points.\nEl proceso de Estimación Wideband Delphi\nUna forma de asignar story points a las funcionalidades es el poker planning el cual consiste en que los técnicos se reunen y literalmente apuestan cuanto esfuerzo va a requerir una funcionalidad. Este método presenta varios inconvenientes. En primer lugar no es sistemático debido a que usa juicios ad hoc en lugar de contar piezas. Además, se sabe que la estimación de uno de los técnicos puede influenciar la de los otros. Es posible que un miembro del equipo sea más respetado y por ello su opinión subjetiva tenga más peso que los juicios objetivos de otros miembros del equipo, o puede que en cuanto un miembro haya hecho una estimación los otros tiendan a llegar precipitadamente a un consenso. Por estos motivos Boehm propuso en 1981 lo que denominó Wideband Delphi Estimation Process cuya técnica es la siguiente:\n1. Se selecciona un pequeño grupo de personas para hacer cada estimacion.\n4. El coordinador recopila las estimaciones y las consolida.\n5. Durante la consolidación, el coordinador puede descartar estimaciones que están claramente desencaminadas.\n6. El coordinador convoca una reunión para acordar con los miembros del equipo la estimación final.\nDebido a la incertidumbre inicial en las estimaciones y a que la estimación se genera de forma independiente de la cantidad de horas necesarias, es necesario calibrar el modelo que se use de dos formas. Primera hay que tener alguna métrica del márgen de error en las estimaciones. Esto requiere de algunas matemáticas que me voy a llevar a un apéndice para no fastidiar al lector no técnico ni a aquellos sin ganas de leer sobre principios estadísticos sobre la marcha. Y la segunda es una correspondencia entre story points y horas/hombre que debería ser actualizada en cada iteración.\nPara producir estimaciones consistentes a través de las iteraciones se requiere un método sistemático y repetible.\nEste método puede ser un proceso Wideband Delphi que produce story points asignados para cada funcionalidad.\nApéndice A: Checklist de Estimación\n¿Está claramente definido lo que se está estimando?\n¿Incluye la estimación todos los tipos de desarrollo necesarios para completar la funcionalidad?\n¿Incluye la estimación todas las áreas funcionales?\n¿Tiene en cuenta la estimación los requerimientos de seguridad, auditoría y rendimiento?\n¿Tiene la estimación suficiente nivel de detalle cómo para no esconder ningún trabajo inesperado?\n¿Están los miembros del equipo que tendrá que implementar de acuerdo con la estimación?\n¿La estimación es para software nuevo o para modificar otro existente?\n¿Se asume que la productividad será similar a aquella en otros desarrollos comparables en las mismas condiciones?\n¿Incluye la estimación un peor caso, caso medio y peor caso?\n¿Es el peor caso realmente lo peor que puede pasar con alguna probabilidad?\n¿Se han documentado todos los prerrequisitos, restricciones y asunciones?\n¿Ha cambiado el entorno desde que se hizo la estimación?\n¿Están los recursos humanos necesarios suficientemente asignados y comprometidos?\nApéndice B: Agregados y medidas de error\nPara hacer planificación de un proyecto se necesita algo más que las estimaciones individuales. También hay que poder:\n2. Hacer un análisis PERT.\n3. Estimar el márgen de error.\nNinguna de esas es trivial. No es buena idea simplemente sumar todas las estimaciones, la razón es que para cada estimación existe (o debería existir) un mejor caso, un caso medio y un peor caso; medidos en story points. Para crear un sumatorio significativo hay que tener en cuenta la desviación típica, una medida de la variación de un conjunto de datos numéricos que no tengo espacio para explicar aquí. De modo que lo voy a resumir a tope con una receta.\nPara menos de diez estimaciones, lo mejor es tomar el mejor caso y el peor caso para un cálculo aproximado de la desviación típica hecho de la siguiente forma:\nDesviacion Típica = (Suma de los peores casos – Suma de los mejores casos) / D\nDonde D es un divisor tomado según la siguiente tabla:\nSi el esfuerzo real está dentro del rango estimado al menos un X % de las veces\nEntonces tomar el dividor D cómo\nLa desviación típica se puede utilizar para calcular la probabilidad de que el esfuerzo real sea mayor o menor que el estimado.\nUn X % de las veces\nEl esfuerzo real será menor o igual que\n2% Estimación – (2 × Desviación Típica)\n10% Estimación – (1,28 × Desviación Típica)\n16% Estimación – (1 × Desviación Típica)\n20% Estimación – (0,84 × Desviación Típica)\n25% Estimación – (0,67 × Desviación Típica)\n30% Estimación – (0,52 × Desviación Típica)\n40% Estimación – (0,25 × Desviación Típica)\n60% Estimación + (0,25 × Desviación Típica)\n70% Estimación + (0,52 × Desviación Típica)\n75% Estimación + (0,67 × Desviación Típica)\n80% Estimación + (0,84 × Desviación Típica)\n84% Estimación + (1 × Desviación Típica)\n90% Estimación + (1,28 × Desviación Típica)\n98% Estimación + (2 × Desviación Típica)\nLas estimaciones de desviación sobre las estimaciones, sirven para introducir buffers de seguridad los cuales pueden introducirse a nivel de funcionalidad o por camino crítico de proyecto usando PERT, una técnica fuera del ámbito de este artículo.\nApéndice C: Herramientas de estimación\nLa lista de herramientas de estimación en Wikipedia es sorprendentemente corta y ni siquera incluye algunas herramientas relativamente conocidas cómo SystemStar. Ahsta dónde yo sé, todo el mundo que conozco usa bien algo encima de JIRA bien Excel. O algunos herramientas propias.\nApéndice D: Otros métodos de estimación\nEl método propuesto aquí no es para nada el único posible para estimar. De los métodos alternativos voy a citar sin explicarlos sólo tres para el lector interesado en leer más: Putman’s Software LIfecycle Management, COCOMO, y Puntos Función IFPUG. COCOMO require, a mi juicio, un nivel de madurez en la recolección y explotación de datos que la mayoría de las organizaciones simplemente no alcanzan. Respecto de los Puntos Función yo creo que están obsoletos. Los Puntos Función se inventaron para estimar el esfuerzo de procesos batch que convertían datos de entrada en datos de salida. Entonces la complejidad del proceso es bastante bien aproximada por la complejidad de las entradas y las salidas. Pero los puntos función no se inventaron originalmente para estimar el esfuerzo de interfaces de usuario complicados e interactivos cómo los que existen en la mayoría de las aplicaciones.\nPost relacionado: Cómo sobrevivir a las estimaciones de software


Telde: Vuelve la Bibioplaya con un catálogo más amplio en su undécima edición – Canarias Opina\nTelde: Vuelve la Bibioplaya con un catálogo más amplio en su undécima edición\nEl catálogo de 1.500 títulos se ha ampliado con la compra de novedades para adultos y niños\nLas Bibliotecas Municipales de Telde, pertenecientes al área de Cultura del Ayuntamiento que gestiona el edil Juan Martel a través de la empresa Gestel, pusieron en marcha una vez más la Biblioplaya, un servicio de préstamo de libros que este año cumple su undécima edición.\nDurante la inauguración, en la que estuvo también presente el concejal de Cultura, Juan Martel, se presentó el catálogo de 1.500 libros que estarán disponibles durante todo el verano para el disfrute de los usuarios.\nLa Biblioplaya, junto al servicio de préstamo de libros y películas consulta de la prensa diaria o acceso a Internet, organiza actividades infantiles y familiares de animación a la lectura. El año pasado, un total de 2.029 usuarios disfrutaron de esta biblioteca en la playa.\nTelde Ocio Sin comentarios » Imprime esta noticia\nConsensuado en la tarde de hoy un acuerdo de estructura de Gobierno para Canarias Más nuevo\nMás antiguo ‘El Comentario’ ¡El descanso pertenece al trabajo, como los párpados a los ojos!\nAgüimes: La Biblioplaya Titiritera regresa, un año más, a la caseta del muelle de la playa de Arinaga\nIngenio: Música en vivo cada viernes de este verano en El Burrero\nFISALDO 20ª Feria de las Oportunidades abre sus puertas hasta el próximo día 9 de junio