viernes, marzo 27, 2009

Si no estas usando un framework...

Si no estas usando un framework para desarrollar software, probablemente estés re-inventando la rueda. La única validez que tiene el proceso de "re-inventar la rueda" es para conocer como funciona. Pero si te están pidiendo elaborar un sistema realmente amplio para una empresa, con una cobertura del 70% de las operaciones, y esa empresa NO se dedica a realizar software... entonces es una seria estupidez desarrollar software sin un framework.

"Cuidad, si re-inventas la rueda, podrías terminar así..."

Un framework, es una estructura de soporte definida mediante la cual, se desarrolla y organiza lógicamente una pieza de software. Entonces, el programa, modulo o sistema en cuestión, se apoya en un framework (en el marco de trabajo) para ser desarrollado. Un framework incluirá soporte para generar programas, una serie de librerías organizadas en módulos lógicos, y un lenguaje (que se ejecuta en una maquina virtual usualmente) para ayudar a desarrollar y unificar los módulos que conformen el proyecto.
El uso de un framework, es tan obligatorio en un proyecto de grandes magnitudes, como lo son las típicas practicas de desarrollo de software:
Para los estudiantes, o novatos en el tema, permitanme dar un sencillo ejemplo:
Imaginemos por un breve momento, que se quiere construir (de acuerdo a un plano) una casa de dos plantas, para tres personas, con cochera y jardín.
Este es el problema:
construir la casa de acuerdo a las especificaciones (del plano), construirla en un tiempo planificado y con la mayor eficiencia posible.
Bien, hay un par de caminos que podemos tomar, el primero consiste en:
1. Comprar ladrillos, cemento, arena, pintura, tejas, piso cerámico, defensas, hierro, contratar mano de obra calificada, comenzar la construcción....

"Niiiiceee...."

Al menos, eso es lo lógico, ¿no? Son los pasos "normales", lo "sano".
La misma lógica es aplicable al mundo del software.... sin embargo, existen personas que rechazan esta "linea de pensamiento" y cometen errores que en el contexto del ejemplo anterior, seria:

2. Construir la casa, desde CERO (literalmente), de manera que vamos a inventar nuestro propio cemento, pintura, techo, defensas, pisos. Vamos a usar herramientas que no estamos seguros si las vamos a aprovechar y vamos a gastar en cosas completamente innecesarias... como... flamingos rosados de mármol tallados a mano importados de la India para el jardín (wtf?).

"NOT so nice. NOT AT ALL."

Y para colmo, creen que se puede realizar la casa, en el mismo tiempo que lo haría de la manera "normal". Se que para muchos lectores, esto suena ridículo, ¡¿verdad?! suena muy ridículo. Es más, seria increíble pensar, que alguien proponga soluciones así.... pero les tengo una noticia...
Este es el caso que sucede SUCEDE en las empresas, y también SUCEDE en los equipos de desarrollo.
Casi a diario, se esta perpetrando este crimen. No solo es una perdida de tiempo, sino que también es un insulto al desarrollador de software que si tiene buenas practicas (o que intenta tenerlas). ¿Saben que es lo peor? muchos cometen el error de creer que con solo usar Java o .NET (y solamente eso), ya están usando un framework suficiente para hacer un RIA (Rich Internet Application) en 3 meses. Pues déjenme decirle, que si ese fuera el caso, no existiría Spring, Struts, IceFaces, MyFaces, ASP.NET MVC, Adobe Flex, RoR, Etc...
Lo terrible es que este suceso se sigue perpetrando, y es por simple ignorancia...

"¡Que pena ser ignorante!"

Empresas, por que rayos ¿no capacitan a sus gerentes de informática?, ¿a sus arquitectos de software?, ¿a sus team leaders?, ¿Por que no escuchan las voces de los programadores, que de cara a semejantes atrocidades, alzan la voz inmediatamente y proponen el cambio?
Ya lo dije antes, pero no me molesta volverlo a repetir...
"si un equipo de desarrollo, sumergido hasta el cuello de dificultades técnicas, pretende producir software: simplemente vamos a obtener software que es REFLEJO de las dificultades, problemas, ignorancia, malos requerimientos y mala administración en los que se vio envuelto el mismo".
Instruyace, no deje de leer, no se estanque, procure estar a la par (o solo un centímetro atrás) de la tecnología, y procure, sobre todas las cosas, escuchar a sus colegas, pero a los que saben.

Pero sobre todas las cosas, por favor, si no estas usando un framework.... ya es hora de que comience a usar uno.

¿Y tu, qué frameworks usas?

Si no estas usando un framework...

Si no estas usando un framework para desarrollar software, probablemente estés re-inventando la rueda. La única validez que tiene el proceso de "re-inventar la rueda" es para conocer como funciona. Pero si te están pidiendo elaborar un sistema realmente amplio para una empresa, con una cobertura del 70% de las operaciones, y esa empresa NO se dedica a realizar software... entonces es una seria estupidez desarrollar software sin un framework.

"Cuidad, si re-inventas la rueda, podrías terminar así..."

Un framework, es una estructura de soporte definida mediante la cual, se desarrolla y organiza lógicamente una pieza de software. Entonces, el programa, modulo o sistema en cuestión, se apoya en un framework (en el marco de trabajo) para ser desarrollado. Un framework incluirá soporte para generar programas, una serie de librerías organizadas en módulos lógicos, y un lenguaje (que se ejecuta en una maquina virtual usualmente) para ayudar a desarrollar y unificar los módulos que conformen el proyecto.
El uso de un framework, es tan obligatorio en un proyecto de grandes magnitudes, como lo son las típicas practicas de desarrollo de software:
Para los estudiantes, o novatos en el tema, permitanme dar un sencillo ejemplo:
Imaginemos por un breve momento, que se quiere construir (de acuerdo a un plano) una casa de dos plantas, para tres personas, con cochera y jardín.
Este es el problema:
construir la casa de acuerdo a las especificaciones (del plano), construirla en un tiempo planificado y con la mayor eficiencia posible.
Bien, hay un par de caminos que podemos tomar, el primero consiste en:
1. Comprar ladrillos, cemento, arena, pintura, tejas, piso cerámico, defensas, hierro, contratar mano de obra calificada, comenzar la construcción....

"Niiiiceee...."

Al menos, eso es lo lógico, ¿no? Son los pasos "normales", lo "sano".
La misma lógica es aplicable al mundo del software.... sin embargo, existen personas que rechazan esta "linea de pensamiento" y cometen errores que en el contexto del ejemplo anterior, seria:

2. Construir la casa, desde CERO (literalmente), de manera que vamos a inventar nuestro propio cemento, pintura, techo, defensas, pisos. Vamos a usar herramientas que no estamos seguros si las vamos a aprovechar y vamos a gastar en cosas completamente innecesarias... como... flamingos rosados de mármol tallados a mano importados de la India para el jardín (wtf?).

"NOT so nice. NOT AT ALL."

Y para colmo, creen que se puede realizar la casa, en el mismo tiempo que lo haría de la manera "normal". Se que para muchos lectores, esto suena ridículo, ¡¿verdad?! suena muy ridículo. Es más, seria increíble pensar, que alguien proponga soluciones así.... pero les tengo una noticia...
Este es el caso que sucede SUCEDE en las empresas, y también SUCEDE en los equipos de desarrollo.
Casi a diario, se esta perpetrando este crimen. No solo es una perdida de tiempo, sino que también es un insulto al desarrollador de software que si tiene buenas practicas (o que intenta tenerlas). ¿Saben que es lo peor? muchos cometen el error de creer que con solo usar Java o .NET (y solamente eso), ya están usando un framework suficiente para hacer un RIA (Rich Internet Application) en 3 meses. Pues déjenme decirle, que si ese fuera el caso, no existiría Spring, Struts, IceFaces, MyFaces, ASP.NET MVC, Adobe Flex, RoR, Etc...
Lo terrible es que este suceso se sigue perpetrando, y es por simple ignorancia...

"¡Que pena ser ignorante!"

Empresas, por que rayos ¿no capacitan a sus gerentes de informática?, ¿a sus arquitectos de software?, ¿a sus team leaders?, ¿Por que no escuchan las voces de los programadores, que de cara a semejantes atrocidades, alzan la voz inmediatamente y proponen el cambio?
Ya lo dije antes, pero no me molesta volverlo a repetir...
"si un equipo de desarrollo, sumergido hasta el cuello de dificultades técnicas, pretende producir software: simplemente vamos a obtener software que es REFLEJO de las dificultades, problemas, ignorancia, malos requerimientos y mala administración en los que se vio envuelto el mismo".
Instruyace, no deje de leer, no se estanque, procure estar a la par (o solo un centímetro atrás) de la tecnología, y procure, sobre todas las cosas, escuchar a sus colegas, pero a los que saben.

Pero sobre todas las cosas, por favor, si no estas usando un framework.... ya es hora de que comience a usar uno.

¿Y tu, qué frameworks usas?

martes, marzo 24, 2009

Google Summer of Code Abierto Para Estudiantes!

"Logo del Google Summer of Code de este año"


Como todos los años desde el 2005, Google lanza su iniciativa para promover el desarrollo de aplicaciones Open Source y al mismo tiempo iniciar a estudiantes universitarios en el desarrollo de software en la vida real mediante este programa llamado Google Summer of Code.

  • En qué consiste?

Google abre un espacio en el cual organizaciones y empresas pueden publicar ideas de desarrollo o mejoras de software open source que desearían que se llevaran a cabo pero no cuentan con el recurso o tiempo disponible. De estas ideas se seleccionan las mas útiles o factibles y se publican para que estudiantes que se encuentran de vacaciones de verano (y aunque nosotros no tengamos vacaciones de verano, me encantaría participar) puedan inscribirse y participar en el desarrollo de dicha idea.

Por supuesto, estos estudiantes son evaluados durante periodos de tiempo establecidos para determinar que son aptos para participar en el proyecto y para determinar si realmente se dedicaran al proyecto y no lo dejaran tirado a medio camino como muchos tenemos por costumbre con la mayoría de hobbies o proyectos personales. Además, google te motiva a participar ofreciéndote una jugosa recompensa de cinco mil dolares (de los cuales quinientos van destinados para la empresa u organización participante) por haber concluido exitosamente tu proyecto, además de ganar una buena reputación y experiencia como programador y quien sabe, hasta podrían contratarte por parte de la organización dueña del software o por los mismos de Google!

  • Cómo inscribirte?
Puedes hacerlo desde la pagina oficial de Google Summer of Code, donde también encontraras mas información sobre este programa y las propuestas de proyectos en las que puedes participar. También te recomiendo que los sigas en twitter y te hagas fan de su pagina en facebook.

Entre las organizaciones (y su respectivo software) que este año han propuesto ideas de mejoras o desarrollo se encuentran Eclipse, MySql, Drupal, Debian, FreeBSD, Gimp, Gnome, Kde y Wine por mencionar a las mas conocidas.

  • Porqué participar?
Muchos de nosotros como programadores (yo me incluyo, en primera fila) hemos llegado a pensar que no tenemos la capacidad de competir o de desarrollar código que este a la altura de programadores extranjeros y posiblemente sea así en un inicio debido a la calidad de la educción superior en el país (de la cual escribiré en otro post) pero eso no es motivo para desanimarse sino mas bien para disponerse a tomar la iniciativa y aprender de estos a quienes consideramos superiores, de perder el miedo y experimentar a participar en eventos así donde, aunque posiblemente no se gane a la primera, se obtenga mucha experiencia y conocimientos los cuales te ayudaran a crecer como programador y mejorar la calidad de lo que desarrollas. Por eso te invito a que dediques el tiempo que ocupas regularmente en otras actividades y te atrevas a participar en iniciativas como esta donde aprendes realmente que es desarrollar aplicaciones en el mundo real.

(Si, lo se. Tenia ya mucho tiempo sin escribir un post. Pero volví)

Google Summer of Code Abierto Para Estudiantes!

"Logo del Google Summer of Code de este año"


Como todos los años desde el 2005, Google lanza su iniciativa para promover el desarrollo de aplicaciones Open Source y al mismo tiempo iniciar a estudiantes universitarios en el desarrollo de software en la vida real mediante este programa llamado Google Summer of Code.

  • En qué consiste?

Google abre un espacio en el cual organizaciones y empresas pueden publicar ideas de desarrollo o mejoras de software open source que desearían que se llevaran a cabo pero no cuentan con el recurso o tiempo disponible. De estas ideas se seleccionan las mas útiles o factibles y se publican para que estudiantes que se encuentran de vacaciones de verano (y aunque nosotros no tengamos vacaciones de verano, me encantaría participar) puedan inscribirse y participar en el desarrollo de dicha idea.

Por supuesto, estos estudiantes son evaluados durante periodos de tiempo establecidos para determinar que son aptos para participar en el proyecto y para determinar si realmente se dedicaran al proyecto y no lo dejaran tirado a medio camino como muchos tenemos por costumbre con la mayoría de hobbies o proyectos personales. Además, google te motiva a participar ofreciéndote una jugosa recompensa de cinco mil dolares (de los cuales quinientos van destinados para la empresa u organización participante) por haber concluido exitosamente tu proyecto, además de ganar una buena reputación y experiencia como programador y quien sabe, hasta podrían contratarte por parte de la organización dueña del software o por los mismos de Google!

  • Cómo inscribirte?
Puedes hacerlo desde la pagina oficial de Google Summer of Code, donde también encontraras mas información sobre este programa y las propuestas de proyectos en las que puedes participar. También te recomiendo que los sigas en twitter y te hagas fan de su pagina en facebook.

Entre las organizaciones (y su respectivo software) que este año han propuesto ideas de mejoras o desarrollo se encuentran Eclipse, MySql, Drupal, Debian, FreeBSD, Gimp, Gnome, Kde y Wine por mencionar a las mas conocidas.

  • Porqué participar?
Muchos de nosotros como programadores (yo me incluyo, en primera fila) hemos llegado a pensar que no tenemos la capacidad de competir o de desarrollar código que este a la altura de programadores extranjeros y posiblemente sea así en un inicio debido a la calidad de la educción superior en el país (de la cual escribiré en otro post) pero eso no es motivo para desanimarse sino mas bien para disponerse a tomar la iniciativa y aprender de estos a quienes consideramos superiores, de perder el miedo y experimentar a participar en eventos así donde, aunque posiblemente no se gane a la primera, se obtenga mucha experiencia y conocimientos los cuales te ayudaran a crecer como programador y mejorar la calidad de lo que desarrollas. Por eso te invito a que dediques el tiempo que ocupas regularmente en otras actividades y te atrevas a participar en iniciativas como esta donde aprendes realmente que es desarrollar aplicaciones en el mundo real.

(Si, lo se. Tenia ya mucho tiempo sin escribir un post. Pero volví)

domingo, marzo 15, 2009

Elecciones en El Salvador 2009

A pesar de que, usualmente, presento una apatía total por la política, estas ultimas elecciones me emocionaron mucho. Parte de la emoción fue debido a que al fin pude mantenerme al tanto de los resultados, por lo medios que a mi más me agradan... y de esos precisamente voy a escribirles brevemente en esta ocasión.

"La actividad en los medios sociales se hizo presente en estas elecciones."

De lo que les quiero comentar, y de lo que muchos en todo caso ya saben, es de la disponibilidad de datos, de la cobertura de los medios y del papel genial que la comunidad de Twitters y Bloggers han jugado, al mantener totalmente informados a prácticamente todo aquel que estuviese buscando resultados de las elecciones en Internet.

1. Twitter:
En twitter, se vivió la emoción de tener los datos en tiempo real, de al menos diez personas dedicadas constantemente a publicar informacion de cualquier medio que los canales les permitiera ver. La comunidad de Twitters se puso de acuerdo en utilizar la etiqueta #eleccion2009 para marcar toda noticia relacionada con el evento. Y para que tengan una idea de la cantidad de informacion que se genero, deberían darle un vistazo a la búsqueda de esa etiqueta en Twitter.
Así que, permitanme felicitar a los twitters que vi más activos, notificándonos cada vez que sus dedos les permitían, entre ellos y sin ningún orden en particular: @eleccion_sv2009 (cuya vida útil, esta a punto de terminar), @queith, @u2fan87 , @chero07, @drakedalfa, @jomap19, @dubsnipe, @alexanndra, @prensagrafica, @eddddysimo, @doug404 @LuChOeDu y @victor_j.

2. Cover-it-Live:
Utilizando Twitter como base, también se utilizo el servicio de "Cover it Live", para estar al tanto de los comentarios y términos claves como "ARENA", "FMLN", etc...
"Gracias @LuchoEdu por la iniciativa"

3. Twitt-radar:
También quiero felicitar a Adolfo Fitoria e Igor Guerrero por el uso de una aplicación que usa el framework de Google Aplications, y la informacion generada en Twitter, nos compartieron el Twitt-radar:

"Captura del Twitt-radar, en acción."

En lo personal, una de las iniciativas que más fue de mi agrado. Felicitaciones.

4. Sitios Web adicionales:Gracias a David Mejia por compartir estos vínculos.

5. Live Streaming:

Transmisión en vivo de TCS: http://www.esmitv.com/vivo.aspx
Transmisión en vivo de Megavision: http://megavision.com.sv/21/internettv/canal21.html
Transmisión en vivo canal 33: http://www.canal33.tv/tv/?page_id=35

Gracias a Chero07 por compartir estos vínculos.

6. ¿Que me habría gustado ver?:
¿Se acuerdan de las elecciones del Presidente Barak Obama?, Google utilizo su tecnología de Google Maps para crear un mapa que mostraba los estados de la union, coloreados segun el partido que ganaba.

"Google Maps Mashup"

¿Sería mucho pedir, que el Tribunal Supremo Electoral hiciera algo así? (Se vale soñar) También me habría gustado ver un poco más de calma entre las personas que comentan en el Cover-it-Live, no entiendo cual es el "ajolotamiento" de algunos individuos. En fin, muy emocionante el desenlace de esta campaña, también quiero mencionar el blog de Hunnapuh, del que pase muy pendiente. Y no queda más que felicitar nuevamente a todos los involucrados, e invitar a los medios masivos de comunicacion Salvadoreña, a reconocer el peso, y la importancia que las comunidades de Bloggers y Twitters tienen en la cobertura de este tipo de eventos.

Ahora ya saben para que más les puede servir Twitter ;)
Y tú, ¿que opinas de la presencia en los medios sociales (como twitter, blogger y facebook) en estas elecciones?

Elecciones en El Salvador 2009

A pesar de que, usualmente, presento una apatía total por la política, estas ultimas elecciones me emocionaron mucho. Parte de la emoción fue debido a que al fin pude mantenerme al tanto de los resultados, por lo medios que a mi más me agradan... y de esos precisamente voy a escribirles brevemente en esta ocasión.

"La actividad en los medios sociales se hizo presente en estas elecciones."

De lo que les quiero comentar, y de lo que muchos en todo caso ya saben, es de la disponibilidad de datos, de la cobertura de los medios y del papel genial que la comunidad de Twitters y Bloggers han jugado, al mantener totalmente informados a prácticamente todo aquel que estuviese buscando resultados de las elecciones en Internet.

1. Twitter:
En twitter, se vivió la emoción de tener los datos en tiempo real, de al menos diez personas dedicadas constantemente a publicar informacion de cualquier medio que los canales les permitiera ver. La comunidad de Twitters se puso de acuerdo en utilizar la etiqueta #eleccion2009 para marcar toda noticia relacionada con el evento. Y para que tengan una idea de la cantidad de informacion que se genero, deberían darle un vistazo a la búsqueda de esa etiqueta en Twitter.
Así que, permitanme felicitar a los twitters que vi más activos, notificándonos cada vez que sus dedos les permitían, entre ellos y sin ningún orden en particular: @eleccion_sv2009 (cuya vida útil, esta a punto de terminar), @queith, @u2fan87 , @chero07, @drakedalfa, @jomap19, @dubsnipe, @alexanndra, @prensagrafica, @eddddysimo, @doug404 @LuChOeDu y @victor_j.

2. Cover-it-Live:
Utilizando Twitter como base, también se utilizo el servicio de "Cover it Live", para estar al tanto de los comentarios y términos claves como "ARENA", "FMLN", etc...
"Gracias @LuchoEdu por la iniciativa"

3. Twitt-radar:
También quiero felicitar a Adolfo Fitoria e Igor Guerrero por el uso de una aplicación que usa el framework de Google Aplications, y la informacion generada en Twitter, nos compartieron el Twitt-radar:

"Captura del Twitt-radar, en acción."

En lo personal, una de las iniciativas que más fue de mi agrado. Felicitaciones.

4. Sitios Web adicionales:Gracias a David Mejia por compartir estos vínculos.

5. Live Streaming:

Transmisión en vivo de TCS: http://www.esmitv.com/vivo.aspx
Transmisión en vivo de Megavision: http://megavision.com.sv/21/internettv/canal21.html
Transmisión en vivo canal 33: http://www.canal33.tv/tv/?page_id=35

Gracias a Chero07 por compartir estos vínculos.

6. ¿Que me habría gustado ver?:
¿Se acuerdan de las elecciones del Presidente Barak Obama?, Google utilizo su tecnología de Google Maps para crear un mapa que mostraba los estados de la union, coloreados segun el partido que ganaba.

"Google Maps Mashup"

¿Sería mucho pedir, que el Tribunal Supremo Electoral hiciera algo así? (Se vale soñar) También me habría gustado ver un poco más de calma entre las personas que comentan en el Cover-it-Live, no entiendo cual es el "ajolotamiento" de algunos individuos. En fin, muy emocionante el desenlace de esta campaña, también quiero mencionar el blog de Hunnapuh, del que pase muy pendiente. Y no queda más que felicitar nuevamente a todos los involucrados, e invitar a los medios masivos de comunicacion Salvadoreña, a reconocer el peso, y la importancia que las comunidades de Bloggers y Twitters tienen en la cobertura de este tipo de eventos.

Ahora ya saben para que más les puede servir Twitter ;)
Y tú, ¿que opinas de la presencia en los medios sociales (como twitter, blogger y facebook) en estas elecciones?

Técnicas de redacción

Lee más sobre redacción y estilo, visita: http://tecnicasderedaccionyestilo.blogspot.com/.
Algunos creen que redactar es cuestión de sentarse frente a un computador o una página en blanco y hacer una lluvia caótica de ideas sin sentido. La presencia de un texto no radica en la erudición, la retórica, la verborrea o la complejidad de las palabras. Mucho menos en la redundancia, la explicativa y el abuso de argumentos lógicos que apoyen la idea central.


Redactar es todo un arte que requiere de coherencia, cohesión, claridad y sencillez.


Esto no quiere decir que hacer uso de un lenguaje culto o científico sea incorrecto. Por el contario, este tipo de lenguaje le da un toque singular al texto, pues muestra el bagaje intelectual del autor. Pero cuando se abusa de él es cuando nuestros escritos pierden toda gracia posible.
Lo mismo sucede cuando, por evitar un lenguaje rebuscado, caemos en una simplicidad escrita que evidencia una pobreza de vocabulario y un toque insípido en el texto.

En una entrada anterior comentaba acerca de la redacción y el estilo. En esta ocasión, ahondaré en las técnicas básicas para tener una buena redacción. O por lo menos, cómo tener una redacción presentable que evite que los demás pongan el grito en el cielo cuando lean nuestros textos.
Técnicas sencillas de redacción

1. Usar la estructura Nombre-Verbo-Complemento. Lo que mata el interés de un escrito es no llegar nunca a la idea central. Por tanto, las oraciones subordinadas son el peor enemigo. Trata, pues, de ejercitar tu escritura utilizando oraciones simples.



La historia/ es /una mentira encuadernada.
En esta oración, las plecas indican la división del nombre, del verbo y del complemento.


2. Puntuación. La idea del texto se pierde por la ausencia o exceso de signos de puntuación. El uso de la coma, el punto, los dos puntos, las comillas, los guiones, etc., a veces resulta complicado, pues no es fácil memorizar tantas reglas. Sin embargo, antes de redactar es recomendable dar un vistazo a las reglas principales para evitar errores de interpretación.



Estamos, aprendiendo a, escribir.

Aquí ninguna coma es válida. Sólo el punto está correcto. Si se quitan las comas se puede aperciar la idea completa de la oración.



3. Ortografía. Nada hace más desagradable la lectura de un texto que la mala ortografía. Desde una tilde mal utilizada, hasta horrores de escritura. Ante la duda consulte. Tener un diccionario a la mano cuando se redacta nunca cae mal.



Al ezcrivir, el áutor ace propió el conosimiento.

Este es un claro grito de ayuda. Además de preocupante, esta oracíón es bochornosa.


4. Sencillez. Debemos recordar que se escribe para los demás, no para uno mismo. Por ello, utilizar palabras de dominio común facilita aún más la comprensión del texto para el lector y la redacción para el autor. Sin embargo, debe tenerse cuidado de no pecar de ignorante o de abusar de erudito.



El conocimiento en plétora es purista.

Esto quiere decir: La conocimiento en abundancia es mejor.


5. Coherencia y cohesión. Un texto que no se entiende y no parece tener ir a ningún lado, es un texto basura. Evitemos las "plastas" de texto y las oraciones interminables. Es importante llevar una ilación de ideas desde el inicio hasta el final. Esto se logra escribiendo oraciones sencillas dentro de párrafos. Cada párrafo es una idea diferente, pero dependiente del párrafo anterior.


6. Evitar la redundancia. No por mucho escribir nuestro texto será más atractivo.
Esto hace que el texto pierda interés, sentido y propósito. Nos perdemos y perdemos al lector.

Al leer la obra, se leen las palabras como se les estuviera leyendo.
¿Y la idea es?
Estos son sólo algunas técnicas que se pueden poner en práctica al momento de redactar. Claro está, el dominio de una buena redacción no se logra de la noche a la mañana. Es preciso empezar con pequeños relatos para luego ir profundizando tanto en las ideas como en la extensión de los textos. Algo es cierto: la práctica hacer al maestro.
Espero les sean de utilidad.
Saluditos.




Lee más sobre redacción y estilo, visita: http://tecnicasderedaccionyestilo.blogspot.com/.

Técnicas de redacción

Lee más sobre redacción y estilo, visita: http://tecnicasderedaccionyestilo.blogspot.com/.
Algunos creen que redactar es cuestión de sentarse frente a un computador o una página en blanco y hacer una lluvia caótica de ideas sin sentido. La presencia de un texto no radica en la erudición, la retórica, la verborrea o la complejidad de las palabras. Mucho menos en la redundancia, la explicativa y el abuso de argumentos lógicos que apoyen la idea central.


Redactar es todo un arte que requiere de coherencia, cohesión, claridad y sencillez.


Esto no quiere decir que hacer uso de un lenguaje culto o científico sea incorrecto. Por el contario, este tipo de lenguaje le da un toque singular al texto, pues muestra el bagaje intelectual del autor. Pero cuando se abusa de él es cuando nuestros escritos pierden toda gracia posible.
Lo mismo sucede cuando, por evitar un lenguaje rebuscado, caemos en una simplicidad escrita que evidencia una pobreza de vocabulario y un toque insípido en el texto.

En una entrada anterior comentaba acerca de la redacción y el estilo. En esta ocasión, ahondaré en las técnicas básicas para tener una buena redacción. O por lo menos, cómo tener una redacción presentable que evite que los demás pongan el grito en el cielo cuando lean nuestros textos.
Técnicas sencillas de redacción

1. Usar la estructura Nombre-Verbo-Complemento. Lo que mata el interés de un escrito es no llegar nunca a la idea central. Por tanto, las oraciones subordinadas son el peor enemigo. Trata, pues, de ejercitar tu escritura utilizando oraciones simples.



La historia/ es /una mentira encuadernada.
En esta oración, las plecas indican la división del nombre, del verbo y del complemento.


2. Puntuación. La idea del texto se pierde por la ausencia o exceso de signos de puntuación. El uso de la coma, el punto, los dos puntos, las comillas, los guiones, etc., a veces resulta complicado, pues no es fácil memorizar tantas reglas. Sin embargo, antes de redactar es recomendable dar un vistazo a las reglas principales para evitar errores de interpretación.



Estamos, aprendiendo a, escribir.

Aquí ninguna coma es válida. Sólo el punto está correcto. Si se quitan las comas se puede aperciar la idea completa de la oración.



3. Ortografía. Nada hace más desagradable la lectura de un texto que la mala ortografía. Desde una tilde mal utilizada, hasta horrores de escritura. Ante la duda consulte. Tener un diccionario a la mano cuando se redacta nunca cae mal.



Al ezcrivir, el áutor ace propió el conosimiento.

Este es un claro grito de ayuda. Además de preocupante, esta oracíón es bochornosa.


4. Sencillez. Debemos recordar que se escribe para los demás, no para uno mismo. Por ello, utilizar palabras de dominio común facilita aún más la comprensión del texto para el lector y la redacción para el autor. Sin embargo, debe tenerse cuidado de no pecar de ignorante o de abusar de erudito.



El conocimiento en plétora es purista.

Esto quiere decir: La conocimiento en abundancia es mejor.


5. Coherencia y cohesión. Un texto que no se entiende y no parece tener ir a ningún lado, es un texto basura. Evitemos las "plastas" de texto y las oraciones interminables. Es importante llevar una ilación de ideas desde el inicio hasta el final. Esto se logra escribiendo oraciones sencillas dentro de párrafos. Cada párrafo es una idea diferente, pero dependiente del párrafo anterior.


6. Evitar la redundancia. No por mucho escribir nuestro texto será más atractivo.
Esto hace que el texto pierda interés, sentido y propósito. Nos perdemos y perdemos al lector.

Al leer la obra, se leen las palabras como se les estuviera leyendo.
¿Y la idea es?
Estos son sólo algunas técnicas que se pueden poner en práctica al momento de redactar. Claro está, el dominio de una buena redacción no se logra de la noche a la mañana. Es preciso empezar con pequeños relatos para luego ir profundizando tanto en las ideas como en la extensión de los textos. Algo es cierto: la práctica hacer al maestro.
Espero les sean de utilidad.
Saluditos.




Lee más sobre redacción y estilo, visita: http://tecnicasderedaccionyestilo.blogspot.com/.

miércoles, marzo 04, 2009

Pruebas de Uso (Usability Test)

Supongamos que estas trabajando en un software, por los últimos... cuatro o cinco meses. Y tienes que entregar un producto terminado en dos semanas (tu deadline es en dos semanas).
Resuelves bugs, tu código esta cubierto (Code Coverage), tu software pasa las pruebas unitarias (Unit Testing), y además, pasa las pruebas de deploy ("Deployar" como escuche mencionar alguna vez) y de pronto, algo realmente importante surge en tu mente, algo que tienes ahi en tu cráneo desde el principio...
¿Es usable mi programa?
Rayos!, esa, si que es una pregunta muy importante, no solo porque tienes que saber:
¿Quien usa mi programa? o ¿Cuanto van a usar mi programa?
... para ver si realmente lo que hiciste es útil. No, no solo es por eso. Es importante, debido a la simple y sencilla razón, de que el cliente o usuario final, es la razón, propósito y motivo ulterior por la que estas desarrollando software, y TU software (o el software que estas desarrollando) DEBE (si, DEBE) facilitar la vida del usuario final de la aplicación.

Que este sea el mantra de esta semana:
"Mi aplicación deberá facilitar la vida del usuario final."
La manera para asegurarte de que este mantra se cumpla lo máximo posible es utilizando las Pruebas de Uso. En el sentido técnico una Prueba de Uso consiste en realizar una prueba de "caja negra" a tu software. Es decir, observar a las personas que van a usar el producto, REALMENTE usándolo para descubrir errores y ÁREAS de mejora.

"Google realiza pruebas de uso, para conocer que áreas de una pagina son las que mas son 'visitadas' por el cursor (esto también es conocido como HeatMap)"

Suele ser de caja negra, porque no importa lo que hace en el fondo el sistema, sino la forma. Generalmente una prueba de uso, medirá que tan bien responden los usuarios en cuatro áreas: eficiencia, exactitud, recuerdo o familiaridad (recall), y respuesta emocional...
  • Rendimiento -- ¿Cuanto tiempo y cuantos pasos se requieren para que una persona realice una tarea básica? (Ordenar Productos, Buscar, etc).
  • Exactitud -- ¿Cuantos errores realizaron las personas? (Fueron errores fatales, recuperables, etc).
  • Recuerdo-- ¿Que tan bien se recuerda el uso del programa, después de largos periodos de no utilizarlo?
  • Respuesta Emocional -- ¿Como se siente una persona al completar una tarea? ¿Estresada, Confiada, Emocionada?
"Es necesario conocer que piensa el usuario final del software que usara"

¿Fácil no? ¿Ves a donde vamos con la implementar de una Prueba de Uso? Con estas pruebas, nos estamos asegurando que:
  1. No estas perdiendo tu tiempo (Codificas lo que realmente se necesita)
  2. Facilitas la vida del usuario final (Diseñar buenas GUI)
  3. Tienes una retro-alimentación constante (Alimentas el proceso de desarrollo con criticas constructivas y mantienes los pies en la tierra)
  4. Se mantienes una participación ACTIVA y proactiva del usuario y los developers (o el equipo de desarrollo).
Y definitivamente, es algo que quieres estar haciendo cada quince días o un mes como máximo, no es necesario que cien usuario prueben constantemente el software, uno siempre es mejor que ninguno. A continuación, les describo la mas simple Prueba de Usabilidad que se puedan imaginar:
  • Eliges un usuario final (operativo, gerencia, financiero, etc)
  • Se aísla al usuario, y se le presenta el software.
  • Se le asigna una o un par de tareas a realizar en el sistema.
  • Se observa al usuario resolviendo la tarea.
  • Se pregunta al usuario que piensa de la tarea (¿cuando esta en el proceso?, ¿como cree que puede mejorarlo?)
  • Cuando el usuario termina la prueba (si la termina sin que le de un ataque cardíaco, por la frustración), se le pregunta lo siguiente: ¿Como se siente con respecto a la tarea? ¿Que recuerda del proceso? etc...
  • Repita el proceso, con los usuarios aislados (siempre es mejor, probar a un solo usuario, que a varios para las Pruebas de Uso) y evalué en base a los resultados de las pruebas anteriores.
En el blog de Robin Good, se puede encontrar en detalle una introducción al método "A/B Split Testing", les presento un extracto:

"A/B split testing

Por Lisa Halabi

A partir de cualquier estudio de usabilidad de sitio web, generalmente se encuentran un número de problemas de usabilidad. A menudo puede suscitarse un debate dentro de una organización para hallar la solución a cada problema, sin que nadie conozca realmente la solución óptima. En vez de dejar que prevalezca la opinión de la persona que grita más, una mejor opción puede ser probar dos soluciones en un entorno en vivo. Aquella que tenga el mejor rendimiento es claramente la solución superior. ¡Bienvenido al A/B split testing! ... click aquí para leer mas."

Aquí la clave (resaltada en negritas) es no dejar que prevalezca la opinión del que grita mas, sino la mejor opción, pero para el usuario.


Steve Krug en su libro Don't Make Me Think!, en el capitulo nueve, plantea una serie de aclaraciones sobre las Pruebas de Uso, que toda persona que este encargada de crear software debe de leer, pueden encontrar el capitulo 9 (en Ingles) de la primera edición de este genial libro dando clic aquí.

Espero, sinceramente, que la próxima vez que estén en un proyecto de software, que se preocupen constantemente, en la opinión del usuario final, final, final (el que realmente usara tu software todos los dias, para hacer su vida mas fácil). Para que de esta forma, realmente estés produciendo software enfocado al uso o a la "usabilidad".

Saludos!

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...