martes, 28 de agosto de 2012

Situacion actual de los portales

Los puntos que vamos a esta evaluando para verificar que es lo que nos falta para implementar una campaña de eMarketing, son los siguientes:

¿Que tipo de producto vendemos y por que canal?

La respuesta es como nuestros productos requieren de algunas validaciones que no podemos dejar a una maquina, no se pueden vender ciertos productos en linea.

¿Cuanto podemos tener como una ventaja competitiva sustentable?
Sin embargo el uso de internet como un medio de comunicación masiva no es una ventaja competivita en si, por lo tanto, o al menos no la he identificado aun.

¿Que complementos son los que necesitamos para tener establecer esa estrategia?
Cuando hablamos de complementos me refiero a si tenemos todos los requerimientos, tanto de hardware, como de software para levantar.
Sin embargo, para ello debimos de haber establecido la estrategia....y esa aun no la tenemos.

¿De nuestros complementos que vamos a poder enviar a outsourcing?

Si agregamos un nuevo canal de distribución
¿Que vamos a vender? Para ello necesitamos identificar cuales son criterios para emitir un producto y adicionalmente como se van a validar esos criterios.

¿Tenemos la capacidad operacional para sustentar un negocio por internet? Por un momento pensemos que nuestros productos se pueden vender por internet, y se venden por el canal. Dada esta suposición ¿Cual sería el proceso para la emisión de las pólizas, la reclamación de las mismas, y las aclaraciones? ¿Cuantas pólizas se van a poder vender por el mismo?

¿Que ventajas competitivas nos va a dar con respecto a nuetra principal competencia?
Internet por si solo no es una ventaja competitiva, sino que es un complemeno a otras formas tradicionales de competencia.
Tal vez una respuesta sea, que queremos proporcionar a la nuestros clientes información relevante de los seguros que tenemos disponibles de forma segmentada. ¿Cual va a ser el clasificativo de la información? y ¿Como decidir si existen si el segmento a le interesa el cierto grado el producto B?

Diferencias en el proceso de desarrollo

Si alguno de ustedes se ha preguntado en que momento el desarrollo de software deja de convertirse en un proyecto y se convierte en una operación seguramente ya han tenido alguna experiencia en la generación de proyectos y de productividad.

La visión de realizar productos, a diferencia realizar proyectos da ventajas a las empresas. Constantemente me he estado preguntando si tendremos que seguir desarrollando software si no somos una empresa de software y como va a sobrevivir
Para completar la visión de un producto podemos tener uno o varios proyectos. No todas las empresas tienen esta visión. En mi experiencia he estado en empresas de desarrollo de software que estan sumamente Proyectizadas, termina un proyecto y comienza otro, esta forma de trabajo va a comenzar a estar desuso, sencillamente porque las empresas que realizan software de forma industrial estan mucho mejor preparadas para generar un producto que pueda personalizarse, y solo entregarlo como una caja. Entonces donde va a quedar las pequeñas empresas de desarrollo de software. Para sobrevivir van a tener que tener una superespecialización.

Unit Test


El comenzar siempre ha sido una tarea complicada si es que no sabes a donde llegar. Por lo mismo comenzaré a pensar en el fin “Cuando genero pruebas unitarias estoy buscando generar pequeños programas que se me van a ayudar a verificar que el OTRO código realice lo que espero, y solo lo que espero”.
Esto mismo lo puedo lograr de varias formas
  • Pruebas de escritorio.
  • Pequeños programas Ad-Hoc.
  • Framework de pruebas unitarias.
Detallaré aún más mi requerimiento que las opciones se vayan reduciendo. generar pequeños programas que se me van a ayudar a verificar que la parte del código que estoy realizando haga lo que espero que realice y que además ¿este documentado el procedimiento de generación de las pruebas este suficientemente documentado para que lo puedan utilizar otras? ¿Qué siempre sea de una forma uniforme? ¿Qué me ayude a hacer más rápido? ¿Qué tan rápido? ¿Qué me facilite la documentación de mi código al proporcionar ejemplos de la forma de uso? ¿Qué me ayude a medir la cantidad de errores inducidos en el sistema cuando hay una modificación? ¿En cuánto tiempo espero resolver mi requerimiento? ¿Qué sea barato? Y que lo puedan utilizar 200 programadores que tenemos.
Si creo que con esa definición ya deje fuera las pruebas de escritorio y los pequeños programas Ad-Hoc, tal vez algún necio quiera seguir utilizándolos pero el tiempo me dará la razón espero. Sin embargo aún esta definición no es suficiente porque tengo varios sabores de frameworks para la realización de las pruebas unitarias, por lo tanto, pediré que la solución cumpla con algunas características de calidad. Las características de calidad del requerimiento son las propiedades que nos va a ayudar a identificar cual es la solución más apropiada del mismo. Sin embargo, las características de calidad no son cuantificables, por eso son cualitativas. Luego nuevamente debo de enunciar nuevamente mi requerimiento, espero que la tercera sea la vencida quiero generar pequeños programas que se me van a ayudar a:
  1. verificar que la parte del código que estoy construyendo haga lo que espero que realice y que además,
  2. Debo de hacerlo con un número limitado de clases máximo 10 (que sea uniforme) y
  3. que los genere en 10 minutos como máximo cada uno.
  4. Que cada clase este documentada y cada método también.
  5. Que la documentación esté disponible en el ambiente de desarrollo o por html en el código.
  6. Que cuente con una guía rápida para comenzar a usarlo.
  7. Que realice las pruebas de forma automática.
  8. Que tenga herramientas para reportar los errores encontrados.
  9. Que el precio no exceda los 2000 dlls. El precio fue arbitrario, pero 2000 dlls no es mucho si ahorramos 500,000 pesos en un 6 meses, ¿no?.
Bueno creo que ahora si quedo más mejor mi requerimiento…y solo me llevo 3 días especificarlo, es que ya lo traía muy masticado….el tema.
Bien pues como ya se lo que quiero….solo hay algo que aún me causa un poco de cosquilleo bajo la nariz, y es ¿de todos estos atributos de calidad cual es el que más peso tiene?
Otra vez voy a hacer uso de mi intuición y lo seleccionaré con ella.
1. El criterio que más peso va a tener es el precio (característica 9 de mi requerimiento), porque no sé si me van a autorizar este proyecto y además tendría que justificar el costo etc., etc. Si definitivamente la cuestión de los dineros siempre es la más delicada. Digamos que tiene el 40% de peso sobre mi decisión y los valores que puede tener son:
  1. No requiere de inversión, en este caso se llevará la mejor nota y es 3.
  2. Requiere de una inversión moderada (hasta 500dlls). Entonces tendrá una calificación de
  • Requiere de una inversión considerable (más de 500dlls), en cuyo caso su calificación será de 1.
  • El segundo criterio que voy a elegir es la rapidez de la implementación (características 4, 5 y 6), y para ello voy a decidir que tiene un 30% de peso sobre mi decisión y los valores que puede tener son los siguientes:
  • Si cumple con las 3 características, la calificación es 3.
  • Si cumple solo con 2 características la calificación es 2.
  • Si cumple con 1 características la calificación es 1.
3. El tercer criterio también tiene que ver con la rapidez con la implementemos pero también con la curva de aprendizaje de los programadores y es el número de clases que debo de aprender a usar para utilizarlo (característica 2), a este criterio le voy a poner el 20% de peso sobre mi decisión. Los valores posibles para esta decisión son los siguientes:
  • Si tiene menos de 5 clases el framework para de uso común. La calificación es 3.
  • Si tiene más de 5 y menos de 10. La calificación es de 2.
  • Si tiene más de 10 entonces la calificación es de 1.
  • El último criterio es la integración con VS 2010 es de 10%, porque lo importante son las pruebas unitarias y no tanto que se vean chulas.
  1. Si tiene integración la calificación que le otorgaría sería 3.
o Si para tener integración requiere de otros componentes no incluidos en el framework su calificación es de 2.
o Si no tiene integración y tienen que ejecutarse fuera del ambiente necesariamente, la calificación que le otorgaría sería 1.
Creo que ahora si ya están las reglas del juego sobre la mesa, y solo falta traer a los jueces y a los contrincantes.
Les presento los jueces.
· Amando “Metodologo” Resendez
· Raul “El autenticado” Hau
· Julio “justo” Ramirez
· Adrian “compañero y amigo” Ledesma
· Y un servidor, “el narrador”
Presentemos ahora a los contrincantes:
· MSTest. Es el framework propuesto que viene en el paquete de Visual Studio 2010, el framework se encuentra implementado en el ensamblado de Microsoft.VisualStudio.TestTools.UnitTesting.
· NUnit. Como en la mayoría de los proyecto de opensource NUnit es una bifurcación de JUnit, para la realización de pruebas unitarias, este proyecto aprovecho todo el conocimiento adquirido de JUnit y solo migro las clases ahora en .Net. se distribuye bajo licencia GNU.
· xUnit.net is a developer testing framework, built to support Test Driven Development, with a design goal of extreme simplicity and alignment with framework features. It is compatible with .NET Framework 2.0 and later, and offers several runners: console, GUI, MSBuild, and Visual Studio integration via TestDriven.net, CodeRush Test Runner and Resharper. It also offers test project integration for ASP.NET MVC.
Y comencemos la partida.
Para evaluar pasos para evaluar
· MSTest.
o Requerimientos:
§ Visual Studio 2010 a partir de la versión Ultimate/Premium.
o Procedimiento
§ Sigue los hands on lab están en la siguiente liga.
·
· xUnit.
o Requerimientos
§ For Use
· Microsoft .NET 2.0 or later
§ For Development
· Visual Studio 2008
· Sandcastle (May 2008)
· Sandcastle Help File Builder
o Código y binarios
§ xUnit Framework. http://xunit.codeplex.com/#.
o Procedimiento
§ Sigue los hands on lab que están en la siguiente liga.
· NUnit.
o Requerimientos
§ Framework 2 o superior.
§ NUnit.
o Procedimiento
§ Sigue los ejercicios del Getting Start
Solo me queda anexarles la forma de evaluación. Ojo si cambian las condiciones (criterios) deberíamos de tomar una decisión o recomendación distinta.