Lo que es importante para mi será igual para todos?
El año pasado, 2009, salió un noticia desde brasil donde una chica usaba ropa provocativa, aún cuando no era su talla, llamando la atención en demasía.
El caso de Jesi explotó recién después de un mes cuando un blog denunció discriminación luego de haber sido visto el video en internet.
Poca gente lo vio y quien lo vio lo hizo en directo. Pero alguien lo grabó y subió a youtube. Y de ahí, un millón y medio de visitas en una semana.
Algunos casos no habrían sido conocido y causado conmosión sin la intervensión de Youtube.
Y quiénes fueron los que subieron los videos. Aquí fueron estudiantes filmando con el celular.
Costo de producción de los videos = 0
Calidad de la producción, ninguna
Inversión en divulgación, ninguna
Costo de la distribución = 0
En el mundo en que vivimos cualquier uno sin gastar nada puede provocar un impacto inmerso en la sociedad, basta capturar contenido relevante. El resto la internet se encarga de hacer sin costo inmediatamente.
Pero la definición de relevancia en una sociedad en donde un libro pierde ante Bailando por un Sueño es relativa. Hoy en día tiene mucho más que ver con el espectáculo y la ideologización de los discursos que con cualquier otra cosa.
Y la televisión que mostró que necesita de ese contenido es relevante. Cada día más y más imágenes técnicamente horrorosas de internet ocupan espacio en la televisión. El apuro técnico da lugar al contenido desde que es importante, desde que es “relevante”.
Relevancia
La definición de relevancia es aquello que es importante.
Pero nada es relevante porque sí, la cosas se tornan en relevantes.
Usted seguramente conoce la ceremonia que hacen las azafatas antes de despegar explicando como es que se usan los cinturones de seguridad y las máscaras de oxígeno.
Pero solo quien viaja poco y los chicos prestan mucha atención en aquello. Quien viaja mucho ya vió tantas veces que ni cuenta se da. Para esas personas, la ceremonia pre-despegue no tiene relevancia.
Pero ahora imagine que el piloto diga por el sistema de sonido que las condiciones metereológicas son muy malas pero que el de todos modos va a intentar despegar. Usted tiene duda alguna que todo el mundo va a prestar atención a la tripulación a pesar que las istrucciones son las mismas de siempre. Y bueno, cambió el contexto; las instrucciones que nadie prestaba atención ganaron relevancia.
Por ejemplo, un cajero de un banco que atiende bien no es relevante, eso es lo que se espera de él, es previsible. Pero si todos otros cajeros atienden mal, ése que cumpla bien su función se torna relevante.
El contexto crea el ambiente, pero quien da relevancia es usted.
Relevancia depende por ende del contexto y valores y convicciones que determinan las elecciones de las personas.
Entonces elegir concientemente o por ignorancia que la muerte de Michael Jackson es mas importante que la de Borges no determina que seas malo o bueno, pero da una pista sobre sus prioridades y sobre su visión del mundo. Usted es el resultado de sus decisiones, como alguien dijo un día.
Aquello que impacta en nuestras acciones, es importante prestar bastante atención a las cosas a las cuales elegimos dar relevancia.
Es bueno durante momentos del día hacer pausa y pensar sobre las acciones que tomamos para saber cuáles son más importantes, eso es relevante.
Y mañana se cumple una semana de que asistí al BarCamp 2010#barcampba.
No soy de escribir mucho, y prefiero hacerlo bien antes de publicar mucho y cualquier cosa. (eso obviando que tengo que cambiar de hosting porque este gratuito es muy trucho y ni siquiera permite comentarios).
Bueno, volviendo a lo nuestro. Qué pasó?
En primer término, para inscribirme estaba en la empresa con un “jefe de programación” y al medio día no pude. A las 20hs y no sé como sí entré. (encima al registrar no te mostraban el botón para aceptar los datos, estaba oculto y aparecía con tab; no se si era un filtro o error)
Bueno, por esas casualidades de la vida, este año sí estaba en la lista.
En primer lugar llegué una hora tarde (tenía que hacer compras antes) pero era un lío, parecía que recién empezaba porque todos estaban anotando de la pizarra las charlas a las que querían ir.
Según la personalidad de cada uno (y en qué estés metido trabajando) vas a ir a determinadas charlas.
Para definir mi personalidad: soy programador estoy trabajando en empresas de software web hace 3 años con gente que me lleva 20 años de edad.
Bueno las charlas elegidas fueron: cómo vender humo y estafar al cliente (y todo lo contrario), cómo hacer amigos, pagos con celular, desarrollo de aplicaciones con android, almanaque solidario, la charla de Jenna.
Las últimas dos no sé si anoté mal pero bueno, sin prejuzgamientos quedé a escuchar igual.
Barcamp es distinto a PalermoValley, no tiene el mismo espíritu emprendedor, de hecho va más al lado práctico y no es para a anunciar y buscar apoyo en nuestra empresa (al menos así lo veo yo). Las charlas se anotan en el momento y si encontrás lugar en la pizarra; por eso te arriesgas a caer en una “charla malísima”.
Las Charlas
Cuando estaba por entrar a mi primer charla (recuerden que llegué tarde) esperamos a que @vanesak termine la suya. Conozco creo bastante bien a Vanesa desde los primeros Palermovalleys, una persona que veo un perfil más emprendedor y social.
- Como vender…. trataba justamente de eso o las empresas pide y no tienen idea de lo que hacen y haría falta hacer para hacer una campaña de publicidad en facebook, twitter, etc. Y de cómo hay personas famosas que venden twitts influenciando a sus seguidores. Y, cosas así… por ese lado venía el tema. Lo más destacado: uno padece este síndrome cuando se hace llamar social media guru … ninja :p , meter malabras en ingles “engagement” , “te hago un viral”
(@gmames)
- Luego venía la charla de cómo hacer amigos, algo que básicamente aplica hoy trata de aplicar la publicidad, basado en un libro “Cómo ganar amigos e influir en las personas. por DALE CARNEGIE” (federico garcía. director creativo Ogilvy)
//quizas las charlas eran obvias para los que hayan leído ese libro, pero tenían un excelente fundamento y buen enfoque.
- Había una charla que fuí, bastante aburrida, quizás debería practicar mucho más el disertante y el tema no era tan atractivo, debe ser por eso que no recuerdo de qué era. La dió alguien de vurbia technologies.
- Almanaque solidario, era una charla en la que prefiero reservar mi opinión ya que es un tema delicado y llegué tarde. Les dejo la web del proyecto.
- En eso fui a la terminación de la charla de Windows Phone (no sabía que había alguien de microsoft), lástima, mostraban la estrategia comercial y ya sé, esas charlas hablan de lo bueno que son, pero estoy acostumbrado que no las hagan los jefes sino que empleados de esas tecnologías (son perspectivas muy distintas). Pude ver el celular Focus (no me acuerdo de qué marca) vimos la interfaz funcionando, con una suscripción de música (anual 150 verdes) para descargar por 3g todo el contenido de música que quieras (muy lindo). Fuera del tema hardware vi poco.
- Charla de jenna. Entendí poco y nada. Jenna el nombre de un programa de AI para resolver preguntas de desarrolladores junior durante el proceso de programación. Bueno, como supuestamente no enganchaban wifi no pudieron mostrar el producto. Digo supuestamente porque presté mi “semi”notebook y no es que no andaban, pusieron mal la dirección porque la busqué y google funcionaba lo mas bien pero la dirección estaba mal escrita :p (perdón por el acento irónico, quedé con un sentimiento resentido, el año pasado fui a una entrevista a esa empresa y no recibí ninguna devolución y la impresión que me llevo ahora que en un principio fue muy buena porque los vagos parece que le ponían todas las ganas, pero ahora al ver a sus dueños, empleados, la web y un producto-desarrollo, son di símiles) (fdvsolutions)
- Charla de ventas por celular. Entré tímidamente (no había nadie y fueron pocos). Hablaba justamente de eso: operaciones comerciales mediante celular, cómo se hacen, quiénes están involucrados y quién se lleva las tajadas cuando pagamos con este medio. El tipo ingeniero electrónico y algún master o doctorado. No había power point, solo fibra en pizarrón. Simple y objetiva, me encantó. (@discoverlight)
-Charla de desarrollo con android: La dió un estudiante. Empezó bastante mala y fue mejorando. Quizá fue muy general y básico a mi gusto. Sería solo como intro a la programación con android. Comunidad Argentina de Android
A lo último, se reunieron todos nuevamente en la sala mas grande de la UP de Económicas y pidieron devolución. Yo no encontré nada en contra (otras personas sí y eso que yo soy muy criticón), entendiendo que lo organizaron 5 personas, con inscripción gratuita, había cosas para picar durante el día y simplemente genial todo (si hasta se olvidaron un celular en la charla, que no paraba de molestar jaja, hasta que alguien se dió cuenta que se lo había olvidado).
El ambiente en general muy bueno (aunque no conocía a nadie), jamás vi tantas ipad. Ahora el problema es seguir en twitter a tantas personas nuevas (y cada aparato jaja).
Bueno, debajo dejo algunos link de fotos y hasta el eblog que habla mal de barcamp (para mi son verdades las que dice pero siguiendo la filosofía barcamp está equivocado porque nadie puso un peso, y si no había wifi bueno, a veces se cortaba, pero yo estando en una charla pude llegar a ver la charla de al lado por streamming con la netbook).
PD: las perlitas. Sobraron 5 barriles de cerveza. Un disertante jamás apareció. Vi una ipad con tanta grasa en la pantalla que parecía que la usaron para almorzar. Muchas ipad. Nunca en algo de tecnología hubo tantas chicas (comparado Codecamp, charlas IEEE, charlas Python). Empecé a seguir a algunos por twitter que tienen muy buenos gustos musicales. Llegué tarde, me chorearon la remera del evento. @fieritacatalano estaba de colado o sí se inscribió como todos los demás no famosos?
Bueno, después de todo sugiero al que pueda ir que no se pierda el año que viene más si está metido en el tema de web 2.0 y marketing o publicidad de sitios (aunque es jugar a la ruleta rusa con la inscripción). Y en mi opinión no sigan a los famosos o personas con muchos followers, eso es muy relativo el tema de calidad de charlas, no se vendan. Alguno se quejó que estaban apretados en algunas charlas, pero donde estaba yo hubo solo una en que habían algunos parados.
Perdón que no puedan hacer comentarios (ya voy a poner un hosting como la gente). Cualquier crítica @wfranck.
Si usted es cliente y encuentra malo ser tratado sin respeto, espere ser un proveedor.
Usted seguramente será visto como un mengano porque siempre llega en la hora justa para quitar tiempo a los otros, y va a tener que esperar; esperar que respondan su mail, que su llamada sea atendida, que su interlocutor lo atienda.
Hoy en día todo el mundo parece muy ocupado para ser educado. E-mails y llamadas no son contestadas, las reuniones tienen un horario no respetado sin importar que vengas de muy lejos, nadie pide disculpas. Quedó tan normal ser mal educado que cuando alguien respeta las reglas de educación quedamos espantados. No es una reversión total de valores?
Será preciso un libro japonés, un gurú estadounidense, un proceso alemán o la ISO 100.000 para que la educación vuelva a ser parte de las relaciones profesionales?
Otro punto: todo el mundo está con miedo. Miedo del presente, miedo de tomar decisiones erradas, miedos de que las acciones caigan, miedo de perder el empleo. Hubo un tiempo en que ese miedo era el gatillo que gritaba: muévase! y hacía que las personas crearan soluciones. Pero hoy, hoy es diferente. Alimentado por la inseguridad y la falta de autonomía, por la ignorancia sobre el negocio, por el griterío de los medios sensacionalistas; el miedo hoy es creado por gente que jamás se preocupó en preparar a sus sucesores, por sistemas creados para pulverizas las responsabilidades y los procesos de toma de decisión. Así, lo que antes era resuelto en una semana, ahora lleva seis meses. El miedo que desafiaba ahora paraliza.
Otro punto más, vos podes ser un genio y estar estúpido. Ser y estar. Si la genialidad es innata, la estupidez es una condición. Nadie deja de ser inteligente o genial, pero todo el mundo es propenso a practicar actitudes estúpidas. Todos somos buenos en alguna cosa y malos en otras. Reconocer los momentos en que estamos estúpidos es el primer paso para atenuar los problemas. Pero, quién es capaz de reconocerse estúpido?
En este tiempo de nuevo milenio parece que estamos perdiendo capacidad de aprender con nuestros errores. Los errores de hoy son los mismos de 10, 20, 30 o 100 años atrás. Está más sofisticado, informatizado, teorizados pero son los mismos errores de siempre. Buena educación, coraje, reconocer nuestras limitaciones y aprender con los errores. En aquellos tiempos esto era obviedades, hoy son excepciones.
Y para hablar de competencia: toda empresa nace incompetente, esto es natural, todo es nuevo. Normalmente no existen recursos suficientes o correctamente asignados, las personas aún no se familiarizaron con las tareas, etc. Y es a partir de ellos que aquella cosa maravillosa llamada aprendizaje que las empresas evolucionan hacia la competencia y el éxito. Pero… hay empresa que no aprende. No sirve para nada crecer, contratar más gente, hacer mayores inversiones o mostrar esas propagandas maravillosas. Ellas sufren de “TICO”, el Trastorno de la Incompetencia Compulsiva Obsesiva. Recuerda aquella oficina mecánica de capital, ella tiene TICO. Esa compañía de telefonía celular, tiene TICO. El Trastorno anula la capacidad de aprender con los errores, de pensar a largo plazo o también de priorizar valores morales. Esas empresas pueden hasta ganar dinero en el contexto de falta de concurrencia, pero estarán siempre en riesgo.
Es relativamente fácil saber cuando el TICO está presente. Las empresas y organizaciones pueden tener los siguientes síntomas:
_disculparse diciendo que son pequeñas y no pueden invertir, no entienden que siendo tan pequeñas el proceso de crecimiento exige sacrificios en varios frentes y coraje, coraje en invertir en cosas que solo van a dar frutos allá adelante. También no creen en invertir en procesos con resultados a largo plazo. Sólo alcanzan a pagar gastos y expensas y cubren aquello que pueden ver y entender. Además de eso no saben como promover la comunicación interna entre la dirección y los funcionarios y viceversa. Normalmente dan a una ex-secretaria pegar las infos en la cartelera aludiendo que eso es comunicación. Administran el negocio con base en la intuición o en la experiencia práctica de la liderazgo sin buscar jamás consejos.
Tampoco tienen cuidado con los procesos de selección y contratación de administrativos. Eligen por la amistar, por el parentesco, por lo que alguien dijo. Y algunas tienen dirigentes despóticos, gente que cree que sabe todo y manda a hacer. usted sabe por qué? Porque quiere…
Pero las empresas que sufren de Tico tienen algunos síntomas más, por ejemplo: jamás construyen ambientes propicios para la innovación. Son adeptas a “siempre fue así” y expulsan a quien perturba la inestabilidad. Son adversas a riesgos y repiten procesos viejos y anticuados por la única razón de no estar familiarizados con ellos.
Tienen planos estratégicos sólo para decir que tienen. Ni un proceso de innovación o alineamiento a los cambios de mercado. Tratan a los clientes como un problema con la cual son obligadas a convivir.
Y la principal característica: Quien tiene Tico jamás aprende de los errores. Tiene miedo de apuntar las responsabilidades, de demitir a quien necesita ser demitido. Sabe lo que es eso? es el viejo “cagazo”.
Dependiendo del tamaño y de la naturaleza de la empresa el Tico se manifiesta de forma menos evidente. Para curarse del trastorno es necesario reconocer que el problema existe escuchando colaboradores en busca de ideas, tener la humildad de buscar ayuda externa sin esperar a curanderos.
Ah, pero usted no tiene plata? bien, busque a aquellos que buscan ganar en base a los resultados. La empresa es pequeña? procure buscar organizaciones como Endevor, Palermo Valley y otras entidades que promueven distintas áreas y cursos muy buenos para formar emprendedores.
La empresa es grande: estimule el liderazgo para mover en la organización los causadores de problemas. Pero no crea que sea fácil, quien quiera acabar con Tico va a ser echado por él mismo.
Las empresas con capacidad de aprendizaje consiguen librarse de Tico y crecen saludables. Navegan con fuerza por una región llamada “área de competencia”. Hacen correctamente lo que de ellas se espera, mejoran con el tiempo, adoptan nuevos procedimientos y ganan nuestra confianza. Hasta que un día crecen y crecen bastante, tornándose enormes corporaciones millonarias y poderosas. Ese gigantismo torna imposible controlar los procesos fundamentales de la empresa. Hay gente de sobra, mucha burocracia, foco en los resultados de corto plazo y corte de costos de más. Los dirigentes entonces empiezan a buscar métodos para controlar y comandar las cosas y generalmente contratan consultorías con nombres pulposos y powerpoints inteligibles. ISO, CMMI, IEEE, ITU, SCRUM, XP, y todos los métodos infalibles de control.
La estructura para controlar esos procesos se agiganta, mapeamientos crean millones de patrones de procedimientos. Todo embalado en la búsqueda de la excelencia. mpugnados por los resultados iniciales, invariablemente positivos los dirigentes invierten y dan cada vez más poder a los controladores de proceso. Es cuando surge entonces el “Teco”: El Transtorno de la Excelencia Compulsiva-Obsesiva.
Por ejemplo, como es que después de años de millonarias inversiones en calidad las empresas tienen tantas quejas; ellas están con Teco. Por qué cuánto más modernas son las tecnologías peores son los servicios de telefonía celular, ellas están con Teco. Por qué tengo que vigilar el resumen del banco donde tengo la cuenta plus master premium picaso buscando gastos no hechos, problemas y gentilezas e? Por qué es que continúa apretado dentro de aviones mas modernos en esas aerolíneas inteligentes?: están con Teco.
El transtorno vuelve a las personas ciegas para costos que no aparecen en las planillas de las reuniones de resultado. Por ejemplo el fin de la capacidad de innovar, la falta de iniciativa, la demora en la toma de decisión, fuga de responsabilidad, insensibilidad para valores intangibles. Sólo existe lo que se puede medir. Empresas que sufren de Teco quedan incompetentes
Y usted está con Tico o está con Teco?
Y por recordar competencia e incompetencia hay una historia de un chico que trabajaba de jardinero en un barrio privado. El chico se ofrecía para quitar yuyos, cortar el pasto,
plantar flores… en fin, era una máquina en el trabajo. Ganaba su día a día y con eso pagaba sus estudios y también ayudaba a la familia. Un día cuando le pagaban preguntó si podía usar un teléfono. Entró en la casa y telefoneó al número con la siguiente conversación:
-| La señora fulana está?
-/ si
-| Yo gustaría de ofrecer mis servicios de jardinero en su casa. Estaré libre la próxima semana. Yo corto yuyos, planto mudas, planto flores. Hago todos los trabajos que la señora necesita en su jardín.
-/ Ah, disculpe. Pero yo ya tengo un excelente jardinero y no puedo traerlo. Él ya hace mucho más de lo que yo preciso. Espero que usted consiga otros clientes.
-| Todo bien señora, gracias por su atención.
El chico colgó el teléfono y el señor de la casa que había escuchado todo dice: no siempre da para ganar nuevos clientes.
Y el chico respondió: oh no, esa mujer es mi cliente. El jardinero al que ella se refiere soy yo. Yo solo estaba testeando la cualidad de mi trabajo.
Si usted quiere triunfar en su negocio tiene que correr el riesgo de fracasar, por el Tico o por el Teco. Quien no está siendo incomodado lo suficiente para fracasar, seguramente no está yendo suficientemente lejos.
Samuel Jack
“Solo los competentes son modestos”.
(fuente: podcast Cafe Brasil, episodio 216 – Tacotico ou Tacoteco?link mp3)
Bueno, ahí viene mi análisis de la netbook asus 1201n.
Miré 100 videos en youtube antes de comprarla y ahora estoy muy conforme después del mes de uso. Es mi primer portátil, porqué nunca necesité de una y, ahora que estoy en Buenos Aires, siempre hay charlas interesantes para llevarla (sino en las vacaciones, cuando tenga).
Bueno dentro de componentes:
Es el Atom 330 (doble núcleo, 1.6MHz, soporta HT de intel y la frecuencia del puerto norte andaba por los 600MHz creo), 2GB de ram (800Mhz aprox.), 320HD, 802.11n, screen led 12.1′ 1366 x 768, nvidia ion (256 de video, tiene 16 núcleos), salida HDMI (la pantalla soporta 720p pero con HDMI 1080p), pad multitouch, teclado tipo chiclet al 91%, 3 puertos USB, lector DS.
En primer lugar, es el primer sistema que tengo con win7 prof (la otra, que todavía no la jubile tiene XP y la voy a dejar de server especialmente por las fotos, musica y pelis).
Mi evaluación luego de actualizar la BIOS y descargar todos los drivers nuevos que tienen muchas mejoras que se notan (y mucho):
Procesador: se la banca muy bien, por ejemplo Eclipse Galileo con pluggins de GWT abre más rápido que en la iMac con Core2Duo 2.4 y 4GB de ram (aunque es otro OS).
En este preciso momento estoy haciendo los prácticos de la facultad y me dí un recreo para escribir esto. Está conectada a otro monitor como continuación y tengo abierto Adobe Acrobat, OpenOffice Writer, Notepad, iTunes 10 reproducciendo una radio, Firefox, MSN y Bittorrent (descargando Suse).
Síntesis: es un atom! quién diría que puedo hacer esto?
El CS4 no lo uso, pero puedo decir que Corel lo corre normal. Y aunque todavía no usé mucho el Visual Studio 2010, no se traba para nada.
Video: los videos de youtube 1080p andan re bien y el procesador usa algo del 80%. Jugué Dirt2 y GRID (no a máxima resolución) pero “se la banca” sin el multimuestreo. Eso sí, tienen que usar una base con coolers porque levanta mucha temperatura y se empieza a quedar por temperatura (debe ser que por los buses que procesador CPU Y GPU tienen que estar juntos), con la base lo jugaron dos 4 horas sin problemas.
También instalé los chiches de desarrollo de NVIdia y es simplemente hermoso lo que hace el multiproceso de GPU, se van a babear todo (pero no lo hagan en verano :D, tira calor que da miedo que se derritan las soldaduras del GPU)
La pantalla no tiene otro netbook que en este tamaño le de tanta resolución. Los colores son buenos, el ángulo de visión es muy malo y hay que verlo máximo a 15 grados al centro.
El teclado tiene casi la misma sensación que los de mac (el finito) y si no tenés manos de mecánico va re bien. Aunque para programar todos los días usaría mi favorito que es el de mac.
El sonido puede usar salida 7.1 por HDMI (no lo probé).
Los parlantes son malísimos, no se puede hacer magia en 2cm cuadrados: mi celular samsung 256e tiene el mismo sonido. Yo tengo conectado el dock JBL que generalmente uso con el ipod.
El pad es de mal tacto (no tiene un plástico diferenciado) y el botón (malo) plateado algún día lo voy a pintar de negro. yo sacaría los botones para que sea 1,5cm más grande tanto vertical como horizontal.
La webcam VGA estándar no es gran cosa (después de todo nunca se usa).
La evaluación de experiencia de Windows da procesador 3,2 / RAM 4,5 / Gráficos 4,2 / G para juegos 5,3 / HDD 5,6.
Otro tema, para plena compatibilidad con hackintosh hay que cambiar la wifi por uno de dell y la salida HDMI anda sin sonido (pero podés usar analógica).
Ah, lo que es carcasa, muy linda, negro piano (afuera y adentro excepto la base). El tamaño exactamente el de hoja A4 y el grosor dedo meñique y anular juntos (jaja, me maté en esta explicación técnica).
Y si, hay una cosa que no me gustó es que sin luz es imposible conectar la ficha de corriente eléctrica (cosa que no pasa con el plug de auriculares, supongo que porque es algo mas grande y se siente al rozar con el dedo).
Se puede poner hasta 4GB de ram (no sé qué aplicación tiene con este procesador).
Para virtualización, no tiene el grupo de instrucciones que traducción por hardware (no recuerdo bien como era). Pero eso lo diferencia al procesador atom de los Core2Duo o los i7. No pidan mucho, no es un servidor!
Bien, para los que no quieren gastar 1600 verdes de la MacBook Pro y que sea lindo y portátil, acá tienen la 1201n, que gracias a NVIDIA ION no se le puede pedir mas. Y, comparado con algún samsung que viene con i3 que pude ver, me quedo con esta, que es 3 veces más liviana y portable y, con más densidad de píxeles por pulgada.
Dejo el video de lo que es solo el NVIDIA ION en su primer versión
En estos días cambio de trabajo. Pienso que cumplí una etapa, aunque creo que no aprobeché al 100% mi paso por la empresa, mucho de esto tiene que ver con este artículo que, aunque largo, vale la pena leer.
Este artículo corresponde a barrapunto.com -> http://empleo.barrapunto.com/empleo/10/09/28/1042212.shtml
Entrada escrita por ejimenez y editada por Candyman el Martes, 28 Septiembre de 2010, 11:00hs
Últimamente se están sucediendo varias noticias relacionadas con el problema de la precariedad laboral en el sector de la informática. El tema lleva sobre la mesa desde siempre, pero las dificultades actuales en el mercado laboral lo están acentuando.
Los debates sobre la cuestión casi siempre degeneran en guerras incendiarias ente los propios perjudicados. Sobre todo, cuando se tocan aspectos como el intrusismo, los colegios, o la utilidad de los planes de estudio. Un ejemplo es la famosa discusión entre ingenierosdeprimera.com y Ricardo Galli, creador de Meneame.com.
Otras veces el foro se convierte en una colección de insultos contra las cárnicas, como pasaba con www.trabajobasura.com, y otros sitios parecidos. Esto suele ser poco productivo, porque no logra cambiar nada.
Para mi, la raíz del problema de la precariedad laboral no está en las cárnicas, ni en la ausencia de colegios o sindicatos. La raíz está en la contratación de perfiles poco cualificados, y su consideración como peones albañiles.
Cuando digo perfiles poco cualificados no me refiero a titulados o no titulados. Me refiero a personas sin ninguna vocación, y sin ningún interés por aprender, empezando por aquellos, tanto informáticos como otros titulados, que afirman que “no han estudiado una ingeniería para acabar picándo código”, o que “la labor de un ingeniero no es poner los ladrillos”.
Precisamente las cárnicas, el bodyshopping, la deslocalización a otros a países, y gran parte de los males del mundo de los servicios de software, no son más que consecuencias de esta consideración del programador como un peón albañil.
A veces son éstas mismas personas, los que desprecian la programación, quienes más se quejan del intrusismo. Pero estaréis de acuerdo en lo incoherente que resultaría revindicar la programación como una competencia exclusiva de los ingenieros informáticos, y mantener al mismo tiempo que la programación es impropia de un ingeniero. Tan incoherente como protestar por la contratación de licenciados en informática como “picadores”, al mismo tiempo que se protesta por la contratación como programadores de profesionales de otras titulaciones. No tiene sentido tampoco que sean los menos cualificados para la programación, que son aquellos que la desprecian, quienes etiqueten a todos los demás como perfiles no cualificados para el desarrollo de software.
Más de uno estará pensando que no es la programación lo que les preocupa, sino la dirección o gestión de proyectos de software. Piensan que la verdadera labor de un ingeniero no es programar o poner ladrillos, sino dirigir proyectos o diseñar los sistemas.
Las personas que piensan así generalmente no están cualificadas para programar, ni para gestionar proyectos. Para lo primero es evidente: quien piense que programar es como poner ladrillos, es que no ha programado en su vida. Pero la programación no es una actividad de construcción, sino de diseño. No quiero extenderme demasiado, la mejor explicación al respecto es el artículo de Jack Reeves: el código es el diseño.
En cuanto a lo segundo, quienes piensan que lo propio de un ingeniero es ser jefe de proyecto, lo que reflejan es una concepción taylorista del proceso de desarrollo de software, y con esa mentalidad es difícil gestionar proyectos en la actualidad.
Permitidme un paréntesis sobre la gestión de proyectos. Creo que conocéis cual es la concepción taylorista y creacionista del proceso de desarrollo de software. Aquella basada en la división de las actividades de análisis, diseño , construcción y pruebas, entre distintos grupos de personas, con distintos niveles jerárquicos de responsabilidad, mediante un proceso secuencial, dentro de sistemas formales documentalmente pesados. Éste es el enfoque ortodoxo y académico que promueven las prestigiosas consultoras. Nada que ver, por supuesto, con el verdadero desarrollo profesional de software.
He visto alguna vez por Barrapunto chistes sobre el tema. Efectivamente, si a un consultor le encargasen auditar el desarrollo del kernel de Linux, se llevaría las manos a la cabeza: ¿dónde están los diagramas UML?, ¿dónde está el diagrama de Gantt?, ¿y los documentos de diseño?, ¿qué hacen todos estos ingenieros picando código?. Si un consultor soltara estas preguntas en las listas de correo del kernel, todos los hackers se reirían de él, aunque no creo que perdieran mucho tiempo con la guasa, tienen cosas más importantes que hacer. Pero cuando este mismo discurso se mantiene dentro de una empresa, ante un foro de gerentes, directivos, y otros consultores, todos acaban congratulándose de que alguien por fin les entienda, y de que se proponga empezar a hacer las cosas bien, de forma “industrializada”, como una “ingeniería”.
El taylorismo es obsoleto en todas las demás ingenierías desde los años 70, cuando se desarrolló el toyotismo. No se si os sonarán términos como “Lean”, “Kanban”, “Jidoka”, o “Kaizen”, propias del ámbito industrial, pero seguro que sí os suenan las metodologías ágiles de desarrollo como Scrum o Programación Extrema,
donde no hay ni jefes, ni analistas, ni testers, sino simplemente equipos de desarrolladores auto-organizados, donde todos prueban, codifican, analizan y documentan. La ingeniería de software es, curiosamente, una de las disciplinas más reaccionarias ante estos enfoques. Habría que tirar a la basura, o mejor, quemar en la hoguera, toda la bibliografía taylorista sobre ingeniería de software, que parte de la visión de la programación como una actividad de construcción, y del programador como un peón albañil.
Las grandes consultoras han apoyado el taylorismo, o el desarrollo de software mediante mano de obra barata y poco cualificada, porque durante muchos años ha sido un modelo muy rentable. Cuanto más improductivo es el modelo, más personal requieren sus clientes, y durante más tiempo, lo que implica mayores ingresos y beneficios. Si además se establecen procesos formales lentos y pesados, basados en la elaboración de montañas de documentación, los proyectos requerirán cada vez más recursos y más tiempo. Esta dinámica no es realmente intencionada, ni es exclusiva de la ingeniería de software. La tendencia de toda organización a multiplicar la burocracia para maximizar el esfuerzo fue descrita por primera vez por Cyril Northcote Parkinson en 1955, y es conocida como la Ley de Parkinson.
Es difícil hablar de calidad, talento, experiencia o cualificación dentro de un mundo como el del sector de las IT y los servicios de software, que es exactamente como el que describió Parkinson, aunque él se refiriese a la administración colonial británica. La productividad no importa, y las personas no son más que material fungible.
El resultado inicial de este modelo ha sido el prestamismo laboral o el bodyshopping, que tan rentable fue para las cárnicas y las presuntas consultoras, transformadas en ETTs encubiertas. En poco tiempo lograron colocar a tanta gente que la demanda de informáticos se disparó, y muchos treparon de forma vertiginosa. El primer varapalo llegó en el 2000 con la crisis de la puntocom, y la puntilla llegó con el inicio de los procesos de externalización y deslocalización a otros países durante la década siguiente, en busca de mano de obra barata.
Estos procesos de externalización y deslocalización en Telefónica siguen su curso aún. Hace unas semanas, por ejemplo, se comentó la concentración de unos 300 trabajadores en protesta por la externalización de Telefónica I+D a Ericcson e Indra.
Los cientos de Trabajadores de I+D que han sido “invitados” a cambiar de empresa, son pocos comparados con los cerca de 2000 que Telefónica segregará a Telefónica Global Technology, la nueva empresa del grupo.
La presidenta de TGT es la argentina María Fernanda Torquati, anterior directora de sistemas de información de Telefónica. Podéis encontrarla en la foto junto a Cristina Fernández de Kirchner, y otros directivos de Telefónica y Accenture.
Mientras en España esta deslocalización implica la destrucción de cientos de puestos de trabajo, en Argentina supone la creación de miles de ellos, aunque posiblemente no muy estables. El modelo que se está exportando allí es el modelo de las cárnicas, que tanto daño ha causado en España.
La moda de la deslocalización proviene de otro tipo de industrias, como la del sector textil o el sector del automóvil, donde existen actividades de fabricación intensivas en mano de obra. Lo que se trasladan son las actividades de construcción o fabricación, mientras el diseño se mantiene en Europa. No tendría sentido deslocalizar el diseño, ya que no suele ser una actividad acometible por fuerza bruta, sino por personal altamente experto y cualificado, y su deslocalización a países en vías de desarrollo no implicaría ninguna reducción de costes. De hecho, el offshoring
de las actividades de diseño multiplica los costes, ya que merma la productividad y la calidad, entre muchas ochas.
Gran parte de las empresas que promovieron durante los 90 un offshoring de las actividades de I+D a países como la India, se encuentran ahora en un proceso inverso de retorno a sus países de origen. Una muestra sintomática de esta
marcha atrás es la obra “Decline and Fall of The American Programmer” de Edward Yourdon (1992), vaticinando la desaparición de los programadores en EEUU como consecuencia de la deslocalización. La mejor muestra de que estaba equivocado es “Rise & Resurrection of the American Programmer”, el libro que escribió después para explicar
por qué había fallado en todos sus vaticinios. Si visitáis estas obras en Amazon, echad un vistazo a los comentarios de Peter Norving, director de desarrollo de Google. Podéis comprobar por las fechas que en España acarreamos un desfase respecto a estas tendencias.
La precariedad laboral en el sector de las consultoras y los servicios de software es simplemente consecuencia de un prejuicio: la consideración de los informáticos como peones albañiles. La subcontratación, la contratación de
perfiles poco cualificados, el fenómeno de las cárnicas, y la deslocalización a países en vías de desarrollo, no son más que consecuencias directas de esta visión de los informáticos como albañiles, y de su labor como una actividad
que puede hacer cualquiera, acometible por fuerza bruta.
Mientras, las consultoras en España han sido víctimas de sus propios errores, ya que aquello en lo que han fallado miserablemente es en explicar que lo que los proyectos requieren no es fuerza bruta, ni mano de obra barata, sino personal experto y cualificado. Este personal cualificado también es más barato, ya que es más productivo, y no sólo produce más, sino que produce mejor o con mayor calidad. Al fin y al cabo eso es lo que realmente la gente espera de un consultor: alguien cualificado y experto.
Cuando las consultoras decidieron dejar de ser consultoras, para convertirse simple y llanamente en ETTs de mierda, operando al borde de la legalidad, firmaron sus sentencias de muerte. Creo que muchas empresas deberían estar
planteándose hoy si quieren ser realmente ETTs encubiertas, y dedicarse a competir en mano de obra barata (lo que se me antoja harto difícil), o volver a ser consultoras, y empezar a combatir desde ya los procesos de deslocalización
en sus clientes. Claro, es poco creíble que los mismos que han defendido las bondades del offshoring y de las software factories, defiendan ahora un modelo completamente contrario.
Hoy las consultoras deberían ser las primeras interesadas en defender un modelo basado en la productividad, en la experiencia, la cualificación y el talento. Y los informáticos también. En vez de combatir la precariedad laboral mediante colegios, sindicatos y privilegios, creo que deberíamos unir esfuerzos en erradicar el prejuicio inicial, que es la consideración de los programadores como peones albañiles, y la programación como una actividad de construcción. Hace falta para ello reescribir los libros sobre ingeniería de software desde el principio, y eso es lo que yo he pretendido hacer con Ingeniería de Software Ágil.
Ya pasada la etapa muy breve con servles, jsp (que tengo que seguir); por tiempos e implementación, y las apuradas.. ahora estoy con Spring e hibernate… que este segundo voy a dejarlo unos días.. para ver como es la configuración del framework y después pensaremos en persistir los datos.
Ya voy a aclarar mis ideas de JSP, JSTL, EL, y todas esas cositas.. pero java es java, y java es más difícil que .NET, lleva tiempo.
Y bueno, me puse a ver videos:
Intro Spring Framework, por Domingo Suarez Torres
Si bien no me gusta la ciencia ficción ni soy un gran “gamer”, mi social networking se tapó con lectura de varios libros, uso siempre las mismas aplicaciones, y a esta altura me da igual: programo en win, lin o mac (solo cambia el slash y el salto de línea) => comparto el resto. Aunque el tamaño de lenguajes debería ser el triple y desparramado manchando todo.
Bueno, hoy queda inaugurada la serie de charlas 2010. En 2008 hubieron una seguidilla de eventos atractivos, peo últimamente se han reducido mucho. Siempre me gustó participar y tenemos: BarCamp, CodeCamp, PalermoValley, PHP, Python, IEEE.
Bueno, subo el pdf de PyAr, que hoy a partir de las 10:30am de argentina empezarán a dar sobre lenguaje Python (Python Argentina y Colectivo La Tribu, Ciclo 2010 de Charlas Abiertas de Python), gratis (pero a la gorra). Ayudando con los gastos a las personas que ayudan a que esto salga adelante.
Distribuidas a lo largo de varios sábados del segundo semestre del año, cubren temas desde lo más principiante a temas muy avanzados, cerrando incluso con un taller.
También, y aún no se confirmaron todas las charlas, se viene CodeCamp 2010! el evento será el 4 de Septiembre a partir de las 9hs en la Universidad de Palermo (Mario Bravo 1050, CABA). Presenta desarrollo de software con herramientas Microsoft. El año pasado hubieron muchas “manzanas dando vueltas” y este año no creo que sea la excepción. Me gustó, valió la pena. Hay mucha gente programando (y muy jóvenes la mayoría) con buenas ideas. Hay que preinscribirse, aunque todavía no está abierta la misma. Para mas info pueden seguir en twitter a @masaez.
Buen comienzo de semestre!! :D
wfranck – Walter J Franck
En un principio la idea era hacer un blog técnico, de trabajos de la facultad.
Pero no puedo evitar cosas que los noticieros de argentina no muestran. De más está decir de todas las acciones que están relacionadas con el patrimonio de Gran Bretaña, de los U$S 1.400.000 de impuestos que aportó el último año al reino (justo con toda la crisis, es una ayuda para la reina y los recortes de presupuesto). Además de la importancia de que esta empresa siga funcionando no entiendo cómo. Tenemos datos interesantes como que en los ‘80 las perforaciones se hacían a 200-300 metros de profundidad y hoy llegan a los 3000 como es el caso de BP. solución? OK, suspendamos las perforaciones marítimas (que son al rededor del 10% del total), y vamos a estar todos de acuerdo con ello dado la cuestión ecológica; pero recuerde la ley de oferta y demanda: si baja la oferta, ante una demanda constante el precio se incrementará :( !!!
estamos hasta las manos!
Algunas imágenes desde 9GAG, todo lo relacionado con el desastre de BP
Otro de los podcast que escucho religiosamente es Cafe Brasil, el de este señor: Luciano Pires. Está en portugués, es un podcast que se publica una o dos veces por semana, con música y temas de actualidad de interes general.
Luciano es ejecutivo, periodista, escritor.
Presta un espacio de opinión, y es un podcast para escuchar algo de música y conocer algunas ritmos nuevos.
Quizás lo mas llamativo del podcast es el orden y la relación entre la presentación de los temas de contenido, la música, las introducciones y conclusiones. Puede que no sea innovador en los temas, pero sí lo es en la prolijidad con buena producción y puesta al aire, con personas muy capaces detras de escena.
Hoy no tengo ningún compañero del tipo geek con el que pueda disfrutar de una charla y disfrutar una charla que no tenga nada que ver de los tiempos de entrega, de nuevos proyectos con destino incierto, etc etc.
¿En serio?.. mañana tengo que .. y la semana pasada con todos los cambios y problemas de servidor.. … Y esta gente sólo piensa en tiempos de entrega y trabajos realizados. Es poco triste pero es en cierta manera la realidad.
Y podría pasarme el día entero comentando sobre nuevas tecnologías: Java, struts, spring, jpa, jsf, jsp, servlets, eclipse, netbeans, oracle, sun, db2, mvc, hibernate, maven, groovy, grails. Todo desordenado.. pero bien podría integrar todo esto y escribir 200 páginas.
suena bien? no importa en lo más mínimo. Podría hacer una presentación de todo esto y nadie prestaría atención en lo más mínimo, porque yo: programdor, no existo. Soy un enigma.
No tienen ni idea de quién escribió esa ventanita tan útil. No te vana conocer. No les importa de porqué lo diseñó así o de otro modo. No importa porqué cuando lograste terminar la solución, ya no necesitaban tu trabajo. Solo eres importante porque gastas tu vida en el software manteniéndo sus programas.
Para toda la empresa sólo sos aquel pedazo de software. Apenas sos un destornillador con DNI. Ellos solo quieren que ajustes los tornillos de su software y se acuerdan de tí cuando tengan que arreglar nuevamente el sistema.
Vamos a probar un experimento. Un programita que usa todos los días. Diga con qué herramientas está hecho, el nombre de 4 personas relacionadas (sin mirar para arriba). No puero hacer solo eso con lo que yo trabajo.
Bueno, digamos que usted puede hacer todo eso. Usted sabe tiene todo el conocimiento de la gente que hace sus herramientas, pero ¿puede suted decir honestamente que usted sabe tanto de ellos como lo hace con las herramientas que usted hizo? Sea honesto consigo mismo y mire lo mucho que sabe sobre la gente detras de su equipo que lo hace como un arte en sí mismo.
Los programaadores famosos no son muy famosos por sus programas, sino por el negocio que crearon alrededor de su idea. Su fama no está basada en un código impresionante, está vinculado con algo fuera de ello que luego la gente asocia a este concepto.
Por eso creo (el autor del artículo original y yo): No Hay Programadores Famosos.
Y lo de ser conocido, no ayuda mucho en tu carrera de programción en determinados aspectos, los clásicos aspectos que suelen provocar migraña.
Todavía tengo que hacer entrevista de programador como todos los demás. Por mucho código que hice, tengo que resolver ejercicios de factoriales, ordenar vectores, consultas sql. No importan todos esos servidores web, servidores, bases de datos, lenguajes que has manejado. No importa cuántas copias de tu software hayas hecho tienes que demostrar que puedes hacer software.
Ser exitoso no ayuda en mi profesión. De hecho, hace más difícil porque ahora por alguna extraña razón la gente piensa que mi fama significa que no puedo “codear”.
Ahora solo pienso en pasar un buen rato con lo que sé mientras pueda hacerlo. Tal vez hacer lo que mas me gusta como hobbie (y trabajo).
En poco tiempo, creo que los programadores simplemente no serán más que los trabajadores de fábrica.
Los programadores se olvidan de las obras de otros programadores, y serán absorvidos por completo en esta ceguera, eliminando el incentivo de proiducir y compartir con otros programadores: el reconocimiento.
Disfrutemos este momento, hasta que el día que ser programador sea sinónimo de ser un ciudadano de segunda clase.
Uno de los podcast que más me gustan de Dixo (creo que es un canal), es el de Nadia Molina.
Como narra en iTunes Store …”No hay voz más franca y cálida que la de Fernanda Tapia. Ganadora del Premio Nacional de Periodismo, cuenta con más de 28 años de carrera como columnista perspicaz, locutora de gran culto en la radio y conductora consolidada en la televisión.”…
Solo un momento en el tren mientras viajamos al trabajo y cerramos los ojos para dejarnos llevar, escuchar pensamientos y pasarla bien.
Les dejo un fragmento que escuché en este podcast.
Ya todo lo llenas tu, yo no soy nada en ti y te voy a dejar al fin.
Al fin tu eres feliz ni lo vas a notar.
Soy dolor que nunca te ha dolido, soy amor que a fuerza se ha metido, soy una simple comparsa y por eso me voy.
No sufriré tu altivez, aunque puedas vivir con el mundo a tus pies, y mi más grande amor tan pequeño lo vez. Me haces menos y ese es mi coraje, y si no te gusta lo que traje: adios; pues de algún modo seguiré mi viaje.
Y es noticia de esta semana los recortes que se están produciendo en distintos países de europa debido a la crisis que apareció en Grecia y se “contagiaron” varios países.
Hay unos ítems interesantes que llaman mucho la atención, viéndolo desde el punto de vista de un ciudadano del 3er mundo y desde “Argentina” con un riesgo país que desde la crisis (aunque se le presta atención) sobrepasa la luna.
Todo es de la querida República Federativa Alemana:
-A pesar de entrar en crisis, ofrese ayuda a Grecia. Con muchas pre-condiciones pero tratando que un grande no caiga afectando alrededor.
-Otra, el motiva escribir este post. Alemania recortará una gran parte del presupuesto en todos los áreas. Recortará presupuesto militar, subvenciones, ayudas a desempleados por familia, etc etc. Recortará “todas las áreas” con dos excepciones.
Y, cómo ítem aparte, las excepciones en las que no se recortará el presupuesto son:
Educación e
Investigación
En conferencia de prensa el gobierno dejó que esto al momento es una decisión cierta y ninguno de los periodistas presentes y, luego de la aprobación, todos los partidos habrían estado de acuerdo (tengan en cuenta que siempre está el gobierno con todos los opositores y es extraño que todos apoyen unánimemente las mociones).
Recuerdo que hace unos años una profesora preguntó en clase sobre qué considera como prioridad: Invertir en salud (hospitales) o educación (escuelas). resultado de la votación: ganó salud. Hasta ese día nunca me había dado dado gusto “perder”.
La profesora corrigió ese resultado y dio las razones de porqué: claro, sabiendo las respuesta es fácil dar justificativos.
Pero es triste ver que en argentina no tenemos planes desarrollo a largo plazo que lamentablemente los gobiernos jamás tienen en cuenta porque su mandato dura máximo 8 años perdiendo elecciones por no dar resultados concretos, gastos fácilmente cuantificables y la imposibilidad de mostrar a los habitantes que el gobierno no da ganancias a las arcas de la nación si sigue con un plan educativo.
Bueno, viniendo de Alemania, no extraña saber porqué cuenta con buenos ingenieros.
…jamás hubiese prestado tanta atención para lograr este “diseño”.
Se me ocurre una nueva forma de componer. Bueno, despues de todo en sistemas además de diagramas de flujo contamos con UML, Patrones de Diseño, Metodologías Ágiles… no garantízan el éxito pero ayudan a tener un diseño consistente !
Observen que hay un error:
Es un bucle infinito!(habría que intentar rediseñarlo y hacerlo recursivo :P )
Hemos llegado a un punto donde la programación orientada a objetos no alcanza a satisfacer nuestras necesidades de rendimiento y modularidad. Donde la herencia no cumple nuestras espectativas y las utilidades deben atravesar todos los niveles de programación para cumplir algunas funciones específicas igual de útiles en todas las capas del negocio, funcionando aún sobre el nivel de jerarquía planteado por la POO.
Intro
ok, empezando con mi artículos teóricos: un “nuevo” paradigma.
Un paradigma, entre tantas ideas, es una forma de representar y manipular el conocimiento. Pero en sí los mismos establecen límites e indican como comportarse dentro del mismo concepto para alcanzar el éxito. Un cambio paradigmático es por lo tanto un nuevo conjunto de reglas.
Cuando cambia un paradigma todos retornamos a cero. Es decir, se pierden las ventajas de un conocimiento previo, mas surge una nueva correlación de ganadores y perdedores; una nueva forma de percibir la realidad.
Paradigma de programación
La ingeniería del software está compuesta por una serie de pasos que abarcan los métodos, las herramientas y los procedimientos antes mencionados. Estos pasos se denominan frecuentemente paradigmas de la ingeniería en software; básicamente, una forma de concebir la realidad.
Es un modelo básico de diseño y desarrollo de programas, una colección de modelos conceptuales que juntos modelan el proceso de diseño y determinan, al final, la estructura de un programa.Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro.
Programación imperativa
Programación lógica
Programación funcional
Programación estructurada o declarativa
Programación dirigida por eventos
Programación modular
Programación Orientada a Aspectos
Programación orientada a objetos
Programación con restricciones
Programación por capas
Programación a nivel funcional (John Backus)
Programación a nivel de valores (John Backus)
Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.
Programación Orientada a Aspectos (POA)
Es una nueva metodología de programación que aspira a soportar la separación de competencias para los aspectos, esta expansion se da debido a que en a POO se escribe bastante codigo para realizar una accion en si, lo cual ocasiona que ese codigo se disperse y se vuelva dificil de controlar. Los objetos, a modo de ejemplo, se pueden hacer referencia a un animal, en este caso un perro, con sus distantas caracteristicas, a esas caracteristicas son conocidas en POA como Aspectos. Como bien se sabe un perro en toda su vida util va cambiando su apariencia, pasa de ser un cachorro a un perro adulto, por lo cual sus caracteristicas/aspectos dejan de ser las mismas en forma de metafora la POA trabaja exactamente igual.
Gracias a la POA se pueden encapsular los diferentes conceptos que componen una aplicación en entidades bien definidas, eliminando las dependencias entre cada uno de los módulos. De esta forma se consigue razonar mejor sobre los conceptos, se elimina la dispersión del código y las implementaciones resultan más comprensibles, adaptables y reusables.
El principal objetivo de la POA es la separación de las funcionalidades dentro del sistema:
Por un lado funcionalidades comunes utilizadas a lo largo de la aplicación.
Por otro lado, las funcionalidades propias de cada módulo.
Cada funcionalidad común se encapsulará en una entidad.
En la segunda y tercera generación se tienen conjuntos de elementos agrupados por tonalidades, y en cada conjunto conviven distintas formas, lo que nos indica que la descomposición del sistema se hace en base a las funciones (tonalidades), y que los datos quedan esparcidos por todos los conjuntos.
Con las descomposiciones tradicionales no se aislan bien estos otros aspectos, sino que quedan diseminados por todo el sistema enmarañando el código que implementa la funcionalidad básica, y yendo en contra de la claridad del mismo. Se puede afirmar entonces que las técnicas tradicionales no soportan bien la separación de competencias para aspectos distintos de la funcionalidad básica de un sistema, y que esta situación claramente tiene un impacto negativo en la calidad del software.
La programación orientada a aspectos (POA) es una nueva metodología de programación que aspira a soportar la separación de competencias para los aspectos antes mencionados. Es decir, que intenta separar los componentes y los aspectos unos de otros, proporcionando mecanismos que hagan posible abstraerlos y componerlos para formar todo el sistema. En definitiva, lo que se persigue es implementar una aplicación de forma eficiente y fácil de entender.
POA es un desarrollo que sigue al paradigma de la orientación a objetos, y como tal, soporta la descomposición orientada a objetos, además de la procedimental y la descomposición funcional. Pero, a pesar de esto, POA no se puede considerar como una extensión de la POO, ya que puede utilizarse con los diferentes estilos de programación ya mencionados. El estado actual de la investigación en POA es análogo al que había hace veinte años en la programación orientada a objetos.
Implementación
Los aspectos no suelen ser unidades de descomposición funcional del sistema, sino propiedades que afectan al rendimiento o la semántica de los componentes. Algunos ejemplos de aspectos son, los patrones de acceso a memoria, la sincronización de procesos concurrentes, el manejo de errores, etc.
Como se puede observar, en la versión tradicional estos mismos bloques de funcionalidad quedan repartidos por todo el código, mientras en que la versión orientada a aspectos tenemos un programa más compacto y modularizado, teniendo cada aspecto su propia competencia.
Los lenguajes orientados a aspectos definen una nueva unidad de programación de software para encapsular las funcionalidades que cruzan todo el código. Para que ambos (aspectos y componentes) se puedan mezclar, deben tener algunos puntos comunes, que son los que se conocen como puntos de enlace, y debe haber algún modo de mezclarlos.
Los puntos de enlace son una clase especial de interfaz entre los aspectos y los módulos del lenguaje de componentes. Son los lugares del código en los que éste se puede aumentar con comportamientos adicionales. Estos comportamientos se especifican en los aspectos.
El encargado de realizar este proceso de mezcla se conoce como tejedor (del término inglés weaver). El tejedor se encarga de mezclar los diferentes mecanismos de abstracción y composición que aparecen en los lenguajes de aspectos y componentes ayudándose de los puntos de enlace.
En las aplicaciones orientadas a aspectos, sin embargo, además del compilador, hemos de tener el tejedor, que nos combine el código que implementa la funcionalidad básica, con los distintos módulos que implementan los aspectos, pudiendo estar cada aspecto codificado con un lenguaje distinto.
Una ayuda para poder identificar la segmentación de un programa es :
Análisis y diseño orientado a objetos:
Sustantivos: candidatos a clases o atributos.
Verbos: candidatos a métodos.
Análisis y diseño orientado a asepctos:
Adverbios y adjetivos: candidatos a aspectos.
Transacción segura, registro permanente, evento
Definen conceptos que tienen sentido independientemente a los sustantivos y verbnos a los que se aplican.
¡OJO! También pueden ser candidatos a subclases e interfaces.
Síntesis de Funcionalidades Básicas
Aspect (Aspecto) es la funcionalidad que se cruza a lo largo de la aplicación (cross-cutting) que se va a implementar de forma modular y separada del resto del sistema. El ejemplo más común y simple de un aspecto es el logging (registro de sucesos) dentro del sistema, ya que necesariamente afecta a todas las partes del sistema que generan un suceso.
Join point (Punto de Cruce o de Unión) es un punto de ejecución dentro del sistema donde un aspecto puede ser conectado, como una llamada a un método, el lanzamiento de una excepción o la modificación de un campo. El código del aspecto será insertado en el flujo de ejecución de la aplicación para añadir su funcionalidad.
Advice (Consejo) es la implementación del aspecto, es decir, contiene el código que implementa la nueva funcionalidad. Se insertan en la aplicación en los Puntos de Cruce.
Pointcut (Puntos de Corte) define los Consejos que se aplicarán a cada Punto de Cruce. Se especifica mediante Expresiones Regulares o mediante patrones de nombres (de clases, métodos o campos), e incluso dinámicamente en tiempo de ejecución según el valor de ciertos parámetros.
Introduction (Introducción) permite añadir métodos o atributos a clases ya existentes. Un ejemplo en el que resultaría útil es la creación de un Consejo de Auditoría que mantenga la fecha de la última modificación de un objeto, mediante una variable y un método setUltimaModificacion(fecha), que podrían ser introducidos en todas las clases (o sólo en algunas) para proporcionarlas esta nueva funcionalidad.
Target (Destinatario) es la clase aconsejada, la clase que es objeto de un consejo. Sin AOP, esta clase debería contener su lógica, además de la lógica del aspecto.
Proxy (Resultante) es el objeto creado después de aplicar el Consejo al Objeto Destinatario. El resto de la aplicación únicamente tendrá que soportar al Objeto Destinatario (pre-AOP) y no al Objeto Resultante (post-AOP).
Weaving (Tejido) es el proceso de aplicar Aspectos a los Objetos Destinatarios para crear los nuevos Objetos Resultantes en los especificados Puntos de Cruce. Este proceso puede ocurrir a lo largo del ciclo de vida del Objeto Destinatario:
Aspectos en Tiempo de Compilación, que necesita un compilador especial.
Aspectos en Tiempo de Carga, los Aspectos se implementan cuando el Objeto Destinatario es cargado. Requiere un ClassLoader especial.
Aspectos en Tiempo de Ejecución.
Diseño en la programación mediante Lenguajes de Aspectos. Tendencias que persiguen.
Los lenguajes de aspectos de dominio específico soportan uno o más de estos sistemas de aspectos que se han ido mencionando en las secciones anteriores (distribución, coordinación, manejo de errores, …), pero no pueden soportar otros aspectos distintos de aquellos para los que fueron diseñados. Los lenguajes de aspectos de dominio específico normalmente tienen un nivel de abstracción mayor que el lenguaje base y, por tanto, expresan los conceptos del dominio específico del aspecto en un nivel de representación más alto.
Si contrastamos estos dos enfoques, propósito general versus propósito específico, se tiene que los lenguajes de aspectos de propósito general no pueden cubrir completamente las necesidades. Tienen un severo inconveniente: Permiten la separación del código, pero no garantizan la separación de funcionalidades, es decir, que la unidad de
aspecto solamente se utiliza para programar el aspecto. Sin embargo, esta es la idea central de la programación orientada a aspectos. En comparación con los lenguajes de aspectos de propósito general, los lenguajes de aspectos de dominio específico fuerzan la separación de funcionalidades (Ej. COOL, RIDL).
Problemas de los Lenguajes Base:
Con respecto a los lenguajes de dominio específico, puede tener bastante importancia el hecho de escoger un lenguaje base. Se tiene que tener en cuenta que los puntos de enlace solamente pueden ser los que se identifiquen en el lenguaje base. Si necesitamos separar las funcionalidades, debemos recordar que el lenguaje base debe restringirse después de que se hayan separado los aspectos. Lo que implica quitar módulos del lenguajes base, que puede no haber sido diseñado para esto e implica un conocimiento con profundidad del mismo (mas dificil que haber creado uno desde cero).
Los lenguajes de aspectos de propósito general son menos difíciles de implementar por encima de un lenguaje de programación existente, ya que no necesitan restringir el lenguaje base.
Ventajas de programar la implementación de POA
Las ventajas que tiene el capturar los aspectos ya desde la fase de sieño son claras:
Facilita la creación de documentación y el aprendizaje, porque implica el diseño por completo de los mismos.
Facilita la reutilización de los aspectos, ya que conocemos la estructura interna y podemos adaptarlos a la nueva problemática.
Ventajas de la utilización de POA
Disminución del código disperso distribuido por toda la aplicación (scattered code).
Implementación un única vez en una ejecución de multimples comportamientos en forma simultánea.
A menudo, hace falta escribir líneas de código que están distribuidas por toda o gran parte de la aplicación, para definir la lógica de cierta propiedad o comportamiento del sistema, con las consecuentes dificultades de mantenimiento y desarrollo. El hecho es que hay ciertas decisiones de diseño que son difíciles de capturar, debido a que determinados problemas no se pueden encapsular claramente de igual forma que los que habitualmente se resuelven con funciones u objetos. Es allí donde la POA encuentra su espectro y donde debe encontrar cabida a nuevas teorías y técnicas que establezcan principios para su desarrollo, que en la actualidad la POO y el uso de Patrones de Diseño, tecnologías más utilizadas actualmente, no alcanzan acaparar.
Conclusión
La separación de los aspectos a todos los niveles (diseño, codificación y ejecutable) es un paso importante que se ha comenzado a dar, pero que aún hay que refinar, sobre todo en cuestiones de eficiencia.
Los entornos de programación orientada a aspectos que han habido hasta ahora no soportan una separación de funcionalidades suficientemente amplia, el lenguaje de aspecto soporta el dominio de aspecto parcialmente, no se sostiene adecuadamente la restricción del lenguaje base, o bien no se cuenta suficientemente desarrollada la idea de implementación que solucione un problema sin incurrir en otro aumentando la complejidad y disminuyendo el tiempo de desarrollo, mantenimiento u tiempo necesario de proceso.
Bueno, llegan los finales y aunque no me voy a presentar para prepararlos bien y hacer mi querido resumen a conciencia, sí estoy haciendo los parciales y trabajos prácticos.
ó ¿porqué elegiría una carrera que tengo que estudiar todos los días porque en 8 años no me va a servir para nada lo que aprendí el día de hoy?
Programar es como tener hijos y los hacerlos a tu medida. Podés jugar a ser dios, que hagan todo lo que quieras y como quieras; es jugar a crear. Es un lego de bits pero con fichas ilimitadas.
Podes asumir toda la responsabilidad, la delegás a frameworks y tenés poco tiempo usas un CMS :( que hagan parte o todo el trabajo, según tus necesidades.
Jugás a la creación con código máquina o usas algún IDE.
Encontrás todas las opciones que quieras. Te gusta lo libre, maleable y en un punto muy dificil pero a niveles atómicos, usá linux. Vas a trabajar? windows. Querés algo fácil, lindo y estás dispuesto a pagar el precio: mac.
Querés jugar? programa juegos.
Sino, como nueva opción programar para celulares, web, hardware, y muchas decenas de etcétera.
Trabajar a distancia, en tu casa, en la oficina, en grupo o solo, con gente de otros países, para la tele, el diario, la música, en todos los tipos de industrias que imagines o todas las naciones que quieras.
Podés ser reconocido mundialmente e incluso tener un perfil reservado.
Está demostrado que con la llegada de internet, los informáticos son las personas mas sociables que otras áreas, de hecho todo el día lo hacen por medio de todo tipo de medios: chat, redes sociales, canales irc agrupados por especialidad, portales, etc.
Tenés una idea y lo directamente fabricás a gran escala, no hay problemas de presupuesto.
No hay límites ni fronteras, los defines tú mismo.
Las tecnologías quedan viejas, pero el conocimiento no.
(dicho de otra manera, no terminás de aprender nunca y si no hay algo inventado están las puertas abiertas para ello)
No hay límites de exportaciones como sí es el caso de otros productos.
Entre los puntos fuertes del país se destacan el transporte y la infraestructura de comunicaciones, y la disponibilidad y el uso de las TIC´s (tecnologías de la información). “De hecho, en Argentina el Gobierno ofrece muchos servicios en línea, y, del mismo modo, las empresas utilizan Internet para realizar transacciones comerciales”
Somos autocríticos, perfeccionistas, muy detallistas, inquietos. Nunca sacamos una versión definitiva.
Hay que hacer un paréntesis a los cortes de energía eléctrica o cuando estamos sin wifi; Y nos ponemos a modelar con UML, Patrones, Maquetar…
Finalmente:
SEA CREATIVO !!! Cuanto todo parezca perdido, usa la imaginación.
En los momentos de crisis: sólo la imaginación es más importante que el connocimiento. Albert Einstein
Nada mejor que plasmar la imaginación en lineas de código! :P
Hace unos años encontré un artículo de Oscar Vilches (28-08-02 http://www.inf.udec.cl/revista/edicion1/ovilches.htm), en el cual me voy a estar copiando :P, hacia los futuros colegas informáticos, orientado hacia aquellos que actualmente estudian sistemas o hayan terminado. Contando un poco acerca de la experiencia que, como informáticos debemos enfrentar al ingresar al ambiente laboral “informático” por primera vez.
No es una crítica a lo que sucede en el medio informático, sino solamente un comentario que ayuda a no desanimarse al empezar a trabajar por primera vez en éste área (comentarios que recuerdo muy muy a menudo, luego de 2 años en sistemas)
Para muchos de los que odian programar deberán enfrentarse a este terror en el inicio de su vida profesional, a hacer cosas que desde primer año de facultad los docentes afirman que no se debe hacer (y significa desaprobar en un examen) y, sin embargo, es muy habitual en el trabajo.
La imagen del ingeniero informático, sentado en un escritorio, manejando proyectos, es sólo para unos pocos privilegiados, o para personas con un grado de experiencia mayor a 5 años (el que sabe sabe, el que no es jefe).
La realidad es que cuando ingresamos al campo laboral vamos a hacer de todo, desde limpiar una pc, hasta mantener códigos de mas de 10 años de antigüedad. (aunque los últimos años ha cambiado esto por las inútiles consultoras especializadas en TI que te derivan a departamentos de sistemas en los que difícilmente hagamos mas de una tarea y bien limitada dentro de nuestros conocimientos)
Además, se enfrentarán a la idea que tiene la mayoría de las personas con relación a los profesionales de la informática. Nos creen expertos en todo lo concerniente a la computación, como desde el último truco de un macro en Word, hasta cómo hacer que un torno mecánico, conectado a un computador, moldee una nueva plantilla (esto es copiado del texto original, pero en una oportunidad me lo pidieron)
Sinceramente nunca he utilizado macros en Word, aunque tengo alguna idea de cómo funciona un torno y cosas así por experiencia de unos meses en una metalúrgica con funcionamiento de máquinas neumáticas. Sin embargo, si me prestan el manual de ambos podríamos entrar a conversar, porque esta debe ser una característica como ingeniero, ingeniárselas ante una nueva situación y no vivir de recetas de cocina para cada situación a la que nos enfrentaremos.
Estos comentarios pueden parecer decepcionantes para jóvenes que tienen aspiraciones que van mas allá de los tecnicismos, sin embargo no hay que desanimarse, si bien esta primera etapa en nuestras vidas no es muy gratificante para el espíritu ingenieril, es una muy buena escuela para tener una mejor visión para posteriorres trabajos de mayor nivel y por que no decirlo, formar nuestras propias empresas.
Este background técnico, nos permitirá tomar decisiones en base a fundamentos prácticos y no solo teóricos, finalmente, nos lleva a ser mejores profesionales. En resumen, para los que están prontos a abandonar el alma mater de la Universidad, fuerza, que todo cambio es para mejor.
Para empezar, arreglaron el tema del MySQL caido del host, a último momento del fin de semana subo el WP aunque sin modificaciones (ni logo de la web ni nada) y ahora queda empezar la semana estudiando y trabajando (y peleando con los analistas) a full.
La primer idea era hacerlo casero, pero el lenguaje que menos idea tengo es precisamente php. Y no estoy suficientemente convencido para ir hasta cuspide a comprar la bilia de php. (esto despues de haber borrado un backup con el maquetado de una semana, de puro css y jQuery)
Y así preparo los primeros post que estaré subiendo regularmente. Un poco de lenguajes de programación, marketing, cooperativismo, música, inteligencia emosional; cosas de las que puedo hablar por algunos años de lectura, estudio y experiencia. Sobre todo porque hay cosas que me hubiese gustado encontrar en internet en su momento y nunca estaban como los quería.