Frases: Proyectos

"Si deseas empezar y desarrollar algo grandioso, no necesitas millones de dólares de capitalización. Necesitas suficiente pizza y Diet Coke en la nevera, una PC barata y trabajo y dedicación para realizar tu idea."

---John Carmack


visto en: hackification

ver post completo...

¿Cómo aplicarías SCRUM?

Mencionábamos sobre la metodología ágil de desarrollo SCRUM permite, entre otras cosas, involucrar al cliente durante todo el proceso de desarrollo, además de motivar constantemente al equipo de trabajo a través de breves reuniones diarias. Todo el equipo conoce perfectamente en qué punto del desarrollo se encuentra el proyecto y qué falta por hacer.



¿Cómo aplicarías SCRUM? Aquí les dejo un ejemplo o plantilla de cómo se podría llevar aplicar:

Etapa 1: Toma de requerimientos.
Definición del "Product Backlog", el cual corresponde a todas las tareas, requerimientos o funcionalidades a realizar. Esta información será recopilada a través de reuniones entre el "Scrum Team" y el "Product Owner".

Etapa 2: Análisis de requerimientos y Diseño Arquitectónico.
Se analizará el "Product Backlog" y a través de éste se generará el diseño base del sistema, el cual involucra por ejemplo: modelo de base de datos, principales módulos del sistema.

Etapa 3: Desarrollo del Sistema.
Durante todo el proceso de desarrollo, el equipo de trabajo realizará reuniones diarias de 15 a 30 minutos, denominadas "Daily Scrum Meeting". El objetivo de éstas es que todo el equipo de trabajo se entere del estado de las diversas tareas y se resuelvan dudas que puedan surgir en éste proceso.

Mediante las "Sprint Planning Meeting" se definirán los diversos "Sprint Backlog" (conjunto de requerimientos que equivalen a un incremento del sistema), los cuales contemplarán parte de las funcionalidades descritas en el "Product Backlog". Los "Sprint Backlogs" tendrán una duración ideal de 2 semanas.

En esta fase se genera un documento que indica los objetivos del "Sprint" denominado "Sprint Goal".

Una vez finalizado un "Sprint Backlog", se realizará una reunión denominada "Sprint Review" donde se mostrará al "Product Owner" los avances realizados. Éste podrá revisar la entrega y hará las observaciones correspondientes.

Por último, se inicia el "Sprint Retrospective". Donde se marcan los aspectos positivos (para repetirlos) y los aspectos negativos (para no repetirlos) experimentados en el "Spring Backlog".

El ciclo se repite hasta abarcar todas las funcionalidades descritas en el "Product Backlog".

Etapa 4: Aceptación y entrega del Producto.
Contempla las siguientes tareas:


  • Revisión final del producto.


  • Entrega del Sistema.

    • Código Fuente

    • Documento de diseño arquitectónico del Sistema

    • Manuales de administración y uso del Sistema



  • Instalación del Sistema en ambiente de producción



ver post completo...

SCRUM: Metodología de Desarrollo de Software

A grandes rasgos se puede decir que SCRUM es una Metodología Ágil de desarrollo de software que se concentra en cómo los miembros del equipo deberían funcionar (comunicarse, trabajar, etc.), a fin de producir un sistema flexible en un entorno que cambia constantemente.

La filosofía de SCRUM está en involucrar, motivar y mantener constantemente informado sobre el estado del proyecto a el equipo de trabajo y el cliente.




Es una metodología que, para cumplirla, requiere de mucha responsabilidad por parte del equipo de trabajo. El cual consta de un jefe de proyecto, un equipo de desarrollo y el cliente.

Hoy en día muchas empresas están adoptando ésta metodología debido a su fácil implantación y adaptabilidad a cambios.
Es tan simple que lo más probable (si es que has participado en proyectos en tu trabajo, universidad o instituto) hayas afrontado un proyecto de una manera muy similar (más adelante publicaré un "ejemplo de cómo se podría ejecutar SCRUM").

A continuación definiremos los roles y conceptos de SCRUM.

Roles:


  • Product Owner: Conoce y marca las prioridades del proyecto o producto (cliente).

  • Scrum Master: Guía las reuniones y ayuda al equipo ante cualquier problema que pueda aparecer (Jefe de proyecto).

  • Scrum Team: Son los responsables de implementar las funcionalidades o requerimientos elegidos por el Product Owner. Desarrollan el producto.

  • Stackeholders: Personas relacionadas con el producto o su financiamiento. Participan durante los Sprint Review y pueden aportar ideas, sugerencias o necesidades.

  • Usuarios: Son los beneficiarios finales del producto.



Actividades principales:

  • Product Backlog: Pila de requerimientos o funciones del sistema, definida y priorizada por el Product Owner.

  • Sprint Backlog: Pila de funcionalidades a desarrollar durante una iteración o sprint extraídas del Product Backlog. Estos desarrollos se aconseja no superen cuatro semanas, de esta manera se mantiene un control del proyecto.

  • Spring Planning Meeting: Reuniones entre el Scrum Master, Scrum Team y Product Owner y consiste en planificar las tareas a desarrollar en un número determinado de Sprint Backlogs. Se genera un documento que indica los objetivos del Sprint denominado Sprint Goal.

  • Daily Scrum Meeting: Pequeñas reuniones entre el Scrum Master y el Scrum Team, cuya duración no supera los 30 minutos. Se realizan durante el desarrollo del Spring Backlog y consiste en informar el estado de éste, respondiendo a las siguientes preguntas:

    • ¿Qué tareas has realizado desde la última reunión? (qué he hecho).

    • ¿Sobre qué tareas trabajarás en el día actual? (que voy a hacer hoy).

    • ¿Qué obstáculos o riesgos impiden o pueden impedir el normal avance? (qué ayuda necesito).



  • Sprint Review: Reunión de no más de dos horas de duración, que informa los avances realizados en el Sprint al Product Owner y Stackeholders.

  • Sprint Retrospective: Actividad para reorganizar las tareas del Product Backlog. Se analizan los aspectos positivos y negativos del Sprint Backlog.


ver post completo...

Frases: Diseño de Software

"Mucho del software hoy en día se parece a una pirámide egipcia: con millones de ladrillos apilados uno encima del otro, sin integridad estructural y hecho por pura fuerza bruta y miles de esclavos."

--Alan Kay


visto en: hackification

ver post completo...

Tipos de datos básicos en Python

Como habíamos mencionado en el primer post de python, éste es un lenguaje de tipado dinámico pero al mismo tiempo fuertemente tipado.

En python tenemos los siguientes tipos básicos:

  • Boleanos
  • Números (Enteros, decimales y complejos)
  • Cadenas de Texto



Sintaxis para declarar boleanos:
algoVerdadero = True
algoFalso = False


Sintaxis para declarar números:
#Asi de declaran variables de tipo entero
numeroPositivo = 10
numeroNegativo = -15

#Una variable float
numeroFloat = 2.0254


Operadores numéricos:
a = 5.0
b = 3.0
print( a+b )  #imprime -> 8.0
print( a-b )  #imprime -> 2.0

print( a*b )  #imprime -> 15.0
print( b**b ) #imprime -> 9.0, representa 3.0^3.0 (potencia)

print( a/5 )  #imprime -> 1.6666
print( a//5 ) #imprime -> 1, es el resultado entero de la división 
print( a%5 )  #imprime -> 2, es el resto de la división


Sintaxis para declarar cadenas de texto
a = "Hola"
b = " Mundo"
print( a+b )  #imprime "Hola Mundo"
print( a+(b*2) ) #imprime "Hola Mundo Mundo"

Si quieres comenzar a desarrollar en Python en ESTE LINK encontrarás información sobre el interprete e IDEs.

ver post completo...

IDEs para programar en Python


En el post anterior (Click Aquí) vimos una pequeña pincelada sobre Python y algunos de sus conceptos.

Ahora bien ¿Qué herramientas de desarrollo podemos ocupar para programar en Python?


Partiendo por lo más básico cuándo instalamos el intérprete de python, éste viene con un IDE gráfico integrado llamado IDLE.

Ahora bien, si queremos algo más sofisticado y gratis, tenemos a nuestro querido amigo Eclipse IDE el cual debemos complementar instalando el plugin PyDev. Con esto tendremos resaltado de sintaxis, autocompletado de código, refactorización, resalte de errores, etc.
Otros IDE gratis son: BOA Constructor y Eric.

En lo personal utilizo Eclipse+PyDev y funciona muy bien.

Si tienes alguna duda sobre cómo configurar Eclipse para programar en Python, comentala y te ayudaré.

Saludos.-

ver post completo...

Frases: Programación

"Cualquier tonto puede escribir código que un ordenador entiende. Los buenos programadores escriben código que los humanos pueden entender."

--Martin Fowler


visto en: hackification

ver post completo...

top