Desarrollo Colaborativo

 

No. De Matricula:

20440517 (Lezama)

20441266 (Delgado)

20440756 (Díaz)

20440519 (Galaviz)

 

Fecha:

12/11/2020

Nombre del Estudiante:

Lezama Bañuelos Julio Antonio

Delgado Valenzuela Iván Ernesto

Galaviz Álvarez Ángel Rodrigo

Díaz Fiel Martín

 

Carrera:

Ingeniería Informática

Fecha de entrega:

12/11/2020 en Horario de clase

 

Nombre de la Materia:

Taller de ética

Bibliografía

 

Maritza Rojas de Gudiño. (2010). LA DIMENSION ÉTICA DEL APRENDIZAJE COLABORATIVO. 10/11/2020, de Eduweb Sitio web: http://servicio.bc.uc.edu.ve/educacion/eduweb/vol1n2/v1n2-7.pdf

 

Barcelona. (2018). Desarrollo colaborativo. 10/11/2020, de Barcelona Sitio web: https://www.barcelona.cat/digitalstandards/es/free-soft/0.2/collaborative-development

 

Diaz, J., Olaya, J. F., & Franky, C. (2010). ConstruColectiva: Guía metodológica para la gestión de proyectos de software basados en metodologías ágiles, utilizando ambientes de desarrollo colaborativo. Caso de estudio: GForge. Undergraduate final project, Pontificia Universidad Javeriana. Available in http://pegasus. javeriana. edu. co/~ CIS0910IS05.

 

Gayo, J. E. L., Lanvin, D. F., Salvador, J. C., & del Río, A. C. (2006). Una experiencia de aprendizaje basado en proyectos utilizando herramientas colaborativas de desarrollo de software libre. Dpto. de Informática Universidad de Oviedo C/Calvo Sotelo S/N CP, 33007.

 

Miriam Martinez Canelo (2020) 6 herramientas de desarrollo de software colaborativo en tiempo real,11/11/2020, de profile Sitio web: https://profile.es/blog/herramientas-de-desarrollo-de-software/

 

Javier Puyol . (2017). ¿Qué es y en qué consiste el “software” colaborativo?. 12/11/2020, de confilegal Sitio web: https://confilegal.com/20170122-consiste-software-colaborativo/

 

 

Título del tema: Desarrollo Colaborativo

Descripción del Tema: Se elaborará en equipo un reporte que recopile información de lo que es el tema de Desarrollo Colaborativo en lo que respecta al área general de la Informática, en este tema se abordaran distintos tópicos del mismo, como puede ser la involucración de la ética y el cómo interviene, la importancia del tema mismo en general, sus ventajas, el cómo ha aportado a lo que es el desarrollo de software, etcétera.

Desarrollo del Tema:

Introducción:

La creación de software es una actividad compleja que requiere de la colaboración de grandes equipos de personas. Aunque, en numerosas (quizá excesivas) ocasiones, se enseña a los estudiantes a crear pequeños programas de forma individual, en la realidad, la mayoría de los productos software son desarrollados por mucha gente que debe organizarse. No es de extrañar que una de las habilidades que valoran las empresas de un desarrollador software sea su capacidad de trabajo en equipo.

Por otro lado, el movimiento de software libre ha mostrado la posibilidad de que se desarrollen grandes productos de forma colaborativa entre grupos de personas poco organizados, con intereses muy diferentes y geográficamente distantes. Para ello, se han desarrollado herramientas que facilitan este esquema de trabajo.

La importancia del desarrollo colaborativo y las metodologías agiles:

El desarrollo Colaborativo como tal en lo que respecta al área de informática se podría definir como un modelo de programación o desarrollo de software, en la cual 2 o varias personas trabajan en un mismo proyecto en tiempo real, pero, ¿En que radica su importancia?, una gran parte de los proyectos de software no terminan con éxito debido a la descoordinación, la falta de comunicación, la falta de apoyo en el seguimiento gerencial, y un control deficiente a los cambios, a estas herramientas de desarrollo colaborativo también se les llama metodologías agiles, en las cuales su ventaja radica en la proposición de entregas iterativas e incrementales y siguiendo principios de comunicación permanente entre desarrolladores y clientes además de dividir el proyecto en fases para un proceso más seguro y eficiente.

En ingeniería de software, las metodologías ágiles hacen uso de los fundamentos del desarrollo iterativo evolutivo y del desarrollo adaptativo. El primero de los anteriores mencionados implica que los requerimientos, los planes, las estimaciones y las soluciones evolucionan o son refinados a través de las iteraciones. De una forma similar, el desarrollo adaptativo implica que los elementos se adaptan de acuerdo a la realimentación brindada por los usuarios, probadores, desarrolladores, y demás involucrados. Durante la ejecución de cada una de las iteraciones, se llevan a cabo diferentes actividades de desarrollo de software de forma secuencial como son: el diseño, la implementación y las pruebas; al finalizar se obtiene su correspondiente entrega (iteration release).

La entrega de una iteración (iteration release), consiste de un módulo funcional (conjunto de casos de uso) del sistema final, junto con sus respectivos documentos que se obtuvieron durante la realización de sus correspondientes actividades de desarrollo. También es necesario mencionar, que al iniciar una iteración, se trabaja sobre la entrega de la iteración anterior, de tal forma que en la entrega de la iteración final, se obtiene el sistema final.

¿Qué es un ambiente de desarrollo colaborativo?

Un ambiente de desarrollo colaborativo se define como un espacio virtual donde todas las partes interesadas de un proyecto, incluso si están en diferente espacios o momentos, pueden negociar, hacer una lluvia de ideas, debatir, compartir conocimientos y en general trabajar en conjunto para llevar a cabo algunas tareas, la mayoría de las veces para crear una aplicación y sus artefactos. En un ambiente de desarrollo colaborativo se definen distintos rastreadores de actividades (trackers), cada uno con un flujo de trabajo asociado (workflow).

¿Qué es un tracker o rastreador?

Un rastreador (tracker) se podría definir como una herramienta de software que permite registrar y seguir las actividades que se han definido dentro de un flujo de trabajo, como son sus eventos generados y el estado de dichas actividades con sus correspondientes componentes.

¿Qué es un flujo de trabajo o workflow?

Se puede definir a un flujo de trabajo (workflow) como el modelo de la gestión de todas las actividades que se van a llevar a cabo dentro de un proceso de negocio, teniendo en cuenta sus distintos involucrados. Este modelo también se aplica a un proyecto de software y establece una secuencia de actividades, la cual en algunos casos puede ser iterativa, en donde se pretende definir los diferentes estados por los que podrán atravesar sus procesos involucrados.

¿Qué involucra el desarrollo del software libre y cuáles son sus ventajas?

En los proyectos de software libre hay una cultura de trabajar en abierto, ya que esta facilita las condiciones que los hacen sostenible financiera y técnicamente. Es de interés para todos los proyectos incrementar la afluencia de recursos hacia los mismos, y eso pasa por lo siguiente:

·         Incrementar la cantidad de personas o instituciones que utilizan el software.

·         Propiciar la transición de cualquier persona o entidad usuaria a alguien que participe en el proyecto de la manera que sea: contribuyendo con código, testing, correcciones, financiación, difusión, traducciones, etcétera.

Fuera de este modelo, basado en incentivar la colaboración, es muy difícil materializar las ventajas potenciales que ofrece el paradigma del software libre. Hay dos elementos clave en todo esto:

·         Transparencia. Esta no se tiene que limitar al código. Para que haya verdadera colaboración, la transparencia debe abarcar toda la infraestructura de comunicación, conocimiento y toma de decisiones del proyecto.

·         Diseminación del conocimiento. A diferencia de los modelos de negocio clásicos, aquí interesa que el conocimiento sobre el producto, hasta los detalles más técnicos, esté lo más distribuido posible. Eso reduce el riesgo tecnológico y la dependencia del Ayuntamiento sobre empresas concretas.

·         Participación de la comunidad. Esto refuerza tanto el proyecto, con más ideas y recursos, como las comunidades locales.

Trabajar en abierto supone que los siguientes elementos sean públicamente accesibles (para lectura) a toda persona interesada en formatos abiertos, sin tener que usar herramientas privativas y de forma anónima (sin tener que registrarse en ningún servicio web y mucho menos teniendo que contratar servicios de pago):

·         El repositorio de código.

·         El gestor de incidencias (donde, entre otros, se notifican y gestionan los defectos o bugs).

·         Los documentos de diseño.

·         La documentación de usuario/a.

·         Los canales de comunicación donde el equipo de desarrollo toma las decisiones técnicas.

Trabajar en abierto no significa (necesariamente) lo siguiente:

·         Que personas externas al proyecto tengan acceso de escritura al repositorio (son libres de copiar el código en un repositorio propio y modificar su copia).

·         Que todo el mundo tenga permiso para escribir notificaciones de defectos e intervenir en el gestor de incidencias, cada proyecto puede escoger su política de calidad.

·         Que el equipo del proyecto tenga que leer y responder todas las notificaciones de defectos (si están abiertas para escritura) ni todas las preguntas en los canales de comunicación abiertos.

·         Que el equipo del proyecto tenga que revisar todas las sugerencias y contribuciones (pull requests, patches) que reciba, si se considera que los recursos están mejor invertidos en otra tarea.

 

¿Cómo influye la ética en el desarrollo y aprendizaje colaborativo?

Tomando de referencia lo anterior visto veremos cómo está la ética llevada a cabo y en conjunto al desarrollo y aprendizaje colaborativo:

La ética es una disciplina teórica que versa sobre lo práctico: la acción, es decir, los hechos. Esta orientación teórica es un marco de reflexión ideal para que todo ser humano tome decisiones de acuerdo al criterio de aquello que es correcto o aquello que es justo también. Puede definirse como la actividad personal, puesta de una manera estable y honrada al servicio de los demás y en beneficio propio, a impulsos de la propia vocación y con la dignidad que corresponde a la persona humana. En virtud de su profesión, el sujeto ocupa una situación que le confiere deberes y derechos especiales, como se verá: La Vocación. La elección de la profesión debe ser completamente libre. Quien elige de acuerdo a su propia vocación tiene garantizada ya la mitad de su éxito en su trabajo. Finalidad de la Profesión.

Los líderes empresariales son elegidos en el convulsionado mundo actual fundamentalmente para generar resultados, pero no a cualquier precio, lo que incorpora a la acción del líder una variable importante, la ética. La Ética Empresarial “es un valor intrínseco de toda actividad económica y organizacional porque cualquier actividad empresarial atrae hacia sí un cúmulo de factores humanos”, donde la dignidad personal es un valor que debe presidir las decisiones de cualquier organización y la convicción de que la armonía social exige la práctica habitual de conductas verdaderas.

·         Una iniciativa y/o proactividad ante el trabajo que le corresponde en el grupo.

·         Un respeto por sus compañeros de grupo como seres iguales, con los mismos derechos y deberes.

·         Una responsabilidad para asumir las consecuencias de las propias acciones y del grupo.

·         El ser independiente como individuo y a la vez interdependiente como grupo.

·         Una capacidad de auténtico liderazgo democrático.

Herramientas de desarrollo de software colaborativo en tiempo real

Las empresas tecnológicas dedicadas al desarrollo de software a veces pueden encontrarse con dificultades para adaptar sus procesos y asegurar la calidad. La realización de pruebas continuas es la forma de lograrlo, pero requiere de la colaboración en tiempo real para mejorar el trabajo de los equipos de desarrolladores que comparten la misma base de código. Actualmente, existen varias herramientas de desarrollo colaborativo de software en tiempo real que permiten trabajar a dos personas en el mismo código a la vez, sin necesidad de hacer turnos para desarrollar un código final.

A continuación, se mencionarán las mejores herramientas de software colaborativo.

·         Codeanywhere

Codeanywhere es un entorno de desarrollo web totalmente online que puedes usar en diferentes dispositivos y permite usar diferentes lenguajes de programación como PHP, HMTL5, Java, Javascript, Python, Ruby o C++.  Esta cloud app ofrece versiones para usar en dispositivos móviles Android y IOS. Esta aplicación tiene una versión gratuita, pero con algunas limitaciones. Ofrece diferentes licencias según los recursos que necesites. Una característica interesante que contiene este entorno de desarrollo web es que nos permite vincular servicios de almacenamiento en la nube para hospedar los archivos que estamos editando. Con esta herramienta podrás compartir código con otros compañeros enviándoles un enlace y también podrás colaborar en tiempo real para que otros editen tus archivos.

Permite compartir un código con otros sólo con enviarles un enlace, o configurar una colaboración en tiempo real que permita a otros editar tus archivos en tu “editar”. Incluso deja proporcionar acceso SSH a terceros a proyectos.

·         AWS Cloud9

AWS Cloud9 es un entorno de desarrollo integrado (IDE) de Amazon basado en la nube que permite escribir, ejecutar y depurar código solo con un navegador. Consta de un editor de código donde puedes ver quién ha escrito las líneas claramente además de un chat incluido dentro de la pantalla. También, tiene un depurador y un terminal. Puedes ver lo que escriben los demás, con pistas visuales que indican quién ha escrito qué líneas de código, y chatear en un panel dentro de la pantalla. Los administradores del proyecto pueden otorgar permisos de lectura y escritura, o solo de lectura, a los colaboradores Cloud9 incluye herramientas esenciales para los lenguajes de programación más conocidos, como JavaScript, Python, PHP, entre otros, por lo que no necesita instalar archivos ni configurar su máquina de desarrollo para empezar nuevos proyectos. El IDE de Cloud9 está basado en la nube, por lo que te permite trabajar en tus proyectos desde cualquier sitio con conexión a Internet.

·         Sublime Text 3

Es uno de los editores de código más utilizados y conocidos del desarrollo web independientemente del lenguaje de programación o perfil del usuario frontend/backend. Esta herramienta es válida tanto para Mac, Windows como Linux. Se define por ser muy ágil permitiendo editar un archivo de forma rápida y fácil. Cuenta con una gran cantidad de plugins que permite su personalización y aumenta sus funciones, como un asistente para localizar rápidamente los errores de código o personalización de temas y colores para cambiar la apariencia.

Se puede probar y descargar de forma gratuita, aunque no es software libre o de código abierto. La licencia para su uso continuado cuesta aproximadamente 70$ pero puede utilizarse en la versión de evaluación que es plenamente funcional y no tiene fecha de caducidad.

·         Atom

Se trata de un editor de texto web open source desarrollado por GitHub con interfaz amigable, rápido y con muchas posibilidades cuya versión es libre.

Permite trabajar en cualquier sistema operativo como Windows, OS X o Linux, dispone de autocompletado inteligente que nos facilita la escritura de código e instalación de paquetes o instalación de los tuyos propios. Tiene la opción de buscar y reemplazar de manera sencilla además de un autocompletado inteligente que permite una rápida escritura del código.

Atom, sus capacidades y su carácter gratuito es una buena opción para tener en cuenta.

·         Brackets

Editor de código diseñado por Adobe y de código abierto ayuda a desarrolladores y diseñadores a trabajar con HTML, CSS y JavaScript. Este potente editor incluye una interfaz visual y directa que dispone de detección automática del código y texto predictivo. Permite la coloración para identificar segmentos. A través del área de trabajo podemos organizar los elementos de nuestro proyecto en árbol e integrar los archivos de código y los propios elementos visuales que formen parte de la web que se desea.

·         Codesandbox live

Ofrece un entorno de desarrollo online rápido de apps web compatible con lenguajes de programación como JavaScript, TypeScript y con frameworks como React, Angular y Vue. Permite trabajar invitar a terceros para trabajar de forma simultánea en un proyecto y editar conjuntamente en tiempo real, además, dispone de un chat para facilitar las conversaciones. Con esta herramienta podrás dar diferentes tipos de permisos a los usuarios en su modo aula, otorgando roles de editor o lectura.

Dispone de un plan gratuito, pero para contar con sandboxes privadas y repos ilimitados de Github para proyectos, el precio es de 9$.

Conclusiones del Tema:

Lezama Bañuelos Julio Antonio:

Terminado la investigación y lo que lleva a cabo las normas o valores de la ética, como tener la investigación terminada, para poderla unir y que tenga coherencia y sea más firme la información en nuestro trabajo, que publicaremos cada uno del equipo en su sitio web.

Delgado Valenzuela Iván Ernesto:

Para un proyecto de desarrollo de software en estos días es crucial contar con herramientas de desarrollo colaborativo que faciliten la comunicación y coordinación ya sea entre los mismos desarrolladores o también con los clientes, el trabajo en equipo también es crucial a la hora de realizar proyectos.

Galaviz Álvarez Ángel Rodrigo:

Como parte del análisis efectuado con respecto al aprendizaje, y su tendencia actual dentro del esquema de colaboración y participación fue posible reconocer la existencia de un saber, que está relacionado con el conocimiento, la comprensión del mundo y la información.

Los tiempos actuales demandan mayor productividad por parte de las empresas y de los individuos y con la continua reducción en el costo de la tecnología, el conocimiento se convierte cada vez más en un recurso valioso que las empresas deben administrar para garantizar su supervivencia. El software colaborativo pretende convertirse en la principal herramienta tecnológica que permita a las empresas administrar y compartir el conocimiento. Aún existen muchos obstáculos por vencer, principalmente en lo que respecta a la interfaz de usuario y a la resistencia de estos a cambiar sus formas tradicionales de colaboración. Sera interesante ver en el futuro, la aparición de sistemas basados en agentes, con los usuarios humanos colaborando con agentes inteligentes y con bases de conocimientos. Cuando esto suceda, la computación probablemente estará dando el siguiente pasado hacia el procesamiento y almacenamiento de la inteligencia.

Díaz Fiel Martín:

Se puede concluir con que, la elaboración de software no es trabajo de uno, sino de un conjunto de personas, que además de saber lo que hacen, tengan la capacidad de trabajar con otras personas, ya que, aunque cada persona sea muy capaz de realizar el software, este al ser solamente uno puede demorarse mucho más tiempo que las personas que si logran comunicarse con los demás.

Comentarios

Entradas más populares de este blog

Consideraciones éticas del estudiante en sus diferentes etapas con relación a los deberes

Cuadro comparativo sobre el objeto de estudio de la ética y su sentido sociocultural

La toma de decisiones con relación a dilemas éticos y casos prácticos de la vida profesional