Presentación Intercátedra de Práctica Profesionalizante I

Instituto Superior Particular Incorporado Nº 9045
"Zona Oeste"

Segundo año de la carrera Técnico Superior en
Desarrollo de Software

Scrum

¿Qué es?

Scrum es una forma ágil de administrar un proyecto, generalmente aplicado al software. El desarrollo ágil con Scrum a menudo se percibe como una metodología; pero en lugar de ver Scrum como una metodología, se pude considerar como un marco para gestionar un proceso.

Aunque se considera a menudo un marco de gestión de proyectos ágil, scrum incluye un conjunto de reuniones, herramientas y funciones que, de forma coordinada, ayudan a los equipos a estructurar y gestionar su trabajo.

    Roles

  • Product Owner
  • Scrum Master
  • Scrum Team

Historia de Scrum

Scrum comienza a desarrollarse alrededor del año 1986, y fue creado por Ikujiro Nonaka e Hirotaka Takeuchi, a partir de un estudio que realizaron a distintas empresas que estaban viendo un nuevo enfoque de trabajo.

Más tarde, en 1995, crearon un conjunto de reglas, o conjunto de buenas prácticas, enfocadas al desarrollo de software y la bautizaron con el nombre de Scrum.

Más informacón

Los 12 Manifiestos del Método Ágil

En marzo de 2001, 17 críticos de los modelos de producción basados en procesos, convocados por Kent Beck, que había publicado un par de años antes el libro en el que explicaba la nueva metodología Extreme Programming Beck y se reunieron en Salt Lake City para discutir sobre el desarrollo de software. En la reunión se acuñó el término “Métodos Ágiles” para definir a aquellos que estaban surgiendo como alternativa a las metodologías formales

  • 01 Primer Manifiesto

    Nuestra principal prioridad es satisfacer al cliente a través de la entrega temprana y continua de software de valor.

  • Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al desarrollo. Los procesos ágiles se doblegan al cambio como ventaja competitiva para el cliente.

  • Entregar con frecuencia software que funcione, en periodos de un par de semanas hasta un par de meses, con preferencia en los periodos breves.

  • Las personas del negocio y los desarrolladores deben trabajar juntos de forma cotidiana a través del proyecto.

  • Construcción de proyectos en torno a individuos motivados, dándoles la oportunidad y el respaldo que necesitan y procurándoles confianza para que realicen la tarea.

  • La forma más eficiente y efectiva de comunicar información de ida y vuelta dentro de un equipo de desarrollo es mediante la conversación cara a cara.

  • El software que funciona es la principal medida del progreso.

  • Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores, desarrolladores y usuarios deben mantener un ritmo constante de forma indefinida.

  • La atención continua a la excelencia técnica enaltece la agilidad.

  • La simplicidad como arte de maximizar la cantidad de trabajo que se hace, es esencial.

  • Las mejores arquitecturas, requisitos y diseños emergen de equipos que se autoorganizan.

  • En intervalos regulares, el equipo reflexiona sobre la forma de ser más efectivo y ajusta su conducta en consecuencia.

 

Roles de IT

Diferentes funciones dentro del mundo de la Tecnología Informática

Business Analyst

Funciones: Recolectar información importante para el proyecto. Analizar los requerimientos. Monitorear el progreso de los proyectos para reconocer áreas de oportunidad. Interpretar, evaluar y relacionar los datos obtenidos a través de sus evaluaciones cualitativas y cuantitativas de los procesos. Conseguir información relevante de los departamentos para formular iniciativas y estrategias que mejoren la información financiera de la compañía. Responsabilidades: Es el encargado de comprender y analizar el contexto de negocio y los procesos de las organizaciones. Se encarga de diseñar e implementar mejoras en sus procesos de negocios y brinda soporte a la aplicación.

Data Analyst

Funciones: Conseguir datos (también llamado “minería de datos”) a través de distintas fuentes. Hacer el análisis del entorno. Eliminar información no relevante (Data Cleaning). Agrupar datos, y analizarlos. Interpretar los resultados obtenidos a partir de diferentes algoritmos y herramientas estadísticas. Generar informes, generalmente mediante la creación de bases de datos relacionales. Responsabilidades: Interpretar y realizar descubrimientos en base a grandes volúmenes de información. Debe poseer una gran capacidad para la resolución de problemas, para poder analizar, resolver y explicar lo que vio de manera que los demás lo entiendan; y analizar datos y predecir comportamientos futuros.

Devops (Development Operations)

Funciones: Aumenta la visibilidad del proyecto, mejora la calidad y reduce los costos de desarrollo. Analiza, diseña y evalúa scripts y sistemas de automatización. Su objetivo es ayudar a una organización a producir productos y servicios de software más rápido, de mejor calidad y a un menor costo

Responsabilidades:
  • Planificación de proyectos
  • El personal responsable de la planificación del proyecto DevOps debe adoptar metodologías ágiles.
  • Desarrollo de aplicaciones e infraestructura.
  • El enfoque de DevOps para el desarrollo de software tiene como objetivo cambios regulares e incrementales en las versiones de código mediante scripts para ahorrar tiempo a los desarrolladores.
  • Pruebas de infraestructura y aplicaciones.
  • Implementación de automatización.
  • Utilizar la automatización para hacer que el desarrollo de software sea consistente, confiable y eficiente.

Frontend Developer

Funciones: Es el encargado de realizar la parte de una aplicación la cual interactúa con los usuarios, es conocida como el lado del cliente. Básicamente es todo lo que vemos en la pantalla cuando accedemos a un sitio web o aplicación: tipos de letra, colores, adaptación para distintas pantallas, los efectos del ratón, efectos visuales y otros elementos que permiten navegar dentro de una página web. Este conjunto crea la experiencia del usuario.

Responsabilidades: Recibe todos los documentos trabajados en la etapa de diseño y se encarga de traducirlos a código. El desarrollador frontend es quien trae a la vida el diseño visual y de interfaz que le fue entregado. Debe conocer los siguientes lenguajes de programación: HTML5, CSS3, JavaScript, Jquery, Ajax.

Backend Developer

Funciones: Un desarrollador backend trabaja del lado del servidor. Permitiendo que todo lo que vemos cuando interactuamos con una aplicación o sitio web, funcione. Se encarga de la validación de datos, almacenar datos, acceso a la base de datos y de programar toda la lógica para que la aplicación se sincronice correctamente con las solicitudes del usuario desde el frontend. Backend implica el desarrollo Web en el ámbito del servidor, y procesa toda la información recibida a través del frontend para que funcione la aplicación web. A diferencia del frontend, aquí, los usuarios no tienen contacto.

Responsabilidades: Es responsable de la programación del sitio en todos sus componentes. Debe asegurarse de que todo funcione de acuerdo a las interacciones que hace el usuario. Debe estudiar los diferentes lenguajes de programación : ASP.NET , PHP, Python, Ruby, Node.js, Java, MySQL, SQL Server, PostgreSQL, Oracle, MongoDB.

Fullstack Developer

Funciones: Es un perfil híbrido entre el desarrollador frontend y backend porque controla tanto el desarrollo front-end (cliente) como con el backend (servidor) de aplicaciones web, software y sitios web. Apoya la gestión de los proyectos y analiza los requisitos para la aplicación de un programa.

Responsabilidades: Son responsables de la planificación, programación y pruebas de funcionamiento del software. Esto también incluye la solución de problemas de los sistemas, la administración o gestión de proyectos complejos que pueden combinar múltiples lenguajes de programación, el desarrollo del frontend y el backend.

Software Architect

Funciones: Participa en la toma de decisiones adecuadas para lograr una arquitectura del sistema que garantice un mejor desempeño, flexibilidad, mantenibilidad, robustez, reuso o las cualidades que se pretendan de la aplicación. Responsabilidades: Es el responsable de la definición, diseño y de dirigir la construcción de la arquitectura. Debe realizar un seguimiento del proceso de desarrollo para asegurarse que sus instrucciones se implementen en forma adecuada; y registrar los cambios de arquitectura que se produzcan.

Tester (QA Manual y QA Automation)

Función: planificar y llevar a cabo pruebas de software de los ordenadores para comprobar si funcionan correctamente, además evalúan el funcionamiento general del software y sugieren formas de mejorarlo. Puede implementar herramientas como Testlink para la gestión de pruebas, SonarQube para evaluar la calidad del código, Jenkins para una integración continua o Selenium para una automatización de pruebas.

Responsabilidad: Identificar el riesgo de sufrir errores de un software, detectar los errores y comunicarlos.

Project Manager (PM)

Función: Conducir las actividades diarias del equipo de proyecto, ejerciendo un control sobre resultados, plazos y calidad. También se ocupa de mantener la relación con usuarios y clientes, motivando y brindando apoyo a los integrantes del equipo y gestionando los recursos necesarios, además de tomar las decisiones operativas necesarias para mantener el proyecto en tiempo, alcances y costo.

Responsabilidad: Es el responsable de liderar y gerenciar el proyecto para lograr los resultados esperados en tiempo y forma, teniendo a su cargo equipos de trabajo con un objetivo definido, formado entre otros perfiles por analistas funcionales, desarrolladores y testers.

Data Base Administrator (DBA)

Función: Conducir las actividades diarias del equipo de proyecto, ejerciendo un control sobre resultados, plazos y calidad. También se ocupa de mantener la relación con usuarios y clientes, motivando y brindando apoyo a los integrantes del equipo y gestionando los recursos necesarios, además de tomar las decisiones operativas necesarias para mantener el proyecto en tiempo, alcances y costo.

Responsabilidad:

  • Comprender las necesidades de los usuarios.
  • Mantener la accesibilidad a la base de datos.
  • Garantizar que sea segura.
  • Monitorear el desempeño de la base de datos para garantizar que esté manejando los parámetros adecuadamente y que le brinde respuestas rápidas a los usuarios.
  • Refinar el diseño de la logística para garantizar que la información sea convertida en un modelo específico, además de garantizar que la información cumpla con los requerimientos de almacenamiento del sistema.
  • Otorgar permisos y privilegios a los usuarios.
  • Planificar y conservar un sistema de respaldo.
  • Establecer protocolos para la recuperación de información.
  • Trabajar en conjunto con los Gerentes de Proyecto de TI y los Programadores de Bases de Datos.
  • Supervisar la labor de las personas designadas para ingresar información en las bases de datos.