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
Publicar un comentario