viernes, enero 21, 2011

¿Por qué un Enterprise Service Bus (ESB)?

Tomado de: Por que un enterprise service bus

Por qué un Enterprise Service Bus (ESB)?
Juan José Vázquez

Se ha hablado mucho en los últimos años sobre los ESB, los web services y el fenómeno SOA en general. Gartner pronosticó que SOA sería usado en más del 80% de los procesos de negocio y aplicaciones críticas que se desarrollen en 2010. Estamos en 2010 y mi percepción es que, al menos en España, aún no hemos llegado a esos porcentajes en lo que se refiere al despliegue de soluciones SOA. Lo que sí es cierto sin embargo es que el ascenso de SOA y los ESB como solución tecnológica parece imparable en la mayoría de organizaciones y sectores.

Cuando una tecnología o un cierto paradigma se pone de moda, como ocurre con SOA, tenemos que mantenernos alerta ante la tentación de aplicarlo sin más en el contexto de mi negocio sin preguntarnos si es realmente lo que necesitamos. SOA implica analizar globalmente las necesidades del negocio para dar una respuesta tecnológica coordinada, reutilizable y que permita por tanto ahorrar en costes de desarrollo. Implica pensar en la evolución tecnológica de mi organización en el medio y largo plazo evaluando cuáles son mis necesidades de negocio actuales y cuáles serán en los próximos 10 o 20 años. Si nuestra única preocupación es el corto plazo, probablemente debamos considerar enfoques de desarrollo más tradicionales, que aunque resulten menos escalables, nos darán una respuesta rápida a los retos de hoy.
Enterprise Application Integration

Dicho esto, hay que hacer notar que la complejidad de las organizaciones es cada vez mayor. Caminamos hacia un modelo de organización sin barreras que se comunica a través de distintos canales de información y datos sobre un conjunto heterogéneo de sistemas de información operacionales que deben permanecer integrados para dar una respuesta conjunta a las demandas del negocio. No obstante, cada departamento o equipo de trabajo debe poder evolucionar tecnológicamente acorde a sus propias necesidades sin limitaciones impuestas por la visión integrada de la organización. Los responsables de sistemas de información deben pues asumir que es necesario mantener intacto el doble compromiso de evolución tecnológica para el negocio y la integración de los sistemas.

No es posible tener un único super-sistema operacional, pero igualmente, los sistemas no pueden permanecer aislados. Necesitan por un lado ser autónomos y por otro lado permanecer federados. Pensemos por ejemplo en el negocio sobre Internet o cloud computing. Es verdad que hoy en día es posible comunicar espacios de trabajo sobre redes WAN o VPN pero cada vez es más necesario poder establecer dichas comunicaciones más allá del firewall por ejemplo con partners o proveedores. Para un administrador de sistemas puede resultar un verdadero reto pasar a través del firewall cualquier protocolo y formato. Ante este escenario, se demandan nuevas soluciones tecnológicas que permitan la ubicuidad del negocio sin comprometer cuestiones como la seguridad o la calidad del servicio (QoS).

La competitividad y los nuevos retos del negocio hacen indispensable la innovación tecnológica. La innovación se traduce en la proliferación de sistemas de información que a menudo degenera en un estado de entropía tecnológica. La respuesta ante dicha entropía no puede ser la renuncia a la innovación sino que debe dar pie a abordar seriamente el problema de la integración de los nuevos sistemas con los sistemas legados, lo que se denomina comúnmente EAI o Enterprise Application Integration.

El EAI es el intercambio sin restricciones de datos y procesos de negocio entre cualquier aplicación y fuente de datos existente en la empresa. A un nivel básico, las arquitecturas de integración inicialmente implementadas en la empresa han sido:

* Punto a Punto: cada par de sistemas se integran atendiendo únicamente a sus requerimientos particulares. FTP, RMI o Remoting han sido protocolos típicamente empleados en llevar a cabo este tipo de integración.
* Base de Datos: a un nivel muy simple, una base de datos puede establecerse como unidad central de intercambio de datos entre sistemas e implementar por tanto un modelo de integración básica.

Estas dos arquitecturas, probablemente por su simplicidad y bajo coste aparente, siguen siendo hoy día la respuesta mayoritaria al problema de la integración en la empresa. Sin embargo, a medida que la complejidad tecnológica aumenta y las integraciones punto a punto se suceden, se evidencia una necesidad de mantenerlas controladas, administradas y gestionar su aprovisionamiento. Para atender a esta necesidad, se han sucedido nuevas respuestas al problema de la integración necesariamente más sofisticadas y ambiciosas:

* Hub-and-Spoke: todos los sistemas se conectan a un punto central o hub como en el caso de Microsoft BizTalk. A diferencia de la integración punto a punto, los sistemas se conectan al hub a través de conectores ligeros muy independientes de la tecnología particular de cada solución. El problema es que este punto central se convierte en extremadamente importante para la organización. Un fallo en el hub podría comprometer todos los procesos de negocio de la empresa.
* Enterprise Message Bus o broker de mensajes: en este caso no hay un punto central sino que los conectores están desacoplados gracias al intercambio de mensajes a través de un broker como el de IBM Websphere MQ (WMQ), Microsoft MSMQ o Apache ActiveMQ.

Enterprise Service Bus

Finalmente, comentaremos la arquitectura que se está imponiendo y que podría decirse resulta la más fiel implementación de SOA: el ESB o Enterprise Service Bus.

Un ESB parte de la idea de desacoplamiento introducido por el broker de mensajes incorporando una definición abierta de la forma de integración entre consumidores y publicadores de servicios. Un ESB usa WSDL y XML, estándares abiertos e interoperables, sobre una capa de transporte, típicamente HTTP. De esta manera los conectores no definen la implementación sino la capa de transporte y una interfaz de servicio. En el caso de un broker de mensajes los consumidores y publicadores de servicios asumen cierto conocimiento sobre los tipos de mensajes intercambiados y la tecnología empleada como es el caso de JMS o MSMQ.

Por consiguiente, un ESB puede distribuirse a lo largo de la organización, no necesitando un punto central de integración, y permitiendo la interoperabilidad entre sistemas implementados en las más diversas tecnologías. Las características básicas que debe presentar un ESB son las siguientes:

* Enrutamiento y redireccionamiento de mensajes.
* Estilo de comunicación síncrono y asíncrono.
* Multiplicidad de tipos de transporte y protocolos de enlace.
* Transformación de contenido y traducción de mensajes.
* Orquestación y coreografía de procesos de negocio.
* Procesamiento de eventos.
* Presencia de adaptadores a múltiples plataformas.
* Herramientas de diseño de la integración, de implementación y despliegue.
* Características de garantia de la calidad del servicio (QoS), como transaccionalidad, seguridad y persistencia.
* Auditoría, registro y métricas.
* Gestión y monitorización.

Como ejemplos de ESBs podemos nombrar Sonic ESB, Oracle Enterprise Service Bus, como ESBs comerciales, y Apache ServiceMix o Mule como implementaciones open source. El caso de ServiceMix es especialmente interesante por su alto grado de adecuación a estándares, sumando a los propios de un ESB como XML y WSDL, otros propios del universo Java como JBI (Java Business Integration) y OSGi.
Conclusión

La necesidad de un ESB surge de la complejidad de las organizaciones que deben coordinar e integrar sus procesos de negocio, sistemas operacionales y datos sin renunciar a la innovación tecnológica imprescindible para ser competitivos. Un ESB es la implementación de SOA, una arquitectura que permite mantener integrados los sistemas, nuevos y legados, en un estilo completamente distribuido e interoperable.

¿Por qué SOA?

Tomado de: Url Original
Por qué SOA?
Juan José Vázquez

En un post anterior hemos discutido sobre las ventajas que aporta un Enterprise Service Bus como implementación de SOA (Arquitectura Orientada a Servicios) en la organización. Sin embargo, previo a la decisión de desplegar un ESB en la compañía cabe plantearse por qué necesitamos SOA en nuestra implementación de los procesos de negocio.

Para entender qué ventajas aporta la arquitectura SOA tenemos que hablar del concepto de Coste de Propiedad o TCO (Total Cost of Ownership). El TCO es una estimación financiera que ayuda a los consumidores y gestores a determinar cuáles son los costes directos e indirectos de un producto o servicio. Es decir, independientemente del precio de un producto o servicio, debemos plantearnos cuáles son los costes de renovación, mantenimiento o incluso ecológicos y sociales ligados a la adquisición de dicho producto o servicio. En la industria del hardware y del software es particularmente importante considerar cuáles van a ser los costes implicados en la integración del nuevo desarrollo o producto adquirido con nuestros sistemas previos. Es decir, cómo de fácil o difícil será el encaje del nuevo sistema y de los futuros en la nueva configuración del mapa de sistemas.
Los enemigos de la integración

Más concretamente, en la industria del software, los dos grandes enemigos de la integración son el acoplamiento y la no adecuación a estándares. Se dice que un sistema está fuertemente acoplado cuando resulta muy complicado o incluso imposible modificar alguna de sus partes sin que no resulten afectadas las demás. Es decir, cada módulo o subsistema conoce y necesita demasiada información del entorno en el que opera, resultando por tanto poco autónomo y muy dependiente. En términos de integración, cuanto más acopladas estén las distintas partes de un sistema más difícil resulta integrarse con alguna de ellas sin tener que hacerlo con las demás o con el sistema al completo.

Pensemos por ejemplo en un escenario de fusión de empresas. Si los sistemas de las empresas que se fusionan presentan un acoplamiento bajo resultará más sencillo proceder a un intercambio de datos, por ejemplo de clientes o ventas, de forma gradual y sin traumas. Los dos sistemas podrían estar conviviendo durante mucho tiempo participando de forma transparente en los procesos de negocio. Por el contrario, si los sistemas están fuertemente acoplados la convivencia será prácticamente imposible implicando la toma de partido por uno de los sistemas. Esto último sin embargo suele plantear un importante reto en términos de adecuación de los datos y procesos embebidos en el sistema que desaparece en el sistema definitivo. Estos proyectos de fusión suelen resultar muy complejos, traumáticos y costosos, hasta el punto de generar caídas en el servicio con la consiguiente insatisfacción de empleados y clientes.

Como comentamos antes, otro de los grandes enemigos de la integración es la no adecuación a estándares. Los sistemas bien planificados y diseñados presentan interfaces de integración que permiten el diálogo con el resto de sistemas de la compañía y con sistemas de terceros, partners, proveedores y organismos reguladores por ejemplo. El uso de estándares facilita enormemente este diálogo dado que minimiza la necesidad de desarrollar software específico para llevar a cabo esta integración. Si cada módulo del sistema se desarrolla teniendo en mente los estándares se está preparando para una larga vida interviniendo en los procesos de negocio de la organización.
¿Qué es SOA?

Dicho esto, debemos hacer notar que SOA (Service Oriented Architecture) no es una tecnología ni un producto que podamos comprar e instalar. SOA es un conjunto de patrones, principios y prácticas para construir piezas de software que puedan interoperar independientemente de la tecnología empleada en su implementación. En este sentido, SOA implica la superación de tecnologías como Java RMI o .NET Remoting que no permiten la interoperabilidad entre distintas tecnologías de desarrollo de software.

La clave de la arquitectura SOA está en la exposición de interfaces abstractas que aíslen de la implementación particular de cada pieza de software. Para conseguir este objetivo resulta especialmente útil el uso de servicios web basados en los estándares SOAP, XML y WSDL. Sin embargo, hay que tener en cuenta que es posible tener web services y no por ello tener SOA dado que como hemos comentado, SOA es un problema de diseño y no de aplicación de una determinada tecnología.

Como características típicas de una arquitectura SOA podemos comentar:

* SOA está basado en estándares, por ejemplo las especificaciones WS-*.
* Los servicios deben ser autónomos y granulares.
* Los proveedores y consumidores deben estar débilmente acoplados.

Por último, comentar que la aplicación de una arquitectura SOA en el contexto de un problema de integración se conoce como SOI o Integración Orientada a Servicios.
Conclusión

Hoy en día las organizaciones tienen la necesidad de adaptarse a constantes cambios en el mercado, y por tanto, deben ser capaces de adaptar sus procesos a unas condiciones dinámicas como única forma de mantener y mejorar su competitividad.

A su vez, los sistemas que dan soporte a esos procesos deben poderse adaptar fácilmente para responder de forma ágil a las necesidades del negocio. El estado del arte actual de la tecnología da respuesta a este reto con SOA.

Los Principios del Programador


Donado gentilmente por el Ing. Luis Chavaria, Modulo de SOA, MSGI -2010 2011.

2003 by the original author Page 1 of 9ãA Web Magazine for Software Developers DeveloperDotStar.com

A Web Magazine for Software Developers
Los Principios del Programador
by Daniel Read

Translated by Juan A. Romero, University of Cordoba, Spain
Traducido desde English por Juan A. Romero desde el Universidad de Cordoba por
España. Muchas gracias Juan.

El Principio del Carácter Personal
Lo sepamos o no, nos guste o no, nuestro carácter está reflejado en cada línea de código que escribimos, en cada informe que diseñamos, en cada interfaz de usuario que construimos, en cada diagrama que hacemos. Cuando otra persona mira nuestro código -- o lo que es tan importante, la salida que produce nuestro código-- esa persona, conscientemente o no, se hace un juicio de nosotros. Piensa en el código que has escrito hasta ahora... ¿cuál sería ese juicio? ¿Estarías orgulloso, te pondrías en pie y dirías que ese código lo has escrito tu? ¿o solo admitirías tímidamente que es tuyo, y lanzarías excusas de por qué no es lo bueno que debería ser?. Si tu código es malo, alguien que lo
lea probablemente asuma que no es el único código que has hecho mal, que no es lo único que haces mal. La buena noticia es esta: tenemos control absoluto sobre la calidad de nuestro código.
La cuestión no es si uno es capaz de escribir el mejor código posible, sino si se
preocupará por intentarlo. Si un programador carece de ciertos conocimientos o de cierta experiencia, pero hace lo posible por escribir el código de forma clara, entendible, bien comentada, de forma que muestre que al menos ha invertido tiempo en aprender algunos fundamentos básicos, entonces habrá actuado como debía con diligencia-- y eso será obvio para un observador que lea con atención. No es razonable que alguien juzgue mal a un programador porque le falte algo de experiencia o porque desconozca aún algunas técnicas. Sin embargo, es absolutamente razonable encontrar una conexión entre la
calidad global del código de un programador y la calidad del carácter de dicho
programador.

El Principio del Carácter Personal establece: Escribe tu código de forma que refleje, y saque a relucir, solo lo mejor de tu carácter personal.

El Principio de la Estética

Un aspecto de la programación que con frecuencia descuidamos es la estética. La estética trata sobre la belleza y la elegancia, y de el valor de estas  cualidades. Mucha gente, sin embargo, cree que la estética es solo importante cuando se habla de arte y literatura. Pocas personas se dan cuenta de la importancia de la belleza y la elegancia en las cosas cotidianas, y muy pocos programadores se dan cuanta de la importancia de éstas cuando se escribe código. La estética es especialmente importante en el desarrollo de software, un terreno en el que siempre estamos tratando con niveles de abstracción.
Los aspectos estéticos de nuestras abstracciones están directamente relacionados con su entendibilidad y, por lo tanto, con su utilidad.
Un programador debe esforzarse en conseguir la belleza, sin importar la herramienta o el lenguaje de programación que esté utilizando. La belleza puede conseguirse a muchos niveles, desde el alto nivel de la elegancia en el diseño del sistema hasta el más bajo nivel de la apariencia visual del código en la pantalla. Ser ordenado y claro cuenta. El mejor código no solo funciona de forma correcta y eficiente, y está bien formado desde el punto de vista del compilador; el mejor código es también agradable de ver por el ojo humano--
y por lo tanto más fácil de absorber y de comprender para el cerebro humano.
Steve McConnell escribe en su libro Code Complete, "El disfrute visual e intelectual de un código bien formateado es un placer que pocos no-programadores pueden apreciar. Pero los programadores que se sienten orgullosos de su trabajo experimentan una gran satisfacción artística puliendo la estructura visual de su código."
 
El Principio de la Estética establece: Esfuérzate por conseguir la belleza y la elegancia en cada aspecto de tu trabajo.

El Principio de la Claridad: La claridad en el código es un estado que debemos buscar activamente. Uno de los mayores delitos que como desarrolladores podemos cometer es olvidar que nuestro código tiene una vida más allá de los pocos momentos que nos lleva escribirlo. Las probabilidad de que alguien, posiblemente nosotros mismos, maneje nuestro código en el
futuro son muy altas. Incluso aunque escribamos un código que funciona perfectamente y nunca causa problemas al usuario, estaremos perjudicando a otros compañeros desarrolladores (sin mencionar a nuestra empresa) si no escribimos nuestro código de la forma más clara posible.
Hay una diferencia entre claro y correcto, y muchas veces se confunden. La corrección es siempre el principal interés del desarrollador, como debe ser. La corrección lleva a que la sintaxis del código sea correcta a los ojos del compilador, que el diseño de la interfaz cubra las necesidades del usuario, y que los algoritmos que se implementan cumplan con sus requerimientos. Pero si no se dedica una atención igual a la claridad, la comprensibilidad y la mantenibilidad del código sufrirán mucho. Para que nuestro código sea lo más claro posible, debemos deliberadamente usar técnicas como la utilización de
identificadores descriptivos, la modularidad, la indentación (el sangrado), los espacios en blanco, la cohesión del código, el acoplamiento débil del código, propiciar la fácil realización de las pruebas y la documentación, y comentar adecuadamente.
La falta de claridad en nuestro código causa problemas innecesariamente, y también situaciones profesionalmente embarazosas. A nuestros colegas desarrolladores que tienen que tratar con nuestro código en años (o incluso décadas) sucesivos. Y a nuestra empresa, con la que no jugamos limpio devaluándola; incluso en algunos casos nuestro código puede convertirse en un problema de responsabilidad legal para nuestra empresa.
Dejar a nuestros colegas en esa situación es como mínimo descortés, pero dejar a nuestra empresa en esa situación es mucho peor: nosotros llegamos al acuerdo de producir código de calidad por un precio. La empresa ha cumplido pagándonos ese precio pero, ¿en qué situación sale ella de este acuerdo con nosotros?

El Principio de la Claridad establece: Dale el mismo valor a la claridad que a la corrección. Utiliza activamente técnicas que mejoran la claridad del código. La corrección vendrá casi por sí sola.

El Principio de la Distribución: Este principio se refiere a la distribución visual del código. El Principio de la Distribución es un corolario a los dos principios anteriores: El Principio de la Estética y El Principio de la Claridad. El Principio de la Estética nos dice que, además del disfrute intelectual que supone la lectura de código bello y elegante, la propia belleza y la elegancia juegan un
papel crucial para conseguir dicho buen código. Por otro lado, El Principio de la Claridad nos dice que hagamos nuestro código lo más claro posible a un lector humano, y que la claridad va de la mano con la corrección. El Principio de la Distribución pone estos dos principios duales en práctica.
Es difícil discutir la importancia de la distribución visual del código sin referirnos al principio fundamental de Steve McConnell (Fundamental Theorem of Formating) que establece: "Una buena distribución visual muestra la estructura lógica de un programa." (página 403, Code Complete) Esto significa que la distribución visual no solo sirve para hacer el código visualmente más atractivo, sino que también actúa a nivel del subconsciente haciendo el código más entendible al lector. El objetivo es reducir la cantidad de trabajo que un lector necesita para entender el código. La apariencia visual debe ser nuestra primera herramienta para comunicarnos con claridad con un lector humano que esté leyendo nuestro código.
Hay varias técnicas que aseguran que la distribución visual del código ayude a entender su estructura lógica. Estas técnicas deben formar parte de los conocimientos fundamentales de todo programador: uso adecuado de los espacios en blanco (y líneas en blanco), indentación, agrupamiento de líneas relacionadas, uso de paréntesis extra para que las expresiones lógicas y las fórmulas matemáticas sean más claras, márgenes para alinear el código relacionado de distintas líneas, emplazamiento adecuado de delimitadores de bloque, etc. Como Steve McConnell sugiere en su teorema, la idea es utilizar la distribución visual de nuestro código para comunicar a nivel de subconsciente
con el lector. Recuerda que cuando estamos trabajando en el terreno del desarrollo de software, estamos siempre trabajando con abstracciones, y una abstracción es más útil cuanto mas entendible es.
El Principio de la Distribución establece: Usa la distribución visual de tu código para comunicar la estructura de tu código a un lector humano.

El Principio de lo Explícito: Seguir el Principio de lo Explícito nos ahorrará, a nosotros y a nuestros sucesores, innumerables problemas. El Principio de lo Explícito es un corolario de El Principio de la Claridad. Pero el Principio de la Claridad nos dice que hagamos nuestro código de forma clara y entendible para el lector humano. Y el Principio de lo Explícito también se aplica a
esa misma entendibilidad, y a lo que es más importante, a hacer nuestro código más tolerante a cambios.
Veamos un ejemplo simple: muchos lenguajes de programación ofrecen el concepto de "fichero". Normalmente el fichero no lo proporciona el lenguaje de programación directamente, sino que se utiliza a través de una librería. Cuando escribimos el código necesario para abrir el fichero, normalmente existen propiedades para determinar el estado del cursor del fichero. Cuando nuestro código llama a la función que abre el fichero, la función probablemente tenga un estado del cursor por defecto, lo cual significa que no tenemos que especificar explícitamente el estado del cursor simplemente podemos aceptar el estado por defecto.
Si un desarrollador acepta ese estado por defecto, entonces el desarrollador ha
introducido una suposición implícita en su código, lo cual, para empezar,  reduce la claridad del mismo. Y lo que es mucho peor, ha creado una oportunidad gigantesca para que se den futuros errores. El estado del cursor afecta directamente el comportamiento del fichero. Nuestro código obviamente depende de ese comportamiento. ¿Qué ocurriría con nuestro código seis meses después cuando se actualice la librería de manejo de ficheros?¿Qué ocurre si la nueva versión cambia el estado por defecto del cursor del
fichero?¿Sabes lo que va a ocurrir con el código que asumía el estado por defecto del fichero? Simplemente va a fallar por completo. O peor, va a cambiar su comportamiento en algo leve: alguna condición de un IF va a ser Falsa en vez de Verdadera, y el bloque ELSE se va a ejecutar en vez del bloque IF que debería ejecutarse; y entonces, meses después, alguien se dará cuenta de que los datos corruptos y los daños se han extendido por todo el sistema.
Por no haber sido explícito, el desarrollador del código del ejemplo aceptó implícitamente el estado del cursor por defecto, haciendo su código menos tolerante a futuros cambios.
Esto es inaceptable. Debemos aprender a detectar donde pueden darse este tipo de problemas (el ejemplo del fichero es uno de muchos, y cada lenguaje de programación y plataforma tiene otros muchos), y debemos usar nuestros conocimientos para que no nos afecten en el futuro. Como profesionales, debemos saber que el cambio es algo constante en nuestra profesión, y debemos hacer lo posible para asegurar que nuestro código soportará fácilmente esos cambios sin producir errores o resultados incorrectos. Incluso
cuando nuestro código falla, debemos asegurarnos que lo hace correctamente, es decir, que a pesar de fallar, nos proporciona la mayor cantidad de información específica acerca de dónde y por qué ha fallado.
El truco para que estos problemas no ocurran es ser explícitos. Los problemas merodean por lo implícito-- en las suposiciones indocumentadas y no probadas, en las técnicas  crípticas, en las secciones indocumentadas explícitamente, en las cuales nos perdemos como un barco hundiéndose silenciosamente en el vasto y opaco océano.

El Principio de lo Explicito establece: Intenta siempre favorecer lo explícito sobre lo implícito.

El Principio del Código Auto-Documentado: El código auto-documentado no se consigue accidentalmente.
Como desarrolladores, debemos esforzarnos en el desarrollo de un estilo de codificación sólido, lo cual es la clave del código auto-documentado. Debemos estar constantemente mejorando y perfeccionando nuestro estilo, de forma que cada programa que escribimos sea mejor que el anterior. Un estilo bien desarrollado se consigue incorporando técnicas probadas, como el uso de identificadores informativos y consistentes; la modularización bien cohesionada y acoplada; evitar el uso de técnicas difíciles de comprender; hacer una
buena distribución visual del código; dar nombres adecuados a las constantes; probando y documentando las suposiciones; y muchas otras.
Para aprender estas técnicas debemos leer los textos realizados por otros que nos precedieron, y que abrieron camino. Buscar en la bibliografía clásica. Aprender de los maestros. Suscribirse a revistas. Unirse a listas de discusión de Internet. Leer código y código de otros programadores. Cuando veas código que decepciona estas expectativas, analízalo y trata de ver por qué. Cuando veas código que alcanza el alto nivel que buscamos, trata de identificar las técnicas que el desarrollador usó para alcanzar ese gran nivel. Hay un dicho que dice: cualquier tonto puede aprender de sus propios errores; una persona sabia también aprende de los errores ajenos.
¿Y qué ocurre con los comentarios? ¿Los necesitamos aunque nuestro código esté autodocumentado?
Auto-documentar el código, como la perfección, es un objetivo difícil de
conseguir, probablemente imposible. Sin embargo, eso no debe detenernos en nuestro empeño. Allí donde esa perfección no se pueda conseguir, debemos suplementar nuestro esfuerzo añadiendo buenos comentarios. El código bien escrito no debe necesitar demasiados comentarios; debe explicarse por si mismo. De todas formas, añadir ciertos comentarios es necesario--solo que deben ser del tipo adecuado (ver El Principio de los Comentarios).
Visto de cerca, el código verdaderamente auto-documentado es un placer de contemplar, y a su observador le queda claro que esa maravilla solo pudo ocurrir mediante el esfuerzo de un ingeniero de software concienzudo y diligente.
El Principio de Código Auto-Documentado establece: La documentación más fiable para el software es el propio código. En muchos casos, el propio código es la única documentación. Por lo tanto, esfuérzate en hacer que tu código sea auto-documentado, y allí donde no sea posible, añade comentarios.


El Principio de los Comentarios: Los comentarios son armas de doble filo. Usados correctamente, pueden mejorar infinitamente la entendibilidad y el mantenimiento del código. Usados de forma indebida, pueden hacerlo confuso y menos legible. Comentar indebidamente es en el mejor de los casos de poca ayuda, y en el peor de los casos un enorme desastre.

El Principio de los Comentarios tiene tres apartados:
Primero, comenta mediante frases completas. Esta simple técnica incrementa en gran medida la comprensión por parte de un lector tanto de los propios comentarios como del código que comentan. Los fragmentos de frases tienden a ser crípticos. Escribir cada comentario mediante una frase completa también hace que lo entiendan más personas, lo cual es muy importante en el entorno multi-cultural en el que nos encontramos hoy día.
Los comentarios de alta calidad escritos mediante frases completas también son una ayuda para instruir a desarrolladores con menos experiencia.
Segundo, usa los comentarios para resumir código. El "comentario resumen" describe un bloque de código con la idea de ahorrar a una persona el tiempo que llevaría leer todo el código que el comentario describe. El comentario resumen aparece normalmente unas líneas por encima de un bloque de código. Un buen resumen no repite de nuevo el código, sino que explica diversas líneas de código en dos o tres frases.
Tercero, intenta siempre comentar "a nivel de la intención". Lo que esto quiere decir es que se debe comentar a nivel del problema, más que a nivel de su solución. El código es la solución al problema. Idealmente, el código debería hablar por si mismo (ver El Principio del Código Auto-Documentado). Una persona que lea el código, si el código es bueno, debería entender fácilmente qué hace el código y cómo lo hace. Sin embargo, la información que no permanece en el código es precisamente lo que había en la mente del
desarrollador que lo escribió: su intención. En general, esto es lo que necesita estar comentado. ¿Cuál era la intención del desarrollador?¿Con qué intención se ha usado ese código? ¿Cómo intenta este código solucionar el problema en cuestión? ¿Cuál es la idea que hay detrás de ese código? ¿Cómo este código explícitamente se relaciona con las otras partes de código?. Uno de los mayores pecados que un desarrollador puede cometer es abandonar su código sin que su intención quede clara a futuros lectores del código.

El Principio de los Comentarios establece: Comenta mediante frases completas para resumir y comunicar la intención.

El Principio de las Suposiciones: El Principio de las suposiciones es un corolario al Principio de lo Explícito. Hacer comprobaciones y documentar bien las suposiciones hechas en el código tiene varios beneficios: uno, incrementa su comprensión; dos, hace el código más predecible; tres, hace el código más fácil de mantener; cuatro, reduce la necesidad de comentarios; cinco,
hace el código más fiable; seis, hace el código más comunicativo cuando algo va mal; siete, la detección temprana mediante comprobaciones protege los datos de que se corrompan ; ocho, obliga que prestemos atención a las suposiciones y comprobaciones que hace una rutina, y por tanto a su relación con otras rutinas y datos compartidos, lo cual reduce la incidencia de errores.
Las comprobaciones son la piedra angular de la programación defensiva. En realidad en cada pieza de código hacemos suposiciones. Lo que ocurre es que algunas son obvias y no es necesario que se comprueben ni se documenten. Sin embargo, podemos y debemos comprobar (y documentar) las muchas otras suposiciones que son menos evidentes.
El tipo de suposiciones más común que deben ser comprobadas (y  documentadas), son los pre-requisitos en los que una rutina se basa. Estas comprobaciones normalmente son una serie de sentencias If...Then al principio de la rutina. Si alguna de las comprobaciones falla, entonces el código debe ejecutar una acción que corrija la situación, o bien devolver un mensaje de error explicando que una de las suposiciones falló. (Otra forma de hacer
comprobaciones de las suposiciones, a veces pasada por alto, es el uso de asertos, que son expresiones Verdadero/Falso que normalmente sólo se compilan en versiones de "depuración" del programa para su prueba.)
El Principio de las Suposiciones establece: Da los pasos que sean razonables para comprobar, documentar y prestar atención a las suposiciones hechas en cada módulo y rutina.

El Principio de la Interfaz con el Usuario: La formulación de esta regla está tomada prestada de About Face: The essentials of User Interface Design, escrito por el gurú del diseño de interfaces de usuario: Alan Cooper.
Cooper abunda en esta idea en su posterior libro, The Inmates are Running the Asylum :
"La mayoría del software se usa en entornos de trabajo, donde las víctimas de los malos interfaces de usuario son los trabajadores. Sus trabajos les obligan a usar el software, ellos no pueden elegir no usarlo--deben tolerarlo lo mejor que puedan. Están obligados a aguantarse su frustración y a ignorar la vergüenza que sienten porque el software les hace sentirse estúpidos".(Página 34) Esta es una afirmación que debe hacer que nos paremos a considerar el impacto real, bueno o malo, que nuestro software tiene en la gente.
¿Cómo llega un usuario a sentirse estúpido?. Alan Cooper ha dedicado dos libros enteros a responder a esta pregunta, y otros autores se han enfrentado también a este tema  (incluyendo a Donald Norman en su excelente libro, The Design of Everyday Things.)
Obviamente, aquí no podemos extendernos tanto. Pero de todas formas, aquí va un ejemplo sencillo: un usuario hace click en un botón e inmediatamente le sale un mensaje que que dice: "No puede usar esa función en este momento". ¿Entonces por qué estaba el botón habilitado para ser pulsado? El  desarrollador, por no tomarse la molestia tan sencilla de deshabilitar o bien ocultar el botón, ha creado una situación en la que él o ella es como un bromista que señala una falsa mancha en la camisa del pobre usuario y le da
en la cara cuando éste mira hacia abajo. Muy divertido.
El mal diseño de la interfaz de usuario es un enorme problema que afecta a toda la industria del hardware y del software. Es triste comprobar como desarrolladores tanto de hardware como de software regularmente diseñan soluciones que terminan haciendo que los usuarios se sientan estúpidos. Es incluso más triste que muchos desarrolladores sean
felices en su ignorancia de desconocer el estrés que causan a la gente. Sin embargo, como desarrolladores estamos en la posición de ayudar a resolver este problema.
Como desarrolladores software, nuestra principal responsabilidad en cuanto a la interacción con el usuario descansa en el diseño de la interfaz de usuario. Afrontémoslo: en la mayoría de los casos no hay un diseño de la interfaz de usuario preparado con antelación. La mayoría de las decisiones de diseño de la interfaz de usuario (y esto incluye el diseño de los informes que genera el software) son tomadas por el desarrollador mientras se construye. Por lo tanto, en la mayoría de los casos, es solo responsabilidad del desarrollador tomar los pasos necesario para no hacer que el usuario se sienta estúpido. El desarrollador es el que sitúa los botones y los campos. El desarrollador, por
tanto, tiene casi control total de la experiencia que vive el usuario delante del software.

El Principio de la Interfaz con el Usuario establece:Nunca hagas que el usuario se sienta estúpido.

El Principio de Volver Atrás: Todos hemos sido culpables alguna vez de esto: "No tengo tiempo de hacer eso ahora.
Ya volveré y lo haré luego". Este tipo de decisiones suelen aplicarse a tareas como comentar el código, su adecuada distribución visual, el control de errores, la modularización adecuada, la correcta implementación, etc. Quizás tu seas esa persona, rara, que siempre vuelve más tarde a ese código y hace todo ese trabajo tedioso, pero la mayoría de nosotros los mortales nunca lo hacemos.
El momento de hacer todas esas tediosas tareas asociadas a la codificación es el preciso momento en el que se está escribiendo el código. La principal razón por la que nadie vuelve más tarde a "limpiar" su código es que una tarea que es tediosa de realizar mientras escribes el código, es monumentalmente más tediosa cuando tienes que volver atrás y hacerla después. ¿Alguien cree de verdad que volver y codificar buenas comprobaciones de errores en cientos de rutinas a posteriori es menos tedioso que crear esas rutinas con sus comprobaciones de errores desde el principio? No solo odiarás cada
minuto de esa tarea, sino que casi con toda probabilidad introducirás errores que no estaban allí antes.
En el caso de los comentarios, los comentarios que añadas después nunca serán tan buenos como los comentarios que podrías haber escrito justo en el momento en que escribiste el código. ¿Y qué ocurre si tienes que dejar un trabajo antes de tener la oportunidad de volver atrás y hacer todas esas tareas? Habrás dejado esa tediosa y mucho más monumental tarea a otro, lo cual es muy poco profesional.
El Principio de Volver Atrás establece: El momento de escribir buen código es justamente el preciso momento en el que lo estás escribiendo.


El Principio de El Tiempo y El Dinero de Otros: El Principio de El Tiempo y El Dinero de Otros se aplica a todo el trabajo que realiza un desarrollador: código, informes, interfaces de usuario, modelos, diagramas, pruebas, y
documentación. Esta regla no solo se aplica al código, sino a la  profesionalidad. Recuerda la regla con la que empezamos: El Principio del Carácter Personal establece: Escribe tu código de forma que refleje, y saque a relucir, solo lo mejor de tu carácter personal. El Principio de El Tiempo y El Dinero de Otros es una forma menos cordial de decir lo mismo.
Enorgullécete de tu trabajo, porque tu trabajo eres tú, y te juzgarán por el trabajo que has hecho y a veces sólo por eso. Incluso si no te preocupa que te juzguen, ¿Te preocupa hacer las cosas bien hechas? ¿Te sientes bien habiendo aceptado dinero por ese código? ¿Te preocupa como tú y tu trabajo se refleja en la profesión de ingeniería del software en general? Escribir código para alguien no es un tan solo un juego divertido, la calidad del trabajo de cada desarrollador se refleja en todos los demás desarrolladores.
 
El Principio de El Tiempo y El Dinero de Otros establece: Un verdadero profesional no gasta el tiempo ni el dinero de otras personas produciendo software que no esté razonablemente libre de fallos; que no esté mínimamente probado; que no cumpla con los requisitos establecidos; que esté falsamente adornado con características innecesarias; o que tenga un aspecto deplorable.

Daniel Read es redactor y editor del developer.* periódico de la Internet. Él vive en Atlanta, GA, en donde él trabaja como arquitecto del software.

LA TECNOLOGÍA COMO INSTRUMENTO DE DESARROLLO

Tomado de:TECNOLOGIA COMO INSTRUMENTO DE DESARROLLO

Capítulo 1: LA TECNOLOGÍA COMO INSTRUMENTO DE DESARROLLO

Algunas precisiones conceptuales

Repasemos, en primer lugar, los contenidos de algunos de los conceptos centrales que serán utilizados en las páginas que siguen:
Tecnología: Definir qué es tecnología es algo complejo, sujeto a diversos puntos de vista. Generalmente se mencionan tres enfoques principales:
• Orientación instrumental: Las tecnologías son vistas como simples herramientas o artefactos, materiales o virtuales, diseñados y construidos para realizar diversas tareas.
• Orientación cognitiva: Relaciona la aparición de la tecnología con las revoluciones científica e industrial, que se produjeron entre los siglos XVI y XVIII. Diferencia la tecnología, producto de la aplicación de la ciencia, de la técnica, lograda como una destreza, por simple actividad empírica.
• Enfoque sistémico: Considera a la tecnología como sistema de acciones orientadas a obtener resultados concretos y valiosos en forma eficiente. De este enfoque deriva otro, más específico, que plantea la existencia de socio-eco-sistemas tecnológicos, y caracteriza a las tecnologías como formas de organización social, que implican el uso de artefactos, la gestión de recursos y la consideración simultánea de la innovación, la influencia cultural y el impacto ambiental. Se evidencia así que la tecnología está abierta a la influencia de los intereses e interacciones humanas, y de los procesos de participación pública.
Este último es el concepto que adoptaremos en este texto.
Recursos humanos: La expresión se refiere a la cantidad y calidad totales de esfuerzo humano disponible para la producción de bienes y servicios. Abarca la capacidad física e intelectual de los seres humanos. Se puede considerar que los recursos humanos consisten en la mano de obra –determinada principalmente por el número de personas que integran la fuerza de trabajo de un país– combinada con el capital humano.
Recursos naturales: Todos los ”dones de la naturaleza” –el aire, la tierra, el agua, los bosques, la vida silvestre, la capa fértil del suelo, los minerales– utilizados por la gente para la producción o para el consumo directo. Pueden ser renovables o no renovables. Los recursos naturales comprenden el capital natural más los dones de la naturaleza que no se pueden acumular (como la luz del sol) o no se pueden utilizar con fines productivos (como la belleza de un paisaje). Tenemos entonces: • Recursos naturales no renovables. Recursos naturales que no se pueden reemplazar o reponer.
• Recursos naturales renovables. Recursos naturales que se pueden reemplazar o reponer por medio de procesos naturales o de la intervención del hombre. Los peces y los bosques, por ejemplo, son recursos naturales renovables. Los minerales y los combustibles fósiles son recursos naturales no renovables , porque se regeneran en tiempos geológicos y no en una escala de tiempo humana. Algunos aspectos del medio ambiente –calidad del suelo, capacidad de asimilación, sistemas de sustento ecológico– se denominan semi renovables porque se regeneran con gran lentitud en una escala de tiempo humana.
Recursos productivos: Son los insumos principales para la producción. Tradicionalmente, los economistas clasifican los factores de producción en tres categorías: trabajo, tierra y capital. Últimamente, los economistas distinguen tres tipos de capital: el capital físico (o producido), el capital humano y el capital natural.
Capital humano: Es el conjunto de los conocimientos, las aptitudes y la experiencia de los seres humanos, que los hacen económicamente productivos. El capital humano se puede incrementar invirtiendo en educación, atención de la salud y capacitación laboral.
Bienes públicos: Son bienes cuyo consumo por una persona no reduce en principio la cantidad existente para otras, y no tienen carácter exclusivo, es decir, que no se puede evitar que la gente los consuma. Por sus propias características, es imposible cobrar este tipo de bienes a los consumidores, de manera que el sector privado no está interesado en suministrarlos. En la mayoría de los casos los proporciona el Estado. Los bienes públicos pueden ser nacionales o locales. La defensa es un bien público nacional: beneficia a toda la población de un país. Los caminos rurales son bienes públicos locales, que benefician a un grupo más pequeño de gente. También existen bienes públicos mundiales, que benefician a la mayor parte de la población del mundo, como la paz y la seguridad internacionales o la información necesaria para prevenir el cambio climático mundial. Las organizaciones internacionales tienen la misión de proveer estos bienes (y servicios).
Calidad de vida: Es el nivel estimado de bienestar general de la población. La calidad de vida es difícil de medir (sea para un individuo, un grupo o una nación) porque, además del bienestar material, incluye componentes intangibles como la calidad del medio ambiente, la seguridad nacional, la seguridad personal y las libertades políticas y económicas.
Crecimiento económico: Es el cambio cuantitativo o expansión de la economía de un país. Según los usos convencionales, el crecimiento económico se mide como el aumento porcentual del producto interno bruto (PIB) o el producto nacional bruto (PNB) en un año. Puede ocurrir de dos maneras: una economía puede crecer de manera "extensiva" utilizando más recursos (como el capital físico, humano o natural ) o bien de manera "intensiva", usando la misma cantidad de recursos con mayor eficiencia (en forma más productiva). Cuando el crecimiento económico se produce utilizando más mano de obra, no trae como resultado el aumento del ingreso por habitante (véase el Capítulo 4); cuando se logra mediante un uso más productivo de todos los recursos, incluida la mano de obra, trae aparejado un incremento del ingreso por habitante y la mejora del nivel de vida, como promedio, de la población. El crecimiento económico intensivo es condición del desarrollo económico Desarrollo económico: Es el cambio cualitativo y reestructuración de la economía de un país en relación con el progreso tecnológico y social. El principal indicador del desarrollo económico es el aumento del PNB per cápita (o PIB per cápita), que refleja el incremento de la productividad económica y del bienestar material, como promedio, de la población de un país. El desarrollo económico está estrechamente vinculado al crecimiento económico.
Desarrollo sostenible: De acuerdo con la Comisión Mundial sobre el Medio Ambiente y el Desarrollo (1987), de las Naciones Unidas, desarrollo sostenible es aquel que "satisface las necesidades actuales sin comprometer la capacidad de las generaciones futuras para atender sus propias necesidades". Según una definición más práctica del Banco Mundial, el desarrollo sostenible es "un proceso de administración de una cartera de activos que permita preservar y mejorar las oportunidades que tiene la población". El desarrollo sostenible comprende la viabilidad económica, ambiental y social, que se puede alcanzar administrando racionalmente el capital físico, natural y humano.
Externalidades: Son los efectos de las actividades de una persona o una empresa en otros, por los cuales no se otorga ninguna compensación. Las externalidades pueden perjudicar o beneficiar a otros, es decir, pueden ser negativas o positivas. Una externalidad negativa surge cuando una compañía contamina el medio ambiente para producir sus bienes y no compensa a los pobladores locales perjudicados. La educación primaria, por ejemplo, produce externalidades positivas, pues beneficia no sólo a los alumnos del nivel primario sino también a la sociedad en general. Los gobiernos pueden reducir las externalidades negativas reglamentando y gravando la producción de bienes con externalidades negativas, y pueden aumentar las positivas subvencionando la producción de bienes con externalidades positivas o, directamente, suministrándolos.
Faltas del mercado: Son aquellos casos en los que una economía de mercado no proporciona a la población la cantidad deseada de determinados tipos de bienes y servicios. En una economía de mercado puede haber deficiencias de este tipo si no se producen suficientes bienes públicos y bienes con externalidades positivas; si se producen demasiados bienes con externalidades negativas; si, por la existencia de monopolios naturales, los bienes tienen un precio excesivo; y si los agentes del mercado carecen de acceso a información suficiente, por ejemplo, acceso a la información sobre la calidad de algunos bienes de consumo. Normalmente, estas faltas del mercado justifican la intervención del Estado en la economía, aunque siempre se corre el riesgo de que esta intervención no resulte eficaz, es decir, que las medidas adoptadas por las autoridades no logren mejorar el bienestar social debido a la existencia de fallas en las estructuras institucionales o los procesos políticos.
Fuerza de trabajo: Es toda la población de un país económicamente activa, entre los 15 y los 65 años de edad. Incluye a todas las personas empleadas, los desempleados y los miembros de las fuerzas armadas, pero excluye a los estudiantes y a las personas no remuneradas que prestan cuidados a otros, como las amas de casa.
Servicios: Se trata de bienes intangibles que se suelen producir y consumir al mismo tiempo. Un ejemplo es la educación: los estudiantes consumen una clase –un servicio educacional– al tiempo que el profesor la produce. El sector de los servicios de una economía incluye hoteles, restaurantes, el comercio minorista y el comercio mayorista; el transporte, el almacenamiento y las comunicaciones; los seguros y los servicios financieros, inmobiliarios y empresariales; los servicios sociales y comunitarios (como la educación y la atención de la salud); y los servicios personales. Su desarrollo tiene una gran significación en la transformación actual del mundo.
Decía Ortega y Gasset que la tecnología...”cuya misión es resolverle al hombre problemas, se ha convertido de pronto en un nuevo y gigantesco problema” . Son palabras que reflejan la complejidad y ambivalencia de la relación entre tecnología y sociedad. El proceso del “progreso técnico” es muy contradictorio, ya que por una parte abre posibilidades muy grandes para crear en el mundo condiciones de vida de abundancia y bienestar para todos, en medida nunca conocida antes en la Historia, y por otra parte se convierte en instrumento de violencia y destrucción, de dominio y sometimiento, hasta el extremo de amenazar la supervivencia misma del hombre sobre la Tierra.
En el mundo intelectual hay una viva polémica sobre la técnica como instrumento de desarrollo...o de destrucción, entre aquellos optimistas que ven en la tecnología la solución de todos los problemas, hasta aquellos críticos que alertan sobre las nefastas consecuencias del uso indiscriminado de las técnicas, pasando por aquellos que claman por la implantación de normas que encaucen la creación científica y tecnológica hacia fines útiles para la Humanidad, mientras otros afirman la “neutralidad” de la tecnología y echan las culpas de su mal uso a quienes toman las decisiones políticas. No faltan quienes, como Lewis Mumford , se niegan a exonerar de responsabilidades morales a los científicos y tecnólogos, respecto de las consecuencias humanas negativas de sus descubrimientos e inventos.
Queda, como alto ejemplo de la conciencia moral del científico, la valiente actitud de Robert Oppenheimer, que se negó a desarrollar la bomba de hidrógeno y fue por ello aislado y escarnecido prácticamente hasta su muerte, mientras la bomba se desarrolló lo mismo por obra de uno de sus discípulos, más astuto en aceptar las oportunidades que ofrece el Poder a sus fieles servidores en el campo de la ciencia y de la técnica.
Con esa conciencia de la ambigüedad del rol de la ciencia y de la técnica en la construcción y desarrollo del mundo humano vamos a intentar, en este capítulo, describir sus efectos en la creación del contexto global y del contexto específico de las organizaciones, y los intentos de respuesta a sus requerimientos, aceptando que la tecnología definió desde el principio la construcción de la condición hominal y del mundo humano.
Cuando el ser humano se acercó al fuego, en lugar de huir de él, y aprendió a mantenerlo y producirlo, cuando desarrolló las primeras herramientas de piedra, inició un camino que a lo largo de milenios lo llevaría a la Revolución Neolítica, con el descubrimiento del cultivo de vegetales, de la domesticación de los animales y de la cerámica; y luego a la Revolución Urbana, con la aparición de los primeros asentamientos y la división y especialización de las funciones sociales de los hombres; y ya cerca de nuestro tiempo, a la Revolución Industrial, con su cambio profundo en el uso de las fuentes de energía y en la organización del trabajo humano para la producción de bienes y servicios, como dice Gordon Childe, en su magistral síntesis.

Documento: Documento en ZIP

LAS TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES EN LA EDUCACIÓN

Tomado de: Tecnologia y Educacion
Elías Gaona Rivera (saile2519@yahoo.com.mx)
Mtro. en Economía de la UAEH


Introducción

Las formas de comunicar ideas, información y mensajes de la humanidad han variado a través del tiempo. Primero el hombre se comunico mediante el lenguaje, luego mediante símbolos, después la comunicación se generalizo a través del libro, gracias al invento de la imprenta en el siglo XV. De esta forma la difusión de las ideas y los conocimientos se incrementó, sin embargo, con la invención de la computadora y del Internet, la comunicación, los conocimientos, la propagación de ideas y la difusión de la información se incremento todavía más a velocidades insospechables y a un costo bajísimo.

El desarrollo de las técnicas y de la tecnología de las comunicaciones ha sido a lo largo de la historia de la humanidad un factor modernizador, no sólo de los sectores productivos, sino de la sociedad y, por supuesto, también de la educación. La educación se ha valido de los medios técnicos y tecnológicos disponibles para poderse llevar a cabo de manera eficiente, por tanto, el objetivo de este artículo será analizar la forma en que las TIC’S se pueden vincular con la educación y como éstas pueden mejorar la calidad de la educación en el país. El artículo esta dividido en tres apartados, en el primero se analiza la evolución histórica de algunas formas de comunicación, en el segundo veremos los tres niveles que conforman la pirámide de la informática y en el tercero veremos las oportunidades que ofrecen las TIC’s para mejorar la calidad de la educación.

I. EVOLUCIÓN HISTÓRICA DE ALGUNAS FORMAS DE COMUNICACION

La capacidad de comunicarse es esencial en nuestras vidas. A continuación se realiza un sumario de los progresos técnicos y tecnológicos de la manera en que el hombre ha transmitido sus experiencias y conocimientos, con la finalidad de comprender la etapa histórica en marcha.
Aparición del lenguaje
Cuando los seres humanos comenzaron a utilizar el lenguaje, se pudo acumular en la memoria el conocimiento social adquirido y así preservarlo y transmitirlo a las nuevas generaciones. Esto permitió que los conocimientos aprendidos no se olvidaran y pudieran ser enriquecidos o mejorados por la acción de otras personas. Así fue posible mejorar la calidad de vida y el ritmo de la técnica. En el mundo actual se hablan unas 3000 lenguas y dialectos.
Creación de los signos gráficos para registrar el habla
Los primeros signos gráficos son de la época del paleolítico superior (hace unos 35.000 años). Éstos se encuentran en pinturas rupestres en donde nuestros antepasados dibujaban elementos de la naturaleza y acciones humanas. Alrededor del 5.000 antes de Cristo (hace 7.000 años) comenzó a utilizarse otra forma de signos, muchos de ellos no eran dibujos como los anteriores, sino representaciones del habla [ jeroglíficos (cultura egipcia), escritura cuneiforme (cultura mesopotámica) ], etc. La escritura primitiva se hacía sobre arcilla o piedra usando pedernales y punzones. El alfabeto se originó en Oriente Próximo y lo introdujeron los fenicios en Grecia, donde le añadieron los sonidos de las vocales. El alfabeto latino se desarrolló en los países más occidentales, donde dominaba la cultura romana.
La escritura permitió la emancipación de la información en cuanto al hablante y el oyente, en cuanto al tiempo y al espacio físico. Fue posible salvaguardar para la posteridad el registro de la información y el conocimiento en forma más fidedigna la información original.
Los inconvenientes de la escritura fueron su lentitud con respecto al lenguaje hablado, ya que para interpretar la información había que aprender una gran cantidad de símbolos y por ello la cantidad de gente que podía comprender los escritos era exigua, convirtiendo la lectura en un acto individual en la mayoría de los casos.
La escritura no ofrecía la interactividad que tenía el habla pero provocó muchos cambios. La construcción de formas de preservar el conocimiento fue más reflexiva y estructurada. El conocimiento y el pensamiento fueron más fiables y sistematizados. Ahora, la posibilidad de acumular el conocimiento, de transferirlo a otras personas presentes y no presentes, del mismo tiempo o de la posteridad hicieron de la escritura un elemento de poder político, económico, social y cultural.
Con la alfabetización aparecen las escuelas hace unos 4.500 años en mesopotama , Egipto y China. Su objetivo era enseñar los símbolos y los distintos tipos de escritura a la clase privilegiada y a los escribas. La escritura fue utilizada por los grupos poderosos como un instrumento más de control social. Los manuscritos eran resguardados en bibliotecas o estaban en poder de especialistas.
Papel e impresión
Los egipcios descubrieron un tipo de material para escribir que se extraía de la médula de los tallos de una planta llamada papiro. Posteriormente se inventó el pergamino, que se obtenía preparando las dos caras de una tira de piel animal. Entretanto, en China, hacia el año 105 d.C. se descubrió el papel. Mil años después, al llegar esta técnica a Europa, provocó una gran demanda de libros. A mediados del siglo XV, el inventor alemán Johann Gutenberg utilizó tipos móviles por primera vez en Europa para imprimir la Biblia. Esta técnica amplió las posibilidades de estudio y condujo a cambios radicales en la forma de vivir de los pueblos. Contribuyó a la aparición de un mayor individualismo, del racionalismo, de la investigación científica y de las literaturas nacionales. En el siglo XVII surgieron en Europa unas hojas informativas denominadas corantos, que en un principio contenían noticias comerciales y que fueron evolucionando hasta convertirse en los primeros periódicos y revistas que ponían la actualidad al alcance del gran público.
Educación audiovisual
La educación audiovisual nació como disciplina en la década de 1920. Debido a los avances de la cinematografía, los catedráticos y pedagogos comenzaron a utilizar materiales audiovisuales como un apoyo para hacer llegar a los educandos, de una forma más directa, las enseñanzas más complejas y abstractas. Durante la II Guerra Mundial, los servicios militares utilizaron este tipo de materiales para entrenar a grandes cantidades de población en breves espacios de tiempo, poniéndose de manifiesto que este tipo de método de enseñanza era una valiosa fuente de instrucción que contaba con grandes posibilidades para el futuro.
Los diversos estudios de psicología de la educación han puesto en evidencia las ventajas que presenta la utilización de medios audiovisuales en el proceso enseñanza-aprendizaje. Su empleo permite que el alumno asimile una cantidad de información mayor al percibirla de forma simultánea a través de dos sentidos: la vista y el oído.
Por otro lado, la educación a través de medios audiovisuales posibilita una mayor apertura del alumno y del centro escolar hacia el mundo exterior, ya que permite superar las fronteras geográficas. El uso de los materiales audiovisuales puede hacer llegar a los alumnos experiencias más allá de su propio ámbito escolar y difundir la educación a otras regiones y países, siendo accesible a más personas.

En México, se utilizan medios audiovisuales para transmitir programas educativos que llegan a algunos Estados de la República Mexicana y a los Estados Unidos. En el Estado de Hidalgo la Universidad Autónoma del Estado de Hidalgo difunde cultura e información a través de radio universidad.

Aparición de los medios electrónicos y digitales

La invención del telégrafo (1844) y del teléfono (1876) en el siglo XIX significó que los mensajes escritos y verbales podían ser transmitidos rápidamente sobre largas distancias por primera vez. Pero debieron pasar más de 100 años (1947) para que aparezca la primera computadora. Se construyó en la Universidad de Pennsylvania y fue llamada ENIAC (Electronic Numerical Integrator And Calculator). Esta máquina ocupaba todo un sótano de la Universidad, tenía más de 18 000 tubos de vacío, consumía 200 KW de energía eléctrica y requería todo un sistema de aire acondicionado. Este artilugio tenía la capacidad de realizar cinco mil operaciones aritméticas en un segundo. A partir de la ENIAC comenzó el desarrollo que podemos apreciar a lo largo de más de 50 años para llegar a las minicomputadoras de hoy.
El rápido avance tecnológico de soportes informáticos, como las computadoras, los discos de vídeo digital y los discos compactos, permite el uso de mejores herramientas para profesores y alumnos en el ámbito de la educación. Estos avances permiten una mayor interactividad entre el emisor y el receptor ampliándose las capacidades de procesamiento y manipulación de información. Ahora tenemos digitalizados textos, sonidos e imágenes que se pueden almacenar, reproducir y crear todas las veces que el usuario quiera. Aparecen nuevas formas de presentar la información: multimedia, hipermedia, hipertexto, simuladores, etc. Hoy la información es transmitida y recibida desde cualquier lugar del planeta casi de manera instantánea.
II. NUEVAS TECNOLOGÍAS DE INFORMACIÓN Y EDUCACIÓN

Es importante resaltar que, si bien es cierto que las TIC’s pueden mejorar la calidad de la educación, no hay que perder de vista que éstas constituyen medios, herramientas que aportan a un proceso pedagógico. Hay personas que pueden caer en un optimismo pedagógico exagerado al pensar que la sola introducción de estas tecnologías produce automáticamente el milagro de transformar la calidad del proceso educativo.

Se corre el peligro de encarar a la educación desde una perspectiva meramente tecnológica, olvidando que el problema de ésta, más que tecnológico es pedagógico. No es difícil confundir la información —por más atractiva que sea— con conocimiento. ¿Cómo se enlazan estos dos mundos, las nuevas tecnologías de información y comunicación y la educación? ¿Dónde se enlazan estos dos importantes campos del conocimiento humano? ¿Qué le corresponde a cada cual cuando se habla de informática aplicada a la educación? El intento de responder a estos cuestionamientos servirá de preámbulo para pasar a examinar las diversas oportunidades que pueden brindar las nuevas tecnologías de información para el mejoramiento de la calidad de la educación en el país.

De acuerdo con Jaramillo (1995) podemos identificar tres niveles que constituyen la pirámide de la Informática. El nivel más bajo, es decir la base, corresponde al de la informática como cultura, esto implica el conocimiento de los fundamentos básicos de la estructura de la computadora, el procesamiento de la información que aquélla realiza; proyectado todo este conocimiento a las aplicaciones más comunes de esta tecnología, su importancia y sus implicaciones sociales. Actualmente, en el campo de las aplicaciones, esta cultura informática básica—también denominada alfabetización computacional o digital— corresponde al manejo adecuado de la interfase que comunica al usuario con el sistema computacional (sistema operativo), al uso adecuado de los paquetes básicos de uso general: procesador de palabras, hoja de cálculo, administrador de base de datos, presentador de información y las aplicaciones que permiten tener acceso a la información y las comunicaciones a través de Internet, principalmente. En el segundo nivel, la informática como herramienta cubre el espacio correspondiente a los usuarios de los equipos informáticos y sus respectivos programas, dentro de las actividades profesionales cotidianas, esto es, a todas aquellas personas que, sin ser especialistas de la Informática, emplean esta tecnología para facilitar la realización de un sinnúmero de tareas repetitivas y automáticas, mediante programas de uso específico o general. En el caso de las nuevas tecnologías aplicadas a la educación, concretamente de sus aplicaciones pedagógicas, este nivel corresponde a los infopedagogos, que representan los profesionales de la educación del siglo XXI, aquellos que, conociendo la ciencia y el arte de lograr aprendizajes, emplean adecuadamente las nuevas TIC´s para lograr sus objetivos. El tercer nivel de esta pirámide corresponde a la informática como ciencia, esto es, a los científicos, a los investigadores, a los especialistas, a aquellas personas que orientan su formación a obtener conocimientos y capacidades que les convierte en profesionales de esta rama. La forma piramidal representa el nivel de especialidad y profundidad que se alcanza en los diferentes rangos, coincidiendo éstos con el número de personas que se ubican en cada uno de ellos. Así, la cultura informática debería abarcar a la mayoría de la población en una sociedad cada día más informatizada; el uso de la computadora como una herramienta cubre a otro subsector del primero con requerimientos más especiales; y, el estudio de la ciencia informática alcanza a una minoría de profesionales que se dedican a esta actividad.

Las aplicaciones de las TIC en la educación dependen de las decisiones políticas de los responsables de la enseñanza: los directivos de los establecimientos educativos, los profesores encargados de esta actividad, etc. Sin embargo, la adecuada introducción de las nuevas tecnologías en la educación debe obedecer a un proyecto educativo y debe estar guiada por objetivos claramente definidos. Cada uno de los usuarios deberá encontrar las respuestas a sus propias necesidades y escoger las aplicaciones que más convienen para el logro de sus objetivos.
III. OPORTUNIDADES DE LAS NUEVAS TECNOLOGÍAS PARA MEJORAR LA CALIDAD DE LA EDUCACIÓN.

Las TIC’s por si mismas no van a cambiar la educación, pero pueden ser una herramienta que permita llevar a cabo innovaciones educativas. Estas tecnologías ofrecen nuevas alternativas para la estimulación sensorial. Pueden estimular y potenciar la vista, el oído y el tacto.
Las tecnologías modernas nos están dando medios más sofisticados que complementan y amplían las posibilidades de interacción. Las multimedias interactivas pueden ser concebidas para crear aprendizajes a partir de situaciones próximas de la realidad, pero controladas desde un punto de vista pedagógico, de forma que, en el proceso de formación, la transferencia en situación real sea casi inmediata.
La educación tradicional debe transformarse. Se puede seguir en un aula, pero su fisonomía y dinámica deberán cambiar radicalmente. Ahora se deben tener en cuenta los diversos recursos informáticos que puede utilizar el profesorado y las posibles aplicaciones educativas de los diferentes recursos. A saber, los recursos informáticos son los siguientes:

• Aulas virtuales.
• Educación en línea (redes informáticas)
• Educación a distancia.
• Videoconferencias.
• Acceso a bases de datos e información de todo tipo.
• Búsqueda de información actualizada sobre cualquier tema.
• Programas informáticos de propósito general y específicos.

Respecto a estos últimos, en la siguiente tabla se citan los ejemplos más conocidos de estos tipos de recursos y en los apartados siguientes se describen algunas aplicaciones.



Recursos informáticos de propósito general

Se denominan programas de propósito general a las aplicaciones informáticas que
pueden ser útiles para todo tipo de usuarios de ordenador, entre las que actualmente destacan las llamadas herramientas de ofimática tales como procesadores de texto (Word y Word Perfect), bases de datos (DBase, Acces, etc.), hojas de cálculo (Excel, Hoja de calculo de Microsoft Work.), presentaciones (Harvard Graphics, Power Point, etc), entornos de diseño gráfico (Paint, Corel Draw, Autocad, etc) y otro tipo de herramientas como los navegadores de internet (Explorer, Nestcape, etc.), gestores de correo electrónico (Outlook Express, etc.) y recursos para la edición y diseño de páginas Web (FrontPage, etc).

Con relación a estas aplicaciones de uso general hay que señalar que, aunque no tienen necesariamente un carácter educativo, es sumamente conveniente que el profesorado de todos los niveles tenga un conocimiento adecuado de algunas de estas aplicaciones, con el fin de poder utilizarlas en diversas actividades relacionadas con la enseñanza. No es necesario a estas alturas reflejar la importancia educativa de manejar un procesador de textos para que el profesor pueda elaborar apuntes, actividades de clase, exámenes, etc. También es bastante recomendable para el profesorado aprender a elaborar y utilizar en clase presentaciones didácticas por ordenador, o bien colecciones de diapositivas y transparencias, usando una herramienta bastante generalizada y sencilla de usar como Power Point. Por último, no podemos olvidar la gran importancia desde el punto de vista cultural y educativo de saber manejar un navegador para buscar información de todo tipo en Internet o el manejo del correo electrónico para comunicarse entre profesores y alumnos. Estos últimos recursos deberían formar parte de la formación mínima que todo profesor debería adquirir en relación al uso de las TICs en la enseñanza. Los otros tipos de programas de propósito general (bases de datos, hojas de cálculo, diseño de gráficos y de páginas web...), aunque pueden tener un uso más restringido y específico que los anteriores, también pueden ser útiles en la docencia y, por tanto, debería favorecerse su conocimiento entre el profesorado.

Programas específicos de enseñanza de las ciencias asistida por ordenador

En general, la enseñanza asistida por ordenador (EAO) consiste en la utilización de programas específicos diseñados para instruir y orientar al alumno sobre aspectos concretos de las diversas materias y contenidos de la enseñanza. En este sentido hay que tener en cuenta la gran capacidad de los ordenadores como instrumentos para almacenar, organizar y acceder a todo tipo de información. En particular la EAO tiene gran interés en la educación científica y técnica por las posibilidades que ofrece el ordenador desde el punto de vista de la comunicación interactiva, el tratamiento de imágenes, la simulación de fenómenos y experimentos, la construcción de modelos, la resolución de problemas, el acceso a la información y el manejo de todo tipo de datos.

Este área de trabajo se lleva desarrollando desde hace bastantes años y está sujeta a los múltiples avances que se producen con gran rapidez en el dominio de la informática, de manera que resulta difícil hacer una síntesis global de esta temática.

La aplicación didáctica del ordenador en la enseñanza de las ciencias que tiene mayor interés, consiste en la utilización de programas específicos para el desarrollo de diversos aspectos de una disciplina científica, cuyo uso no requiera conocimientos informáticos. Tales instrumentos reciben el nombre genérico de programas instruccionales, aunque en realidad se pueden distinguir diferentes tipos de programas en función de las características de los mismos, los objetivos didácticos que persiguen y las teorías educativas en las que se fundamentan. Dentro de los programas instruccionales existe una amplia gama, que van desde los más simples a los más complejos. Entre los tipos de programas instruccionales que han alcanzado mayor popularidad se encuentran los programas de ejercitación, las enciclopedias multimedia, los programas tutoriales, los programas de simulación y las herramientas de laboratorio asistido por ordenador.

Debido a los recursos informáticos mencionados con antelación podemos vislumbrar la integración de las TIC en la educación como: un “catalizador" de la indispensable transformación educativa; como un “pretexto" que dinamice el quehacer educativo tradicional; como un “recurso" didáctico motivacional multimedia e interactivo por excelencia; como una “extensión" de las capacidades del cerebro humano; como un “canal de comunicación" que posibilite la integración del sistema educativo; como una de las “mejores inversiones económicas" que puede realizar el país; y, sobre todo, como la única posibilidad de “democratización "rápida del acceso a la información que sirva a una educación de calidad. Este exponencial enriquecimiento de las posibilidades educativas trae consigo la necesidad de brindar nuevas herramientas didácticas y metodológicas a partir de una nueva teoría pedagógica construida interdisciplinariamente.

Los contenidos, las aulas, la organización escolar y el equipamiento, deben ser modificados atendiendo a las características de este nuevo mundo que estamos viendo nacer. La escuela no desaparecerá, la interacción social persona-persona es insustituible en la formación del ser humano, pero no la única posible. Podemos afirmar que en un futuro no muy lejano las aulas ya no serán la unidad de acción espacio-temporal única en al educación. No se trata de hacer desaparecer el aula, sino de transformarla en otra cosa. El aprendizaje no se dará únicamente dentro de un aula, el espacio ahora ofrece la posibilidad de la virtualidad.

Conclusiones
El desarrollo de la tecnología ha sido a través de la historia el elemento modernizador del aparato productivo, de la sociedad y del sistema educativo. La educación se ha apoyado de los medios técnicos y tecnológicos disponibles para llevarse a cabo, sin embargo, no hay que caer en un optimismo pedagógico exagerado al pensar que la sola introducción de estas tecnologías producirán de manera automática el milagro de transformar la calidad del proceso educativo. Las TIC’s por si mismas no van a cambiar la educación, pero pueden ser una herramienta que permita llevar a cabo innovaciones educativas.
























REFERENCIAS BIBLIOGRÁFICAS


Facundo, Angel. 2004. La virtualización desde la perspectiva de la modernización de la educación superior: consideraciones pedagógicas. Revista Universidad y Sociedad del Conocimiento, Vol. 1, N. 1 2004.

Jaramillo, Fabián. 1995. ¿Cómo se utilizan las computadoras en los colegios? Quito: Abya-Yala. Colección informática aplicada a la educación, n. 1.

Jaramillo, Fabián. 2000. ¿Cómo formar a los infopedagogos del siglo XXI para integrar la informática a la educación?. Revista de investigación y difusión social de la ESPE. Quito, 2000, n.5.

Naciones Unidas. 2001. Las tecnologías de información y comunicación para el desarrollo humano. Informe sobre desarrollo humano, Ecuador 2001. Programa de Naciones Unidad para el Desarrollo, Quito, noviembre del 2001.

Pontes, Alfonso. 2005. Aplicaciones de las tecnologías de la información y de la comunicación en la educación científica. Revista Eureka sobre Enseñanza y Divulgación de las Ciencias, 2005, Vol. 2, N. 1.

Salinas, Jesús. Innovación docente y uso de las TIC en la enseñanza universitaria. Revista de Universidad y Sociedad del Conocimiento, Vol. 1, N. 1 septiembre de 2004.

Sigales, Carlos. 2004. Formación universitaria y TIC: nuevos usos y nuevos roles. Revista de Universidad y Sociedad del Conocimiento, Vol. 1, N. 1 septiembre de 2004.

Tecnología en Ambientes Colaborativos

Tomado de: Tecnologia Ambientes Colaborativos

2.7.2 Tecnología en Ambientes Colaborativos

En ambientes CSCW, se espera que la tecnología apoye procesos y momentos claves del quehacer organizacional: Documentos compartidos, reuniones, conferencias, comunicación, coordinación de tiempos. En el actual paradigma organizacional se espera disminuir tiempos, controlar el hilo de las reuniones, asegurar resultados.
En particular para cada una de las necesidades anteriores se ha intentado identificar los elementos que deben estar presentes y que garanticen óptimos resultados en los procesos grupales. Es así como se tiene una taxonomía con características bien establecidas y "estandarizadas" de lo que se espera sea cada una de las aplicaciones groupware. Algunos aspectos básicos de cada una de ellas son:
• Correo y Mensajería Electrónica: Este tipo de aplicaciones groupware pretenden facilitar los procesos comunicacionales informales entre el grupo. Se encarga no sólo de transmitir texto, sino imágenes, sonido, video y archivos.
• Manejo de Calendario y Agenda: Este tipo de software, aplicado en ambientes groupware, permite la organización de los tiempos del grupo, programación de actividades, menos gasto de tiempo y dinero en reuniones, mejor planeación de tiempo y recursos.
• Sistemas de reuniones electrónicas: Asiste al grupo en sus reuniones, apoya diferentes momentos identificados en ésta como: comunicación, planeación, pensamiento e información. Para cada uno de estos momentos se tienen mecanismos de control que garantizan la continuidad de la reunión y evitan pérdida de tiempo y esfuerzo.
• Sistemas de Conferencia de datos o de escritorio: Permiten que un grupo de personas puedan ver y trabajar al mismo tiempo sobre los datos (documentos, archivos, etc).
Herramientas de comunicación electrónica.
Éstas incluyen correo electrónico, correo de voz, envió de faxes, publicación Web, sistemas de tablero de boletines, páginas y sistemas telefónicos por Internet. Estas herramientas permiten enviar electrónicamente mensajes, documentos y archivos en la forma de datos, texto, voz o multimedia a través de redes de computadoras. Esto ayuda a compartir todo, desde mensaje de voz y texto hasta copias de documentos de proyectos y archivos de datos con sus miembros del equipo, en cualquier parte que se encuentren. La facilidad y eficiencia de estas comunicaciones los convierten en un contribuyen importante del proceso de colaboración.
Herramientas de conferencia electrónica.
Este tipo de herramientas ayuda a las personas a comunicarse y colaborar mientras trabajan juntas. Una variedad de métodos de conferencia permite a los miembros de equipos y grupos de trabajo ubicados en diferentes lugares intercambiar ideas interactivamente al mismo tiempo, o en diferentes momentos, según les convenga. Las opciones de conferencias electrónicas también incluyan sistemas de reuniones electrónicas, donde los miembros del equipo pueden reunirse al mismo tiempo y situarse en un ambiente de salón de decisiones.
Herramientas de administración de trabajo colaborativo
Este tipo de herramientas ayudan a las personas llevar a cabo o manejar actividades de trabajo de grupo. Esta categoría de groupware incluye herramientas de programación y de calendarios electrónicos, administración de tareas y proyectos, sistemas de flujo de trabajo y depósitos de conocimientos.
Herramientas colaborativas de propósito general
Para hacer efectiva una Administración del Conocimiento dentro de las complejas organizaciones de hoy en día es necesario disponer de herramientas que permitan generar procesos colaborativos, distribuir y sincronizar tareas en la organización, de forma que se pueda reducir el tiempo y aumentar la eficiencia. Estas herramientas engloban procesos que pondrían incluirse dentro de funcionalidades de búsqueda o distribución personalizada de información, pero van mucho más allá de estos para convertirse en paquetes altamente integrados capaces de realizar una administración casi integral del conocimiento de la organización. Tenemos que mencionar que para que estas herramientas tan complejas puedan servir a la organización en su totalidad en muchos casos tienen que realizarse cambios no solo organizativos, sino incluso culturales en la empresa en la que se implanten.
Hay una amplia variedad de herramientas colaborativas o de desarrollo en grupo. Algunas cuyo objetivo principal es la toma de decisiones. En este apartado se menciona algunas herramientas colaborativas de propósito general según la funcionalidad o servicios de colaboración que proporcionan.
En primer lugar tenemos herramientas que proporcionan principalmente servicios de comunicación, como son: Correo Electrónico, mensajería, foros de debate, charla o chat. Algunos ejemplos de herramientas comerciales de este tipo son: Novell GoupWise Lotus Notes Netscape SuiteSpot 3.5 (Netscape SuiteSpot 3.5) o Microsoft Exchange Server 2000 . Todas ellas tienen en común que proporcionan correo electrónico y foros de debate como los principales medios de comunicación entre los usuarios. Los foros de debate permiten la realización de discusiones encadenadas, en la mayoría de ellas sin límite de niveles en dichas discusiones.
Actualmente están surgiendo espacios Web donde los usuarios opinan sobre distintos temas tanto en participaciones a foros de debate como mediante votaciones acerca de lo que otros usuarios han comentado en los distintos foros. Algunos ejemplos son: http://www.barrapunto.com/ o http://slashdot.org/, propiedad de Open Source Development Network, Inc. ("OSDN").
Seguidamente se encuentran las herramientas que además de permitir lo anterior, también facilitan el intercambio de información entre los usuarios mediante servicios de intercambio de archivos o compartición de contenidos. Novell GoupWise y Lotus Notes tienen funciones de Administración de contenido, tales como control de versiones, realización de copias de los documentos compartidos, etc. Otro ejemplo es BSCW (Basic Support for Cooperative Work), herramienta desarrollada por GMD, German National Research Center for Information Technology . BSCW proporciona un entorno donde compartir documentos, directorios, calendarios (para la gestión de reuniones), libro de direcciones, enlaces y otros elementos. También da la posibilidad de llevar a cabo el control de versiones de los documentos compartidos.

Documento Original: Documento

ÉTICA ENTRE CIENCIA Y TECNOLOGÍA: APUNTES PARA REFLEXIONAR ANTE LOS DILEMAS DE LA INFORMÁTICA

Tomado de: Etica

Mario González Arencibia,
Universidad de las Ciencias Informáticas,
La Habana junio del 2006.


Introducción: ética y moral como núcleo de la relación ciencia-tecnología
Mucho tiempo ha transcurrido desde la época en que se pensaba dicotómicamente que la ciencia y la tecnología eran neutras y que sólo la política, la economía, o la ética tenían que ver con los asuntos relacionados con los valores. Asistimos a una etapa de pensamiento humano, que ha hecho una severa crítica a la ciencia y a la tecnología y sus pretensiones ingenuas de objetividad.
En este escenario enfrentamos un mundo en el que se esfuman viejas realidades, y las modificaciones que se están produciendo no son ya, principalmente, de orden físico o material. Estas tienen serias implicaciones en la definición de los valores que van a participar en darle una orientación digna a la conducta humana. El hecho es que estamos en una época histórica, en que cada vez más se concientiza la relación ética, ciencia y tecnología. Para el establecimiento de esta relación se tiene como núcleo central la ética como concepto, entendida en su más amplia acepción como la disciplina encargada de estudiar la valoración moral de los actos humanos, o el modo de explicar las condiciones de una convivencia justa. Según este planteamiento la ética es un instrumento de orientación de los seres humanos, que permite seleccionar los causes que se corresponden con la dignidad humana. Del concepto planteado se deduce que la moral es el eje alrededor del cual se mueve la ética. Cuya función es la de preservar la sociedad, de manera que los actos humanos se desarrollen de forma positiva para esta. Siendo así, se podría argumentar que la moral, es cultura en tanto influye en el comportamiento positivo de las personas.
En este sentido se podría plantear que la moral tiene como base, principios, normas, valores, cualidades e ideales que guían al hombre sobre la forma de comportarse para desarrollar una vida honesta. Es decir, la moral es el movimiento progresivo hacia un determinado modelo de comportamiento, tiene como función el perfeccionamiento de la conducta de los seres humanos.
A partir de los aspectos anteriormente esbozados el objetivo de esta presentación consiste en delinear las bases sobre las que se fundamenta la relación, ética, ciencia y tecnología, de manera que ello permita reflexionar ante las profundas implicaciones sociales que podría tener el inadecuado empleo de la informática.
Se parte de la idea que en el campo de la informática está naciendo un tipo específico de ética, que no se reduce a la simple delineación de las reglas de conducta, sino por el contrario, supone la indagación acerca de los modificaciones reales que se están produciendo en las relaciones morales, referidas a la decadencia de viejos razonamientos morales y nacimiento de otros nuevos que definen los comportamientos objetivos que se derivan del desarrollo de la informática.
¿Qué plantea el debate en la relación ética, ciencia y tecnología? El debate actual acerca de la relación ética, ciencia y tecnología, parte del supuesto de que la ética está por encima, y es la que tiene que guiar a la ciencia y a la tecnología en su capacidad de servir al desarrollo del hombre. Se reconoce que la ciencia y el desarrollo tecnológico brindan los medios y el conocimiento para construir grandes sistemas informáticos, pero es la ética la que juzgará si es legítimo o no el aplicarlos o desarticularlos. El efecto es que la ciencia y la tecnología no son neutras ni en los usos que se le pueda dar, ni en los medios que utiliza para alcanzar sus fines, que es el conocimiento. En este marco es importante reflexionar ante el rol de las Ciencias Informáticas, las cuales, tienen como base construir realidades de interacción social según su carácter socio-clasista. Sin embargo, en su posibilidad de actuar también está presente la posibilidad de presentar o construir esa realidad deformando los sentidos de acuerdo a lo que le interese al individuo. Por lo que el riesgo de manipular la realidad en función de la naturaleza valorativa de los intereses del ser humano, es un hecho que aguarda permanentemente cualquier área del saber y del ejercicio humano en el escenario de la informática. Según esto se podría hacer la siguiente pregunta: ¿Son los conocimientos y avances científico-tecnológicos vinculados a la informática, como tales la fuente de este tipo de amenazas? ¿O es su utilización por otros hombres, por los medios del poder político y económico?
Ateniéndose a las realidades actuales del mundo, la respuesta puede resultar obvia. De hecho, una enorme parte de la población mundial no esta amenazada por los avances científico-tecnológicos de la informática, sino precisamente por su falta de acceso a ellos, proliferando una enorme brecha digital. Las tensiones sociales que genera esta falta de equidad implican un peligro tan grave para el entramado social que ya no es posible continuar soslayándolo.
Necesidad de clarificar los dilemas éticos Las bases sobre las que avanza el empleo de la informática en el mundo actual hace más necesaria la clarificación de los dilemas éticos que presenta la acción humana en este contexto. Según los analistas del siglo XXI será probablemente el siglo de la ética. Ello está determinado por múltiples factores. El fundamental el avance de la informática y sus implicaciones sociales. En este ámbito los avances de la nanotecnología, especialmente de la bio-informática, introducen en la conducta del hombre capacidades insospechadas de manipulación de la naturaleza biológica y humana que hasta ahora no eran posibles. Si hasta el momento la evolución de las especies se producía por mecanismos más o menos naturales, ahora el hombre es capaz de romper esas barreras e intervenir en las mismas leyes que gobiernan la evolución. Según esto es razonable pensar en varias preguntas problémicas antes de actuar: ¿Vale la pena preguntar cual debe ser el límite adecuado para esta intervención? ¿Es posible identificarse solo con la idea de que el valor absoluto y por encima de todo es el avance del conocimiento por sí mismo? ¿Sería bueno pensar que el conocimiento se convierta en un fin en sí mismo, y ponga en riesgo otro valor -que es mucho más importante, la convivencia armónica entre los seres humanos? Durante el siglo XIX se quedaban en el marco prácticamente “teórico” ciertos problemas éticos provocados por el avance de la ciencia y de la tecnología. En la actualidad la connotación social de estos hace que afloren fuertes preocupaciones. En este marco resalta la crisis ecológica que vive el mundo. Revalorizar la ética en el marco del desarrollo de la informática. Para el caso que ocupa este trabajo relacionado con la reflexión ética frente a los dilemas de la informática, se podrían plantear varias cosas que pudieran hacer pensar en la importancia de revalorizar la ética en el marco del desarrollo de la informática. Primero, la informática ha llegado a ser el centro y la base de todas las operaciones importantes de las sociedades más desarrolladas. Prácticamente no es posible ubicar estas sociedades sin las redes de ordenadores. La mayoría de las operaciones industriales, comerciales, militares, así como servicios tales como transportes, de salud, educación o de investigación, se pararían en seco y dejarían de funcionar sin el apoyo que reciben de los medios informáticos. Segundo, la informática es ciertamente la tecnología más importante que aparece en el siglo XX, revolucionando modos de pensar y ser de sociedades y personas. Lo que hoy se conoce como Tecnologías de la Información y las Comunicaciones, podrían llegar a tener con el tiempo, un impacto social igual o incluso superior al que se le ha otorgado a la Revolución Industrial. Tercero, la informática imprime múltiples potencialidades entre ellas, la posibilidad de manejar fácilmente grandes cantidades de información, la comunicación prácticamente instantánea con cualquier parte del mundo a través del Fax o el correo electrónico (e-mail), la televisión interactiva, la educación primaria y secundaria apoyada por ordenador, la implantación cada vez más frecuente de sistemas inteligentes para controlar diversos automatismos en nuestra vida corriente. Todos estos cambios están configurando novedosos modos de vida y nuevos problemas, en donde la informática toma el rol de protagonista principal. Cuarto, conforme la sociedad se hace más dependiente de la informática, se hace también más vulnerable a los fallos que se produzcan en este sistema, bien sea por un mal funcionamiento de los ordenadores o bien sea por un mal uso por parte de las personas que deben manejar dichos conocimientos. Los fallos informáticos han creado un nuevo repertorio de problemas sociales, proliferando términos como crimen por ordenador, robo de software, piratas y virus informáticos. Estas son realidades cada día más frecuentes y comienzan a significar un problema importante que obstaculizan el desarrollo social.
Algunas preguntas para reflexionar ante los dilemas éticos
Por otra parte, cada uno de estos problemas crea dilemas éticos para los profesionales y usuarios de la informática. En este marco sería prudente para reflexionar, hacer preguntas como: ¿Es lícito copiar un programa de software?, ¿Hasta donde tengo que comprobar un programa para estar seguro de que éste no tiene fallos?, ¿Es lícito entrar en redes de ordenadores a las que no se tiene acceso permitido? El hecho es que estos problemas se están convirtiendo en dilemas frecuentes que se plantean los profesionales de la informática y para las que no es fácil encontrar una respuesta única. Estas valoraciones son importantes a los efectos de tomar decisiones sobre como enfrentar los dilemas éticos que se derivan del inadecuado uso de la informática.
¿Desarrollar una ética aplicada a la informática y a sus profesionales solamente?
Se coincide con la idea de desarrollar una ética aplicada a la Informática, así como introducir códigos de ética profesionales, los cuales podrían ayudar a pensar y a solucionar muchos de estos problemas, permitiendo por tanto un manejo adecuado de la Informática en función del desarrollo social. Pero el problema no es tan sólo de desarrollar una conducta para los profesionales de la informática que sea moralmente buena. Su magnitud es mucho mayor. Un uso irracional de la informática puede provocar graves problemas que incluso involucren el coste de vidas humanas.
¿Cuál es la causa de los usos inadecuados de la informática? Es doble
En primer lugar, en ocasiones la Informática se considera en ocasiones como una ciencia de segunda clase, lo que estimula que cualquier persona se atribuya el derecho o la capacidad de manipular o hacer un programa. Ello implica que programadores o personas con poca calificación son a veces los encargados de colaborar o desarrollar importantes aplicaciones informáticas, cuya eficiencia y seguridad en absoluto está garantizada. En segundo lugar, la no existencia de normas éticas claras da lugar a un inadecuado manejo de la informática. La solución a este problema es asimismo doble: por una parte, mejorar la imagen social de la Informática, proporcionándole la importancia que tiene, y explicando sus implicaciones sociales. De manera que obligue a que los profesionales de la Informática y a los usuarios a repensar de forma permanente sus acciones en este marco. Por otra parte, desarrollar un código ético que establezca pautas de conductas correctas para los profesionales y usuarios de este campo.
La reflexión sobre la ética en el campo de la informática no equivale a fomentar buenas intenciones: hablamos de una ética de sentido común
El desafío que tiene la sociedad del siglo XXI frente a los dilemas que ocurren en el campo de la informática, es el de introducir correctivos a los comportamientos sociales negativos, que van en contra de la naturaleza humana. De otra manera, de nuevo caeríamos en la cuenta que una sociedad sin una ética se hace ciega e inhumana.
Sólo tomando conciencia de que es el sujeto humano, el que tiene que asignar valor a las cosas y establecer los criterios para el desarrollo de la ciencia, la tecnología y la informática en correspondencia con el desarrollo social, es lo que hará permisible una coexistencia humana. El hecho es, que los problemas sociales que acompañan la informática en cualquier región del planeta tienen implicación en los demás países. Pero ninguno de estos problemas se podrá resolver si no se apela a la ética.
Por consiguiente, se debería reconocer en cualquier debate relacionado con las pregunta acerca de cómo enfrentar los dilemas éticos del inadecuado empleo de la informática sobre los siguientes aspectos: a) El derecho no es más que la legalización de los valores éticos. Pero las leyes no pueden formularse sin una previa reflexión de la sociedad, que busque las convergencias axiológicas sin discriminar las minorías de ningún tipo. b) Por otra parte, ninguna legislación, código o constitución es capaz de agotar todos los dilemas éticos que se plantean en la convivencia social. De ahí que cada vez, sea más necesaria una formación moral a todos los niveles de la sociedad. En todo caso, el dilema de la ética en el contexto de la ciencia y la tecnología, y particularmente en el ámbito de la informática, no se resuelve a través del establecimiento de normas y códigos, sino a través de una comprensión ética más amplia de las implicaciones y efectos futuros de los resultados en todos los contextos del quehacer humano. En este sentido, la postura ética de cada profesional y usuarios de la informática debería conjugar una capacidad de visualización y percepción del impacto de los nuevos conocimientos, con una actitud más responsable y respetuosa coherente con los valores sociales que están en correspondencia con el desarrollo social.

Comentarios finales
De acuerdo a lo planteado se pudiera llegar a la idea de que el desarrollo de la ciencia y la tecnología y sus implicaciones sociales en el campo de la informática han llevado a revalorizar la ética, en lo que es importante reconocer varias cosas: En la práctica, la ética informática de la sociedad capitalista es "tanto tienes, tanto vales". Los desarrollos de la ciencia y la tecnología y su derivado: la informática, no son éticamente neutros. Estamos ante un desarrollo de la informática, que está haciendo emerger una perspectiva ética diferente. El salto cualitativo y cuantitativo de la ciencia y la tecnología en el escenario de la informática ha avejentado extraordinariamente la visión clásica de la ética. Ello se concreta en lo siguiente: Desplazamiento de la ética como disciplina tecnológica hacia preocupaciones más específicas que pueden ser empleadas en el contexto del desarrollo tecnológico en correspondencia con el perfil del profesional. Abandono de la concepción ética como autónoma. El efecto es el desarrollo de la ética aplicada a la práctica ingenieril y tecnológica. Mayor preocupación por el análisis de las consecuencias de las decisiones que se tomen con relación a la introducción de la tecnología. La idea es que existe más conciencia de que una sociedad dejada a sus solas fuerzas salvajes termina construyendo o manteniendo espantosas diferencias sociales, indignas de una humanidad.
El criterio es que una comprensión de la importancia de la reflexión ética en el marco de la informática, podría contribuir a recapacitar ante principios tan significativos sobre los cuales debe preocuparse el profesional de las Ciencias informáticas tales como:
1. Secreto profesional del informático, confidencialidad.
2. Responsabilidad profesional del informático.
3. Lealtad del informático a su institución y a su país.
4. Dignidad, honestidad, honradez del informático.
5. Primacía al servicio del bien social.
6. Preparación académica y formación continua.
7. Solidaridad profesional.
8. Integridad profesional.
9. El informático debe apoyar y practicar el derecho a proveer y recibir información.
10. El informático debe trasmitir datos con exactitud.
11. El informático debe evitar invasiones a la intimidad.
12. El informático debe utilizar solamente justos y honestos medios en el ejercicio de su actividad profesional.
13. El informático debe colaborar en el desarrollo y promoción de la informática.
14. El informático debe demostrar competitividad.
15. El informático debe respetar y proteger la propiedad intelectual observando los derechos de autor, mencionando las fuentes, haciendo citas y referencias apropiadas.
16. Confrontar constantemente sus ideas, perfeccionarlas y darlas a conocer.
17. Defender sus criterios con valentía profesional, objetividad y respeto a los demás.
18. Asumir una actitud crítica y autocrática ante los errores como instrumento de una constante autorregulación moral.
19. Aceptar los puntos de vista, así como las experiencias de otros especialistas, que contribuyan al desarrollo del profesional y de la profesión misma.
20. Estudiar y evaluar los posibles impactos que su acción pueda producir al entorno natural y social.
21. Velar por el ahorro de recursos, tanto renovables como no renovables, teniendo en cuenta que unos se agotan y los otros necesitan recuperarse.
22. Transmitir, teórica y prácticamente una educación que permita comprender la dimensión ambiental de la ingeniería
De acuerdo a lo anterior se sigue la idea del Comandante en Jefe Fidel Castro Ruz cuando plantea: “El acceso al conocimiento y la cultura no significa por sí solo la adquisición de principios éticos; pero sin conocimiento y cultura no se puede acceder a la ética”. Esta valoración situada esto en el contexto que se presenta en este texto, significa que no se debe valorar la preparación profesional de los informáticos, ni de calidad y excelencia profesional, haciendo referencia exclusiva al nivel de calificación relacionada con el dominio de los conocimientos informáticos.
La excelencia del profesional se logra cuando la tecnología informática se convierte en un instrumento al servicio de una realidad más humana. Fincada en el caso cubano en la ética de los principios del proyecto socialista. La idea es que la informática solo tiene sentido humano cuando preserva el exquisito respeto por cada unos de los derechos y libertades en los que se materializa la dignidad humana. Por consiguiente, “… los valores éticos son esenciales, sin valores éticos no hay valores revolucionarios”.
A los efectos de lo anteriormente expresado vale la pena dejar planteada aquí la idea con la que se identifica el Código de Ética Profesional de los Trabajadores de la Ciencia en Cuba, lo cual forma parte de la base sobre la que se sustenta el desarrollo de la informática en Cuba: “La ciencia carecerá de sentido si no se fundamenta en el principio del humanismo, puesto que toda actividad científica deberá orientarse por el reconocimiento del hombre como valor supremo. Es precisamente el hombre, su vida, bienestar, salud, cultura, libertad y progreso, quien le confiere sentido a la ciencia".
Bynum, Terrell Stanford Encyclopedia of Philosophy. Computer Ethics: Basic Concepts and Historical Overview. Disponible en: http://plato.stanford.edu/ (Consultado noviembre 12 del 2005).
Castro Ruz, Fidel. Discurso en la sesión de clausura del Congreso de Pedagogía. 7 febrero del 2003 en: Las ideas son el arma esencial en la lucha de la humanidad por su propia salvación. Oficina de Publicaciones del Consejo de Estado, La Habana 2003.
Castro Ruz, Fidel. Presidente de la República de Cuba, Discurso pronunciado en el acto por el aniversario 60 de su ingreso a la universidad, efectuado en el Aula Magna de la Universidad de La Habana, el 17 de noviembre de 2005. http://www.cuba.cu/gobierno/discursos/2005/esp/f171105e.html (Consultado 12 de enero del 2006).
Clark, Ismael. Ciencia, tecnología y sociedad. Desafíos éticos. En Tecnología y Sociedad (Colectivo de autores) Editorial Félix Varela, La Habana 1999.
Fabelo Corzo, José Ramón. “Los valores y sus desafíos actuales” .Editado por la Universidad de Puebla, México, 2001.
González Arencibia, Mario (Compilador). Selección de lecturas sobre Ética informática. Material de apoyo a la docencia. Asignatura Ética Informática. Universidad de las Ciencias Informáticas, La Habana enero del 2006.
González Arencibia, Mario. Aspectos éticos a considerar para el desarrollo de los trabajos de diploma en los estudiantes de la UCI para el curso 2006-2007. Universidad de las Ciencias Informáticas, La Habana, 4 de junio del 2006.
González Arencibia, Mario. Estrategia Curricular de Ética Informática. Presentada a la Comisión de Carrera, el 3 de marzo del 2006. Universidad de las Ciencias Informáticas, La Habana mayo del 2006.
González Arencibia, Mario. Programa de la asignatura Ética informática. Universidad de las Ciencias Informáticas, La Habana mayo del 2006.
López Bombino, Luís R. El saber ético de ayer a hoy tomo I y II, Editorial Félix Varela, La Habana 2004.
Martí, José. "Educación popular". En: Obras Completas, Tomo 19. Editorial ciencias Sociales. La Habana, 1991.
Martín Gordillo, M., Osorio, C. y López Cerezo, J.A. (2001). La educación en valores a través de CTS. En G. Hoyos Vásquez et al., La educación en valores en Iberoamérica (pp. 119-161). Madrid: OEI, Papeles Iberoamericanos.En http://www.campus-oei.org/salactsi/mgordillo.htm (Consultado 7 junio 2006)
Martín Gordillo, Mariano y Juan Carlos González Galbarte. .Reflexiones sobre la educación tecnológica desde el enfoque CTS”. Disponible en: http://www.campus-oei.org/revista/rie28a01.htm (Consultado febrero 5 del 2006)
Vargas, Celso. El filósofo y las disciplinas tecnológicas: el caso de la reflexión ética en computación. Revista Comunicación. Volumen 13, año 25, No. 2, Costa Rica, Agosto-Diciembre 2004
Vilches, A. y Furió, C. (1999). Ciencia, Tecnología y Sociedad: implicaciones en la educación científica para el siglo XXI. Madrid: OEI. Disponible en http://www.campus-oei.org/salactsi/ctseducacion.htm