Notes
Notes - notes.io |
Application LifeCycle Managament
Idea -> ciclo de vida del proyecto
-> cese
---------------------------------
Team Foundation Server
On premises -> maquina local
Cloud -------> Visual Studio Online
https://www.visualstudio.com/
Amazon Web Services AWS
Azure
<<tu subdominio>>.visualstudio.com
------------------------------------
--------
Prototipos
Maqueta / diseño
App nivel basico
Blend for Visual Studio 2013
(Windows, Web)
Proyecto que dura 12 meses
4 Iteraciones (3 meses cada una)
Iteracion 1 --------------> mediados
de Abril v1
ANA+DIS+CON+PRU+INT+MAN
Iteracion 2 --------------> fines de
Junio v2
ANA+DIS+CON+PRU+INT+MAN
Incremento
Mejoras / Correctivos (Bug)
Mejora continua
RAD
Rapid Application Development
Visual Studio .NET
Blend
Microsoft Test Manager
Aplicaciones Web
ASP.NET
Frameworks
Web Forms -> RAD
MVC -------> Calidad / Testing
Dynamic Data
SignalR
...
http://agilemanifesto.org/
-----------------------------------
Scrum
Roles
Product Owner
Equipo de desarrollo (developers,
analistas, qa, arq, jefe de
proyecto)
Scrum Master
Stakeholders
E.Desarrollo -> Product Owner ->
Stakeholders
E.Desarrollo -> Usuarios finales
Engagement , nexo, intermediario
parte tecnica y la funcional
PO define los requerimientos del
producto y es quien los prioriza
Comunicacion efectiva
Escuchar de manera activa
Tomar notas
Participar, preguntar
PO trae un requerimiento (estimacion
de complejidad) y se lo entrega al
equipo de desarrollo
El equipo de desarrollo es el UNICO
que estima los tiempos
Como estiman los tiempos?
Codigo de proyectos anteriores
Excel con metricas
...
Planning Poker
Se forma una baraja de cartas
Donde cada carta tiene un número que
se va incrementando por ejemplo:
1,2,4,8,16,32,64,128....
1 = muy facil / 2 horas
2 = facil / 4 horas
4 = normal / 8 horas
...
Un miembro del equipo lee el
requerimiento
Cada miembro le asigna un punto
Todos los miembros lanzan la carta
al mismo tiempo
Diana 8
Jorge 8
Juan 1
Luis 64
Maria 4
Se toman las puntuaciones extremas
(mas baja y la mas alta) y se
conversa sobre ello
Diana 8
Jorge 8
Juan 8
Luis 16
Maria 4
El consenso fue 8, por lo tanto son
16 para hacer el requerimiento
El PO define los requerimientos,
estos requerimientos van a formar lo
que se conoce como el Product
Backlog
Product Backlog es la lista de TODOS
los requerimientos que abarca un
producto
Ejemplo
Product Backlog de 100
requerimientos
Se hace la primera estimación usando
por ejemplo la tecnica de Planning
Poker
El PO prioriza y define que
requerimientos van a formar parte de
la proxima iteracion (Sprint)
Ejemplo
En el primer Sprint van a participar
20 requerimientos
Se produce una reunion para
planificar el Sprint, esa reunión se
llama Sprint Planning, ahi el equipo
tiene la oportunidad de sincerar
tiempos
QA
Tiene un input
Requerimientos
Cada requerimiento puede tener 1 o
mas ESCENARIOS
REQ001, Escenario1, prueba de
aceptacion1
REQ001, Escenario2, prueba de
aceptacion2
REQ001, Escenario3, prueba de
aceptacion3
TODO EL EQUIPO DEBE TENER CONSENSO
SOBRE LO QUE SIGNIFICA LA PALABRA
"TERMINADO"
Que significa haber terminado?
Haber creado el prototipo
Haber terminado el desarrollo SIN
PRUEBAS
Haber hecho las pruebas unitarias
Haber hecho las pruebas de
integracion
Haber hecho las pruebas de
aceptacion
Practica interna del equipo:
Revision de codigo (Code Review)
No hay que estar ni a la defensiva
ni a la ofensiva
Ejemplo
Un programador Luis implementa un
requerimiento para loggear al
usuario
Login.aspx
Login.aspx.cs
Capa de datos/Usuario.cs
El codigo es de TODO EL EQUIPO
Maria hizo Code Review del codigo de
Luis
Ceremonias / reuniones
TODO | DOING | DONE
| |
| |
| |
| |
| |
Pendiente / Haciendose / Hecho
User Story
REQ123
Como jefe de logistica, necesito una
pagina que me permita crear
requisiciones
Escenario1: cuando la requisicion
excede el monto de 3UITs se necesita
de la aprobación de la gerencia del
area
...
Test Plan
Test Suite Chrome
- Test case 1 Chrome ->
REQ123/Escenario1
Test Suite Firefox
- Test case 2 Firefox ->
REQ123/Escenario1
Test Suite IE
- Test case 3 IE ->
REQ123/Escenario1
Test Suite Tablet Android
- Test case 4 -> REQ123/Escenario1
------------------------------------
------------
Team Foundation
Permite crear 1 o mas colecciones de
proyectos (Team Project Collection)
Viene una colección por defecto
llamada DefaultCollection
Dentro de una colección se pueden
crear 1 o mas proyectos (Team
Project)
DEBE SER UN PROYECTO YA CREADO Y
SIMPLE
Sistema de Administración de
requerimientos
SAR
Definicion de User Stories
Yo como un / desempeñando el [rol],
necesito / puedo [descripción de la
funcionalidad], con la finalidad de
[descripción de los resultados]
REQ001: COMO desarrollador QUIERO
realizar los pases a pruebas PARA
que revisen el codigo de mi
aplicacion
REQ002: COMO jefe de produccion
QUIERO validacion de fechas de
respuesta PARA un analisis de
incidentes
REQ003: COMO analista de control de
calidad QUIERO adjuntar archivos en
la devolucion de un pase PARA
sustentar mejor las observaciones
------------------------------------
----------
Los PBI (Product Backlog Item) se
miden en esfuerzo usando una metrica
llamada Story Points
User Story 1 -> Esfuerzo (Story
Points)
Task1 (N Horas)
Task2
Task3
Workdown
Descomponer un User Story en 1 o mas
tareas
Ejemplo
REQ001: COMO desarrollador QUIERO
realizar los pases a pruebas PARA
que revisen el codigo de mi
aplicacion
Tareas (diseño, programacion)
1. Diseñar interface de usuario
Trabajo restante: 4, 2
Mockup 2 horas
Ajustes
Levanta un Impedimento
No puedo terminar el diseño de la
pagina bla
Porque el usuario Fulanito no tiene
disponibilidad
2. Logica de negocios
Trabajo restante: 6
Oscar MetodoA
Juan MetodoB
clases parciales
Oscar clsPruebas.cs // public
partial class Prueba
Jua clsPruebas2.cs // public
partial class Prueba
3. Acceso a datos
Trabajo restante: 3.5
http://members.scrumalliance.org/cou
rses/20134153-certified-scrum-
product-owner
Pair-Programming
Tarea -> Trabajo restante: 24
Asignado a Oscar
Felix experto en workflows
5 horas pp
------------------------------------
---------
Conexion de Visual Studio .NET con
Visual Studio Online
Recomendaciones
Visual Studio .NET 2013
Update 4
Edición Ultimate
Premium
Professional
------------------------------------
-------------
Formando equipos de 4/5 personas
1. Designen la cuenta responsable
del equipo
newdesc.visualstudio.com
cocoluchosan.visualstudio.com
mariaesteba.visualstudio.com
lidupray.visualstudio.com
mmaravimmc.visualstudio.com
edgarincaja.visualstudio.com
2. Me agregan al equipo
([email protected])
3. Todos los miembros de cada equipo
se conectan a la cuenta designada
como principal
Ejercicio
1. Crear un Team Project nuevo
2. Definir areas
3. Definir sprints y fechas
4. Crear 4 User Story por
participante
Como
quiero
para
5. Enviar los PBIs al primer sprint
6. Hacer el workdown (crear las
tareas)
7. El 50% las tareas deben estar en
estado In Progress
RQ004: COMO Asistente de Operaciones
QUIERO realizar transferencias
interbancarias de las 5 principales
entidades financieras
PARA
RQ010: COMO Asistente Senior de
Contabilidad QUIERO informacion
contable de transacciones PARA
reportar a la SBS.
RQ015: COMO Asistente de Operaciones
QUIERO medir el tiempo de atención
de transferencias
PARA medir la satisfacción del
usuario.
indicadores, metricas
1=2
2=4
3=8
5=16
8=32
13=64
REQ003: COMO Analista de Crédito
QUIERO que se muestre los datos de
identidad de los vinculados con el
deudor
que se reporte/consulte los datos de
identidad de los vinculados con el
deudor
PARA realizar una evaluación al
cliente
REQ012: COMO Analista de Crédito
QUIERO que se muestre el porcentaje
de morosidad ((deficiente + dudoso +
perdida )/ cartera bruta) del deudor
al último mes
PARA realizar una evaluación al
cliente
REQ015: COMO Analista de Crédito
QUIERO que se muestre si el cliente
tiene infracciones en sunat, osce y
otros al ultimo mes
PARA realizar una evaluación al
cliente
3=12
5=18
REQCE004:Yo como coordinador de
canales electronicos
quiero que se puedan realizar
transacciones en linea de
transferencias a terceros
para que los clientes no tengan que
venir hasta nuestras oficinas.
....
REQRH004: COMO Asistente de
Selección de Personal
QUIERO poder declarar procesos de
selección como desierto
PARA informar a los postulantes que
el proceso se da por finalizado.
REQAU003: COMO Oficial de Atencion
al Usuario
QUIERO habilitar una seccion en la
que se pueda visualizar las NORMAS
DE ATENCIÓN PREFERENTE
PARA que el usuario esté al tanto de
la Normativa vigente en la
Institución
2=4
3=8
4=12
7=16
8=15
10=
12=
20=
REQ003: COMO jefe del área TI
QUIERO se habilite un campo en la
pestaña de cierre del SAR en donde
adjunte un archivo en Excel
PARA tener un reporte detallado de
los incidentes que se ingresan en el
sistema con archivos sustentados
REQ018: COMO desarrollador/usuario
QUIERO buscar un requerimiento
PARA visualizar como un reporte el
resultado
REQ015: COMO desarrollador
QUIERO que al registrar un objeto de
base de datos en el pase a testing
valide si este objeto es modificado
o es una creación
PARA evitar el error en el ingreso
del tipo de cambio en el registro
del pase.
1=4
2=8
3=20
5=40
8=60
REQ006 Como Soporte de Negocios
QUIERO que para las garantias
ingresadas se valida que no se
duplique la direccion
PARA EVITAR la duplicidad de
Garantías
PARA obtener datos correctos
REQ011 Como Subgerente de Negocios
quiero una opcion que muestre el
cumplimiento de metas de los jefes
regionales
para poder llevar el control y
seguimiento.
REQ018 COMO Auxiliar de Operaciones
QUIERO poder registrar el motivo de
cancelacion de una carta fianza
PARA poder realizar el seguimiento
posterior
1=4
2=8
3=12
5=20
8=32
13=52
REQ03:COMO asistenta de seleccion de
personal de GTH
QUIERO mostrar las diferentes
convocatorias que esten en la etapa
de entrevista personal
PARA coordinar con los evaluadores a
fin de que no se crucen con sus
vacaciones, comision de servicios y
otros
REQ07: COMO Asistente de selección
de personal
QUIERO una interfaz para realizar el
lanzamiento de la convocatoria
atravez de la pagina web
PARA convocar personal
PARA poder reclutar personal
REQ11: COMO auxiliar de selección de
personal
QUIERO que se muestre una lista
desplegable cuando se registran los
diferentes documentos que presente
un postulante
PARA un mejor y rápido registro de
los documentos de los postulantes
1=1
2=2
3=4
5=6
8=8
13=16
21=32
34=60
++++++++++++++++++++++++++++
Sesion 2
++++++++++++++++++++++++++++
Pruebas unitarias
Buenas practicas
1. Deben ser lo mas especificas
posible, no probar varias
funcionalidades en una sola prueba
2. Es para validar que un
requerimiento se esta cumpliendo,
pero no para evaluar performance
3. El nombre de la prueba debe ser
lo mas descriptivo posible, por
ejemplo
Devuelve_Estado_Cliente_con_credito_
aprobado
4. Se debe crear de tal manera que
cualquier desarrollador pueda
entenderla, no solo el que la creó
5. No debe tener parametros de
entrada
6. Solo debe devolver un resultado
SI o NO, TRUE o FALSE, FALLO o PASO
7. Pueden validar casos exitosos
(Happy Path) como condiciones de
error
Pruebas ayudan a mejorar la calidad
del código
Existen frameworks de pruebas, que
ayudan a la creacion rapida de éstas
Visual Studio incluye un framework
de caja llamado MS Test
En el mercado existen otros
frameworks de pruebas, como Nunit,
xUnit, etc
VS es compatible con varios
frameworks de pruebas
------------------------------------
-
Stored Procedures
Sean lo mas atomicos, precisos,
concretos posible
usp_ValidarCondicion1Cliente
usp_ValidarCondicion2Cliente
usp_ValidarCondicion3Cliente
...
usp_ValidarCliente
if condicion1
...
if condicion2
...
Refactorizar = basado en
herramientas de Visual Studio,
organizamos mejor nuestro codigo
Terminos de Testing
SUT = System Under Test, lo que voy
a probar
Una prueba unitaria esta dividida en
3 secciones (3A):
Arrange (preparas la prueba, defines
variables, inicializas objetos)
Act (prueba en si misma, normalmente
es una asignacion de valor a una
propiedad o una llamada a un metodo)
Assert (evaluación del resultado
obtenido, puede ser una o mas
evaluaciones)
Arquitectura DDD
Domain Driven Design
Se recomienda para proyectos donde
existen una gran cantidad de
entidades y una logica de negocios
muy compleja y muy cambiante
Lenguaje de dominio ubicuo
Conjunto de palabras y tecnicismos
propios de un rubro de negocio, y
que todos debemos compartir y
entender de la misma manera
Dominio = know how del negocio
-----------------------------------
Ejemplo
Quiero crear una prueba unitaria que
valide una carga masiva de pedidos
en mi bd sql
~500
~40,000
~5 mins, 1s
reemplazo la bd por una bd sql pero
mas simplificada
Mocking
Reemplazar una funcionalidad por
otra simulada que a mi me conviene
para que la prueba unitaria sea mas
rapida y se centre solo en lo
funcional
-----------------------------------
ALM = se atiende con una herramienta
que se llama TFS
portal.azure.com
Layer <> Tier
Layer = nivel logico
Tier = nivel fisico
3-Layers/N-Layers
Presentacion
Logica de negocios
Acceso a datos
Despliegue
Tier = uno o mas servidores en los
que se despliega una parte de la
aplicacion
Front-End
Cache
Servicios
Datos
TFS.exe
Command Prompt
PowerShell
Commandlets
--------------------------------
Check-in, Check-out
Ejercicio de Shelving
1. Crear un metodo en cualquiera de
las clases
2. Hacer Shelve
3. Hacer Undo changes
4. Hacer Unshelve
5. Ver que el metodo no se ha
perdido
------------------------
Branching
En produccion (mantenimiento)
Solucion_Seguridad v1
Mejora
Nuevo proyecto (construccion)
Solucion_Seguridad v2
Noviembre
|
Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...
With notes.io;
- * You can take a note from anywhere and any device with internet connection.
- * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
- * You can quickly share your contents without website, blog and e-mail.
- * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
- * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.
Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.
Easy: Notes.io doesn’t require installation. Just write and share note!
Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )
Free: Notes.io works for 12 years and has been free since the day it was started.
You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;
Email: [email protected]
Twitter: http://twitter.com/notesio
Instagram: http://instagram.com/notes.io
Facebook: http://facebook.com/notesio
Regards;
Notes.io Team