domingo, 31 de enero de 2010

Programación por Capas en C#.NET

Bueno, despues de haber publicado mi presentación de Aplicaciones Distribuidas, varias personitas me solicitaron publicar un ejemplo de como hacer una aplicaciòn distribuida. Este par de videos son un ejemplo muy ràpido, no muy ortodoxo, de lo que podrian hacer para iniciar el aprendizaje de aplicaciones distribuidas en Web.

Lo hice alguna vez para mis alumnos, sabran disculpar los errores, cosas de grabar en vivo :P.
En fin, espero que los anime a aprender desarrollo por capas y además para quienes no saben .NET que se animen a aprenderlo después de ver lo fácil que es.

Quienes no se han visto la presentaciòn, lo recomiendo antes de ver los videos!

Que lo disfruten y les resulte de utilidad.



Notas al post (2010/04/30):

He visto varias personas usando esto para construir aplicaciones, me alegra mucho pero es importante que recuerden 2 cosas.

1. El ejercicio es didáctico, el Webservice no es obligatorio, es un escenario de clase para enseñar el tema de webservices, siempre va a depender del proyecto y sus necesidades el ver si hay o no que construirlo.
2. Cuando estamos consultando en el video no estamos retornando entidades a la capa de presentación, esto debido a que eran videos de apoyo para mis alumnos y no alcanzamos a completar el cambio y en la construcción del acceso a datos utilizamos una lista que puede cambiarse por el uso de la palabra reservada params, pero la verdad el temario de la materia nos hizo quedar en cosas básicas, por lo que estas observaciones me resultan muy importantes. Aquí pueden descargar el ejercicio con las correcciones que estoy indicando.

Esten pendientes, pronto publicaré él ejercicio en VS 2008 y con las correcciones indicadas aqui.

sábado, 16 de enero de 2010

Mi desconferencia en Barcamp Cali

Bueno este ha sido un gran olvido, prometi publicar mi desconferencia después del Barcamp y heme aqui, apenas después de un mes haciendolo, pero bueno, lo importante es que ya esta.

En ella hay pocas cosas nuevas, algunas de ellas son las mejores partes de mis presentaciones sobre ingenieria de software, y en realidad fue muy divertido darla en Cali, la gente muy atenta, nada mejor para sentirse tan bien.

En la parte inferior les dejo algunas frases que se me quedaron por fuera de la presentación por que quedaba muy larga, muchas de ellas cosas que dije durante la desconferencia. :)



El software es uno de esos elementos de tecnología que se encuentra presente en casi todo. Las necesidades de desarrollo, evolución, mantenimiento y migración de productos de software, es una tarea que cada vez requiere de más personal capacitado, personal que pertenezca a las empresas industriales, comerciales y demás, a grandes empresas donde probablemente la mayoría quiere pertenecer ¿Y que pasa con las empresas de tecnología?

Diariamente el mercado sigue demandando por personal del área de sistemas en todos los lugares del mundo. La escasez de profesionales, de profesionales capacitados, crece a pasos agigantados y la desmotivación por aprender sobre esto y continuarse capacitando después de obtener un titulo profesional, es abrumadora.

La tecnología continua su avance desmedido dejando atrás a miles de profesionales del área, cuyo conocimiento técnico en pocos años es obsoleto.

Razón por la que no es de extrañarse que los procesos de selección actuales sean tan exigentes. Es así como tenemos grandes empresas con escasez de personal capacitado, o con un alto número de empleados desactualizados en tecnología, por que de hecho a una gran mayoría solo les interesa conservar un buen trabajo en una buena empresa, o ascender a cargos superiores y en la mayoria de los casos lo que se piensa es que “ya se contratará a alguien que lo haga”, un terceroque probablamente provee ese servicio al tener un mayor nivel de conocimiento, sin embargo gratis no es, ¿verdad?

De esta manera nacen cada día nuevas empresas de software, o entusiastas que sin necesidad de un titulo profesional tienen mayores y mejores conocimientos que muchos en el ámbito empresarial. El software resulta para muchos una fuente sustentable de trabajo, pero no todos se preguntan…


¿Por qué tienen que preocuparse por hacer software de calidad?

Podríamos incluso cuestionarnos ¿Cuántos tienen idea que significa la calidad de software? Veámoslo de este modo, nadie en su sano juicio intentaría ser médico solo por que en internet están los procedimientos descritos o por que fácilmente puedan acceder a algunas de las herramientas usadas para ejercer esta profesión, tampoco nadie con algo de cordura, intentaría construir edificios por tener la habilidad para manejar una herramienta de planos arquitectónicos.

Diferente es cuando se habla de tecnologías de software y hardware, la mayoría de personas piensan que con conocimientos básicos puede ejercerse esta profesión sin problema alguno. Un titulo profesional de Ingeniero de Sistemas, pasa a verse más como un formalismo que garantiza que ganarás más dinero, no necesariamente que lo harás mejor.

Algunos desprevenidamente piensan, que en su aprendizaje empírico generan nuevas teorías acerca de cómo deberían ejecutarse los procesos para realizar software; desprevenidamente también olvidan que alguien ya lo pensó una vez, y que la ingeniería de sistemas como profesión no es un simple acto espontaneo, si no más bien producto de darle solución a una necesidad que no es nueva, viene de muchos años atrás.

Quizá la ingeniería de software no tiene tantos años como la física, matemáticas o arquitectura, pero créanme, tampoco se la inventaron ayer.

Y muchos, profesionales o no, siguen ignorando, evadiendo o criticando su aplicación, sin entender los riesgos que eso conlleva.

Cometiendo vez, tras vez, los mismos errores que muchos cometieron hace ya muchos años; ofreciendo “el mismo” trabajo a una tarifa más baja, yendo inconscientemente en detrimento de la calidad de vida de muchos profesionales calificados, que son contratados cada vez por menos dinero por empresas que deben abaratar su mano de obra para poder competir en el mercado.

Momento! Si, dije “el mismo trabajo”, pero no siempre con la misma calidad…o la que debería, y tampoco estoy diciendo que los profesionales titulados lo hagan mejor, solo que en realidad “deberían”.
El principal problema que pienso que eso acarrea se resume en un par de frases que escuche muchas veces a un par de amigos muy queridos

¿Para qué complicarnos, si podemos hacerlo fácil? y Nunca hay tiempo para hacerlo bien, pero siempre hay tiempo para hacerlo dos veces.

Si usted no conoce sobre ingeniería de software, le invito a desaprender e intentar ver las cosas desde una nueva perspectiva, si la conoce, le invito a ayudarnos a verla desde donde merece ser vista.

Recuerde, que no está sugiriéndosele ser un ingeniero titulado, el mensaje que se trae aquí es que mínimamente entienda de que se trata lo que hace, si es que desea hacerlo profesionalmente.

No pretendo compartirles en 15 minutos (ahora en un post) qué es ingeniería de software, solo dejarles algunas inquietudes.

La manera más fácil de entender el proceso de construcción de software es compararlo con la construcción de algo más intuitivo para nosotros, de aquí que sea común presentar símiles con la Ingeniería Civil. Sin embargo no hay por que olvidar las diferencias.

Construir una pared es algo que puede calcularse, necesita un cierto número de materiales y personas que teniendo una habilidad similar podrían construirlo en un tiempo promedio. Pensar en lo necesario para construir una pieza de software no es algo tan intuitivo, inicialmente no sabemos cuantas líneas de código tomará construirlo, y siempre dependerá en gran medida de las habilidades de a quien se le asigne, el tiempo necesario para su construcción.

Luego de eso será difícil de comprobar si quedo bien construida o cuales serán las posibles fallas a presentar, ya que a diferencia de una pared, una pieza de software podría ser usada en diferentes tipos de sistemas.


El software es un producto intangible, es por esta razón que su construcción es tan difícil de medir en términos de tamaño o tiempo.

Ahora imagínense esto, que tal que intentáramos construir un edificio de unos 10 pisos, sentándonos a hablar sobre ello y luego poniendo manos a la obra! ¿Suena loco verdad? ¿Qué deberíamos hacer primero?

En efecto! Pensar en cuantos somos, que habilidades tenemos, que recursos necesitamos, en cuanto tiempo queremos que esté construido, en que terreno vamos a construirlo y como nos gustaría que se viera cuando todo este terminado. Sin embargo, seamos francos, ¿cuantos lo hacemos? u otra pregunta aun mejor ¿Cuantos queremos hacerlo, pero preferimos no perder un cliente y perder la cabeza viendo luego como hacemos para cumplir algo que no estuvo bien planificado? Me atrevo a decir, que la mayoría.

Muchos culpan a los ingenieros de no cumplir promesas, una vez en una conferencia de Willy Marroquin le escuche decir algo sobre que la gerencia ya no cree en IT por que manejamos los principios Maquiavelicos: miente, engaña y confunde, en realidad escucharlo y en su forma de realizar las charlas que a mi tanto me gusta, es muy gracioso, pero si uno reflexiona, es más bien un tanto ofensivo. ¿De verdad tenemos la culpa? ¿Toda? ¿Acaso la gente para que construimos software no deberia estar enterada de cuales son las tareas que implica ese proceso para ser consecuente con los tiempos, exigencias y para saber cual es el rol que deben desempeñar en el?

En realidad de eso se trata esta charla, no solo de jalonear un poco la conciencia de la gente que dice que se dedica al software, si no tambien de que la gente del común, que directa o indirectamente participa en ello, sea conciente de que saber de como se realiza todo esto que cada vez afecta más directamente sus vidas, en especial es sus espacios laborales, entienda que las mejoras a los procesos, las automatizaciones y el que los sistemas cada vez apunten más certeramente a resolver una necesidad, tambien los involucra y tambien deberian estar concientes de que obtener calidad para sus propios productos de software es algo de lo que deben ser participes más activamente.

Finalmente a las personas que se dedican a esto, quisiera invitarlos a tener más pasión por el tema, creanme, y no lo aprendi de la noche a la mañana ni creo que haya terminado de aprenderlo, pero toda esa teoria que conocemos es mucho más que teoria, eso si, necesita disciplina y madurar los procesos que ejecutamos para poder aplicarlos coherentemente y que en vez de entorpecer o aumentar la carga laboral como muchas veces nos limitamos a verlo, nos lleve a ser altamente productivos y socialmente responsables con la calidad de los productos que construimos como Ingenieros de Software.

Como hacer presentaciones

Bueno, decidí publicar este post debido a que a veces recibo muchas preguntas sobre como deberían ser las presentaciones. Pues bien, he de confesar que simplemente no se como deberian ser, la mayoría de cosas que hago por placer las hago por que algún día me gustó, o lo aprendi de alguien y decidí hacerlo y ponerle mi propio estilo, pero eso no me hace ni mucho menos, gurú de nada, lo que quizá si puedo intentar, es compartirles un poco de lo que pienso cuando voy a hacer una presentación, y es por eso que aquí les dejo algunas ideas personales.

Para quienes se preguntan de donde son las imagenes, la mayoría son de Microsoft Office Online, que puede accederse a través de cualquiera de las últimas versiones de Power Point a través de la opción Insertar Imagenes Prediseñadas. Espero les resulte de utilidad, y pues que nos dejen aquí tambien sus ideas y comentarios para quienes quieran saber más del asunto.

Cheers :)

domingo, 10 de enero de 2010

Empezando el 2010

Quien pensaría que uno empezaría un nuevo año con recuerdos de uno anterior? Pues bien, después de mucho pensar en mi primer post del año alguien muy especial para mi, me dió una señal que me recordó el momento en que mi vida empezó a cambiar. Esa señal es la imagen que sigue, mi regalo de cumpleaños, del ser más hermoso del planeta, “Diosito”.

IM000728

Este fue mi regalo hace 3 años, la tome desde mi ventana en la oficina, un mes antes de que mi vida comenzara a cambiar. En ese momento cursaba en EPM una convocatoria en EPM Aguas, una convocatoria para mi propio cargo, que ejercia en el rol de contratista, por cosas de la vida o diria yo de los sicólogos, no me la gané, pero si se la ganó alguien muy especial para mi, mi mejor amiga Bibiana Montoya. Fue una mezcla increible de sentimientos, de dolor y alegría, estar en EPM siempre fue su sueño, para mi una necesidad en ese momento de mi vida. Fue un momento difícil, llegar a mi casa y desplomarme en los brazos de mi mamá para decirle que “no lo habiamos logrado”, y quien lo diría, ese fue el comienzo de una serie de aventuras que hoy me tienen en donde estoy.

Quizá el mensaje del arcoiris solo era una premonición, una forma de darme esperanza, de dejarme una marca que me recordara que la tormenta siempre pasa y que puede dejarte cosas muy bonitas.

Bien, como para no alargarme, al siguiente mes abrieron convocatoria interna para el área de Investigación y Desarrollo en mi empresa, yo no estaba segura de no saber mucho de nada, pero mi jefa Sandra, en quien yo confiaba como a nadie me dijo, “Dale click” y así fue como resulte presentandome, sin mucha fe por los ultimos hechos, finalmente fui llamada a ser parte del equipo en Abril de ese año. La entrega de mi puesto me dejó un regalo muy especial, Anny Pino, una muy buena amiga con la que he vivido cosas muy bonitas y tiempos muy dificiles, y con quien a hoy revivo nuestra bonita amistad.

Llegue al mundo que me habia soñado, estar haciendo software y no solo dando mantenimiento, aprendiendo a hacer Ingenieria de Software, ya que hasta el momento habia estado soñandomelo mientras estudiaba la especializacion, pero no lo aplicaba. Entre las dificultades que suelen presentarse en equipos nuevos y con tan altas espectativas salimos adelante, aprendí muchisimas cosas a nivel personal y profesional, conocí y adoré profundamente a las personas que tenia a mi alrededor, en especial a Luis mi nuevo jefe, mi arquitierno Manuel y mi compañerita de lucha Maribel.

Pasó así 1 año y 3 meses, aprendiendo de lo que se hace y no se hace, aprendiendo nuevas tecnologías, estudiando, investigando, creciendo aceleradamente, asumiendo la nueva etapa en que mi querida empresa habia sido comprada por otra, de un estilo y formas sencillamente distintas.

Asi, adicioné a mis clases en el Pascual, más clases, esta vez en el Poli, un semestre bastante dificil, de algun modo no muy bueno, pero se sobrevivió.

Un día me enviaron a Bogotá a un proyecto de Inteligencia de Negocios, al cual debia apoyar, el día que regresaba me contaron que nos cambiaban de jefe, yo diria que eso marco un hito, a mi me dolio al punto de las muchas lagrimas e intentos por ser escuchada, en ese momento grite (virtualmente) al mundo que quería buscar empleo. Alguien respondio mi llamado, Rubi, :) alguien a quien admiro muchisimo.

Aunque a los pocos dias mis animos cambiaron, quice escuchar a la empresa donde Rubi me habia recomendado, Intergrupo, un lugar al que siempre le tuve recelo, más por lo que la gente decia que por que yo supiera algo al respecto. Finalmente pase el proceso de selección, ahora debia decidir que hacer, cuando me dijeron en mi trabajo que era lo que queria, solo dije una cosa, no quiero más dinero solo quiero ser Lider de Desarrollo, me dijeron que esperara, y asi lo hice, la respuesta ni por educación llegó y termine aceptando la propuesta de Intergrupo que me cautivaba muchisimo, por fin mi oportunidad de demostrar que podía ser Arquitecto de Software.

Llegué a IG con todas las ganas de surgir, un proyecto dificil me sobrevenia, pero nada importaba, estaba decidida a trabajar muchisimo por que me vieran como Arquitecto, mi cargo era Diseñador, en el ejerci otros roles, como Desarrollador y Lider Tecnico, y por cosas de la vida Cuasi Arquitecta. El conocimiento me daba fuerza y me hacia sentir bien a pesar de lo dificil de la situacion, lo entregué todo… y más. Seguí con mis clases, el Pascual, el Poli y no bastandome, asesorías de tesis de grado. Además estaba mi activa vida virtual en la que empezaba mi proyecto Avanet.

Terminé por reventarme la existencia, en IG las cosas se hicieron cada vez más dificiles a razón de las muchas responsabilidades que asumi y que luego simplemente me delegaban por tener el conocimiento, me desestabilice, mental y fisicamente, y por no querer estar más padeciendo esa situación. Entonces llegó la luz, me llamaron de una buena empresa, lastimosamente no al mismo cargo, pero evidentemente si a una gran mejora en mi calidad de vida, y no en dinero, si no en tranquilidad. Bajo la situacion en la que me encontraba una opción así merecia ser más que considerada, así fue, y fue tomada.

Esta semana cumplo un mes en mi nuevo trabajo, mi calidad de vida es sencillamente distinta para mejor, quienes me conocen saben que sacrifique muchisimas cosas por tener esta tranquilidad. Ahora estoy aprendiendo de un mundo que conocía como contratista y que ahora estoy conociendo en su interior, profesionalmente representa volver 3 años atras pero tambien representa poner todo ese conocimiento de estos 3 últimos años y todo lo que ahora se hacer a disposicion de la mejora de la que ahora es mi empresa, en donde me siento ya en casa y donde espero permanecer algunos años, dejando mi marca alli, es lo unico que me he prometido.

Pues bien, esto resulto algo intimista, a quienes preguntan por que hablo de mi, es por que no me da miedo ser yo, me agrada mi yo interno a pesar de sus sube y baja, y me agradan sus sueños, valores y las cosas que se propone hacer en la vida.

Hoy tengo muchas ganas de seguir adelante, de hacer cosas, de continuar mis proyectos y de seguir viviendo mi ocupada vida mientras lo aguante, o por que no, mientras algo mejor me distrae <3 :)

Este es mi 2010, una frase que siempre digo y que me dijo mi madre una vez, es que “El hierro se forja al fuego”, es el momento de ver que es lo que se ha forjado, este es el momento de ser yo misma.

:)

Quien no ha afrontado la adversidad, no conoce su propia fuerza.

Benjamin Jonson