miércoles, 22 de febrero de 2017

Cómo encarar un proyecto tecnológico?



Prototipos
  • En algunas ingenierías o en arquitectura, se arman lo que se llaman prototipos del producto que se va a construir. Esto a veces es, o una versión de menor tamaño de lo que se va a crear o una versión simplificada para mostrar como va a funcionar el objeto completo.
  • En informática, nosotros también podemos construir prototipos de nuestro proyecto ya sea para mostrarle al cliente o para nosotros poder transformar en realidad nuestras ideas e ir refinando lo que queremos construir.
  • Esto puede ser tan sencillo como programar algunas pantallas simples que permitan la navegación entre ellas, mostrando cierta información que puede no ser la real y final para poder darnos una idea de que es lo necesitamos cambiar y/o mejorar.
Prototipos y el desarrollo evolutivo
  • El Modelo de prototipos, nos permite ejecutar un desarrollo evolutivo. Qué significa esto? Que nuestro sistema lo vamos a ir construyendo de a poco, agregando cosas sobre las que programamos previamente.
  • El prototipo siempre debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.
  • La idea del prototipo es centrarnos en los aspectos del sistema que serán visibles para nuestro cliente o usuario de manera que ellos nos puedan dar su opinión; gracias a ésta se refinan los requisitos del software que se desarrollará.
  • Luego, el prototipo se ajusta para satisfacer las necesidades del cliente o usuario. Esto permite que al mismo tiempo entendamos mejor lo que tenemos que hacer y el cliente vea resultados a corto plazo.
Estimaciones
  • Lo que vamos a tener que entender también para cualquier proyecto que encaremos, es lo referido a la estimación de esfuerzo y alcance del proyecto. Esfuerzo se entiende como cuantas horas tenemos que invertir en todos los aspectos del proyecto para terminarlo, y el alcance son todas las funcionalidades, diseños y trabajos que estarán incluidos en el proyecto. El alcance es simplemente lo que va a ser parte del proyecto.
  • Para poder definir el esfuerzo, obviamente primero deberemos tener claro nuestro alcance, porque sin saber lo que estará incluido en el proyecto no podremos saber cuantas horas deberemos dedicarle de trabajo.
Definiendo el alcance
  • En computación, lo que se llama Ingeniería de requerimientos tiene que ver con todas las tareas relacionadas con entender las necesidades o las condiciones a satisfacer para un sistema nuevo o modificado, tomando en cuenta los diversos requisitos de los clientes o usuarios.
  • El propósito de esto es que entendamos de la mejor manera posible lo que hay que hacer antes de la fase de diseño en el proyecto. Los buenos requisitos deben ser medibles, comprobables, sin ambigüedades o contradicciones, etc.
Ingeniería de requerimientos
  • Las actividades que vamos a realizar para obtener los requisitos son de cinco clases.
    • Obtener requisitos: a través de entrevistas o comunicación con clientes o futuros usuarios, para saber cuáles son sus expectativas.
    • Analizar requisitos: detectar y corregir los problemas o la falta en la comunicación, transformando los requisitos obtenidos de entrevistas, en condiciones apropiadas para ser diseñadas.
    • Documentar requisitos: igual que todas las etapas, los requisitos deben estar debidamente documentados. Esto nos sirve para saber exactamente que hacer, sin que haya malos entendidos
    • Verificar los requisitos: consiste en comprobar en la aplicación el correcto funcionamiento de lo que programamos basados en un requisito.
    • Validar los requisitos: comprobar que los requisitos implementados se corresponden con lo que inicialmente se pretendía.
  • La ingeniería de requisitos puede ser un proceso largo y complejo para el que se necesitaremos de habilidades psicológicas.
  • Los analistas pueden emplear varias técnicas para obtener los requisitos del cliente. Históricamente, se usaron técnicas tales como las entrevistas, o talleres con grupos para crear listas de requisitos. En la actualidad también se incluyen el desarrollo de prototipos, y casos de uso (que no veremos ahora).
  • Los requisitos formulados por los usuarios se toman como objetivos generales, a largo plazo, y se los debe analizar una y otra vez hasta determinar los objetivos críticos para el funcionamiento.
  • Finalmente, se van a establecer formas de medir el progreso en la construcción, para evaluar en cualquier momento qué tan avanzado se encuentra el proyecto.
Estimando mi esfuerzo
  • Lo primero que tienen que pensar es que independientemente de si ustedes son sus propios clientes o si es otro usuario, tienen que saber cuanto tiempo y esfuerzo le llevará hacer su proyecto. De otra manera, ustedes se frustrarán por no saber cuando finaliza el proyecto y su cliente, si lo tuviesen, se enojará porque probablemente el proyecto se extienda mas allá de sus expectativas.
  • Aunque la estimación es más un arte que una ciencia no es aconsejable empezar un proyecto sin ella. En la informática muchos proyectos fracasan por no llevar a cabo de manera correcta esta actividad. Para un proyecto de software es necesario conocer el esfuerzo y el costo que tiene implicado.
Importancia de la estimación y la gestión
  • Veamos algunos números que nos demuestran lo importante de una buena estimación y gestión de un proyecto:
    • El proyecto medio excede en un 90% lo presupuestado y un 120% su tiempo estimado.
    • El 52.7% de los proyectos costará al menos un 189% de lo estimado.
    • El tiempo de exceso medio es del 222% del estimado.
    • Sólo el 16.2% (9% en las grandes compañías) de los proyectos se completa en el plazo y presupuesto estimados.
    • El 75% de los sistemas grandes funciona mal o es dejado de lado.
    • El 15% del esfuerzo de desarrollo se desperdicia por cancelación de los proyectos.
    • El 50% de los proyectos grandes excede el presupuesto o el cronograma (en más del 50%).
    • Un proyecto medio excede en un 50% el plazo estimado.
    • Los pequeños proyectos (en su gran mayoría) exceden su presupuesto y se retrasan un 20%.
El método Delphi
  • Como podemos ver, es crucial entonces que hagamos un buen análisis de nuestro proyecto antes de empezar a programar.
  • En muchos lugares de trabajo, lo que van a encontrar que utilizan, aún sin conocerlo formalmente, es el método Delphi de estimación.
  • El mismo consiste en un grupo de personas que se reúnen, realizan un listado de tareas a realizar y luego asignan los tiempos necesarios de acuerdo a su experiencia. Luego se realiza un intercambio entre todos donde un responsable va consolidando las listas de tareas de todos, y también se expone el razonamiento detrás de las estimaciones de cada programador, buscando el consenso entre todos en base a la discusión. De esa reunión es que surge la estimación final de esfuerzo para desarrollar el sistema que previamente relevamos con los clientes o usuarios.
Y ahora?
  • Ya sabemos lo que el cliente quiere (aunque seamos nosotros), y también tenemos una idea de los tiempos necesarios para hacer nuestro sistema, y por ende, los costos.
  • La manera de continuar es construyendo paso a paso, un prototipo que podremos ir mostrando
  • De esta manera, podremos ir mostrando nuestro desarrollo, a la vez que medimos el avance mediante los indicadores que definimos cuando realizamos nuestro análisis de requerimientos del sistema.
  • La idea del prototipo es centrarnos en los aspectos del sistema que serán visibles para nuestro cliente o usuario de manera que ellos nos puedan dar su opinión; para ir refinando los requisitos del software que estamos desarrollando.
  • Y así continuaremos hasta tener nuestro sistema completo y funcionando de acuerdo a nuestro análisis inicial.
Finalmente, implementando
  • Implementación es una palabra con la que quizás muchos no están familiarizados. La realidad es que es algo bastante sencillo. Implementar nuestro proyecto significa instalarlo en la máquina o dispositivo donde lo vamos a usar, o en el servidor donde vamos a alojar nuestro sitio web, dependiendo del tipo de proyecto que hayan hecho.
  • En el caso que desarrollemos un sistema que corra en nuestra computadora o en un dispositivo móvil, solo deberemos instalar los ejecutables
  • En el caso de instalar un sitio web en un servidor, ahí se complica un poco mas la implementación.
Implementación web
  • Como mencionamos previamente, un servidor web no es solamente la máquina que corre todos mis procesos sino el programa en sí que brinda servicios a todos aquellos que quieren acceder a mi página. Este programa, en Windows, se llama Internet InformationServer, o IIS.
  • Cuando queremos publicar contenido al que se pueda acceder a través de Internet o de una conexión de intranet, podemos agregar un sitio web al IIS para que incluya el contenido.
  • En Windows 2008 server, o en las versiones Profesionales o Ultimatede Windows de escritorio, el IIS ya viene instalado. Y se crea una configuración de sitio web predeterminada en el directorio \Inetpub\Wwwrootde nuestra máquina. Podemos utilizar este directorio predeterminado para publicar nuestro contenido web o crear un directorio en una ubicación del sistema de archivos que elijamos.
Creando un sitio en IIS

1.Abrimos el Administrador de IIS. Para hacer esto vayan al botón de inicio en la máquina donde instalarán el sistema y busquen directamente IIS o Internet InformationServer.
2.En el panel Conexiones, hagan clic con el botón secundario del mouse en el nodo Sitios del árbol y, a continuación, hagan clic en Agregar sitio web.
3.En el cuadro de diálogo Agregar sitio web, escribamos un nombre descriptivo para nuestro sitio web en el cuadro Nombre del sitio web.
4.Hagan clic en Seleccionar si desea seleccionar un grupo de aplicaciones diferente del que aparece en el cuadro Grupo de aplicaciones. En el cuadro de diálogo Seleccionar grupo de aplicaciones , seleccione un grupo de aplicaciones en la lista Grupo de aplicaciones y, a continuación, haga clic en Aceptar. (optativo)
5.En el cuadro Ruta de acceso física, escribamos la ruta de acceso física de la carpeta del sitio web o hagamos clic en el botón de exploración (...) para navegar por el sistema de archivos y buscar la carpeta.
6.Seleccionemos el protocolo para el sitio web en la lista Tipo.
7.El valor predeterminado en el cuadro Dirección IP es Todas las no asignadas. Dejémoslo así por ahora
8.Escriban un número de puerto en el cuadro de texto Puerto, por ejemplo, 80.
9.De forma opcional, escriba un nombre de encabezado del host para el sitio web en el cuadro Encabezado host. Por ejemplo: www.misitio.com.
10.Si no tienen que realizar ningún cambio en el sitio y quieren que el sitio web esté inmediatamente disponible, activen la casilla Iniciar sitio web inmediatamente.
11.Hagan clic en Aceptar.

Eso es todo?
  • Una vez que finalizamos con estos pasos, deberíamos tener nuestro sitio funcionando, y podemos corroborarlo accediendo a la dirección que definimos en el encabezado: www.misitio.com, siempre y cuando hayamos configurado nuestros servidores de nombre de dominio correctamente para que apunten a donde estamos almacenando nuestro sistema.
  • Y con esto, ya tenemos nuestro programa implementado y listo para usar!!!!
Repaso
  • En este capítulo vimos la importancia de:
    • hacer un buen análisis de requerimiento y que necesitamos entender
    • realizar una estimación de nuestro proyecto para entender el tiempo y costo asociado
    • desarrollar un prototipo que se ajuste a los requerimientos de información del cliente y a nuestra necesidad de entender lo que el cliente quiere
    • implementar nuestro desarrollo en el ambiente que corresponda a la tecnología utilizada
  • Para llevar su proyecto a buen puerto, deben prestar atención a todas estas buenas prácticas y sus sistemas podrán terminarlos de manera mucho mas sencilla y con mayor satisfacción para ustedes y sus usuarios.


Espero haber ayudado en algo. Hasta la próxima oportunidad!











  

No hay comentarios:

Publicar un comentario en la entrada