sobre el por que creo que SI es una moda esto de SCRUM, la Aguilidad, etc – respuesta al post de Jersson-

 

tenia esta respuesta pendiente….  al post de jersson, con respecto a la pregunta que hice en el twitter

personalmente creo que SI es una moda, esto de "ser agil", o  usar "SCURM"….
y antes que salten encima con sus uñas, aclaro, que intentar mejorar no me parece malo, ni tampoco que se use scrum – bien aplicado- …

algo que ley muy seguido en el twt es "sentido común".. y curiosamente eso mismo es lo que me parece el "manifiesto agil", es algo tan obvio, que el echo que gente se haya tenido que juntar para poder darse cuenta de eso, demuestra lo mal que estaba la industria del software.

Lamentablemente la industria del software es de las menos serias entre todas las profesiones, aunque, eso si, muchos hacen el esfuerzo para corregir eso.., lo malo es que no hay un verdadero norte…, todas son especulaciones, sobre como se podría mejorar, y le digo especulaciones, por que no todas las soluciones funcionan para todos..- en un momento completo la idea-.

se quiera o no aceptar en la industria del software, todo se basa en fondo de "que autor eres fan",  si eres fan de don box, de  Watts Humphrey, de alguno de los los scott, de Kent Beck, etc.., muchos autores para muchos temas, ya sea cmmi, xp, scrum, etc…., a diferencia con las carreras mas formales, donde uno puede leer  a un autor X y por mas bueno que sea, no fanatizarse con uno u otro aspecto, al menos en mi carrera original, podia leer muchos libros de diferentes autores, sobre procesos, reacciones y demas, pero ninguno le ganaba a los datos, que eran irrefutables, en soft eso no se puede hacer… por algo muy simple… el factor humano.

lo que cuenta la historia…, -lógicamente todos buscando la solución a los problemas..-. en el desarrollo de software.. quieran o no, se crearon modas… ,  entre los mas resaltantes estuvo la OOP, luego recuerdo que en Perú llego la moda del RUP,  – pude ver a muchos mvps, y demas  en ese tiempo k a todo lo veían con ojos de RUP, esto hizo que muchos sigan a rup-  luego llegando a México pude ver la moda del CMMI, en tecnologias microsoft, hubo la moda del dataset, luego tbm vino la moda linq,- y junto con pegado LinQ2SQL, el WinME de .Net-, cuando se hizo obvio que linq2sql no era "muy bueno" – oh sorpresa- luego muchos se fueron corriendo a EF…- , y hace poco  – por mas que estuvo mucho tiempo en beta-  ASPNET MVC…,  una de las modas que mas me causo risa, y que aun sigue, es la de Sharepoint,  el cual salió hace mucho… la gente lo veia y nadie le hacia caso, – en ese tiempo yo use implemente y recomendaba SharePoint-, y luego algún famoso – no se aun quien fue- mostros a SharePoint…. y OH WOW… luego otro grupo tras de SharePoint… en este medio, no importa que la tecnología exista de tiempo atrás.. solo importa si algún famoso lo muestra y dice que es cool…   para que corra un gran grupo tras de esa tecnología/ metodología, etc…

y ojo, no digo que esas tecnologías / metodologías  sean malas…- bueno a excepción de linq2sql, que si opino que es el peor error de ms de los ultimos años-, sino que la gente no se basa en investigaciones, en estudio, en evaluaciones, sino se basa en lo que otros opinen al respecto…,  y eso mismo lo e visto aqui en geeks.ms.. por eso es que le llamo moda.

un ejemplo claro, en Perú y España a pegado mucho esta moda, en España me parece claro y lógico, por que muchas de las personas mas resaltantes optan por esta tecnología, – y estoy seguro que en base a investigación y evaluación-, y eso llevo a que otros se sumen – no muy estudiosos- , en peru dependen mucho de lo que digan los autores de eeuu con respecto a .net – y eso lo e visto en muchas personas, y "celebridades" -, en cambio, aqui a México llego hace un par de años Watts Humphrey , era logico que venga, ya que el ITESM tiene convenio con Carnegie Mellon University,  vino y explico sobre PSP y TSP, la gente quedo impactada, y acto seguido, todos querian llevar PSP Y TSP, esto pego tanto, que actualmente en la maestría de ing de software,  tocan básicamente PSP Y TSP, en las universidades se esta enseñando, y empujan a los alumnos a certificarse en PSP, y les dicen que "con eso arreglaran sus lios", sin fijarse en las capacidades de las personas…. , me pregunto, que hubiera pasado si Watts hubiera ido a peru en vez de a mexico?… xD!!?

Intentar seguir técnicas "Agiles" es malo? definitivamente no, pero una cosa es eso, y otra gritar a los 4 vientos "Soy agil,  y  vamos  te ayudo a que seas agil"…  , asi como rodrigo dice, que aparecen muchos "Gurus"… asi estan apareciendo muchos  en lo que respecta a agil… ya que ahora "ser agil es ser cool" …

y si, rodrigo tiene mucha razon al decir que el fondo de la "agilidad", es avanzar con respecto a los procesos que ya estaban establecidos, – como cmmi-… pero ahora viene mi pregunta, cuantos que estan intentando seguir las cosas "agiles" lo son por que han estudiado, analizado, investigado y comparado con respecto a las otras metodologías / tecnicas?  y cuantos solo por que vieron a un "compa" en el cual creen que sabe mas y "si el usa cosas agiles es por que es bueno, asi que yo tbm voy a usarlo"..

vamos, querer negar esto, seria como querer hacer agua con tan solo juntar unos átomos de hidrogeno y oxigeno a temperatura ambiente… o para que lo entiendan mejor, querer  tapar el sol con un dedo….

pero algo importante – y que muchos aceptan- es que no todos pueden usar todas las metodologias, por ejemplo, a rodrigo le funciona usar SCRUM en su empresa, por que el tiene en su equipo a gente que son muy buenos en su area, y muy inteligentes, pero cuantos pueden darse ese lujo? hablando por el twt con unos amigos, hace poco ellos mismos decian que la realidad es que en el mundo real aun predominan las empresas donde todos hacen de todo, no se contrata personal idoneo y muchas veces hay que verselas con programadores o analistas mediocres…., para poder usar SCRUM o XP -como ejemplo- necesito gente que sea inteligente  y proactiva, que no sean personas que les de flojera usar sus neuronas…; pero que pasa si mi equipo no es de los mejores? pues en muchos casos es mejor retroceder un poco a  cosas como CMMI o TSP que son mas pesados, mas documentacion, etc etc, pero que podrian darme un mejor resultado, con respecto al tipo de personal que cuento,….., si seguro pensaran que subestimo a la inteligencia de los desarrolladores, pero suene feo o no, es la verdad…, es como en los kentucky, mac donals, etc… sus cocineros no son buenos, pero si siguen el manual al pie de la letra, el resultado puede ser mejor de lo esperado….

si, se que en el soft existe el factor humano, que desequilibra cualquier ecuacion, por eso es que en soft no habra – al menos en los proximos 15 años-  una forma real y tangible de hacer soft con una seguridad de hacer soft con cierto % de calidad, con cualquier tipo de personal….

que es lo que dice la definición de moda? según RAE?  “Uso, modo o costumbre que está en boga durante algún tiempo, o en determinado país”, esto es lo que se ve, en casi todo lo que respecta a tecnologías/ metodologías, etc…  

lógicamente hay quienes si llegan a la conclusión de usar determinada tecnología/metodología/ tecnica, basándose en experiencias previas, evaluaciones e investigaciones, esas personas si tienen mi respecto… pero la mayoría no es asi, solo siguen por que “algun guru local  lo hace” .. suene feo o no es la realidad…

estoy seguro que esto de lo agil, scrum y aqui en mex el psp y tsp, seguirán vigente hasta que aparezca algo que los reemplace….  cuando algún gurú local o internacional use otra cosa que sea “mas cool” …

tengo muchas cosas mas en mente, pero bueno al menos por ahora le parare, y repito, la definición de “agilidad” no me parece mala.

les dejo una pregunta? .. SCRUM  hace cuanto se creo? hace cuanto estuvo esto de la “agilidad” en el mercado… y desde cuando se hizo “famoso” y “cool”  y se volvió masivo?  empaten las fechas…. y me avisan..

ahora si, disparen con todo lo que tengan xD!!

Salu2

Dacito Bauer!

Pato aventura : Analisis de un virus en frio…

Hola:

les voy a contar mi ultima pato aventura..

Ddaz.mode=Daniel

hoy en la mañana me llego un email, de esos típicos que te dicen que alguien te envío una postal… 

a diferencia de antes cuando enviaban este tipo de emails  de alguna cuenta inventada, que podía ser fácilmente marcada como “no deseado”, están enviando estos emails de la cuenta “info@hi5.com” que esta tomada como “cuenta normal” y a casi nadie le llega a la carpeta de “correo no deseado” – lógicamente fue enviado desde un lugar que no es el verdadero…  en teoría el email viene desde el dominio metropostales.com, y el que envió el email no es el mismo dominio

email

lo primero que suelo hacer en este tipo de casos es ver el encabezado del email, en hotmail – o live mail – pueden darle con el botón derecho al email y seleccionar “ver código fuente”, les dejo  la imagen del encabezado, no borre las direcciones ni dominios originales – para que vean quien  fue el que lo envió… –

header

Al ver este tipo de datos  en la cabecera del email es posible estar seguros a un 99.9%  de que es un email falso,  al dar clic al vinculo – no pude resistirme – me di cuenta que descargaba un archivo que tenia un icono de un circulo y decía claro –si, el de una empresa de telefonía que funciona en Perú –, en este momento ya estaba totalmente seguro que era un virus, solo que aun no estaba muy seguro de que sea de Perú. 

icono

en esta ocasión hice lo que siempre hago – soy partner de ESET,si  los del nod32 –,   y les envío de vez en cuando alguna muestra de virus que encuentro – bueno tbm me gusta coleccionarlos,  quien sabe, quizá algún día los ocupe –, lógicamente al ser domingo es lógico que no respondan rápidamente, así que decidí esta vez analizarlo un poquito,

luego me puse a ver las propiedades del archivo  y pude ver esto :

propiedadesarchivo

Al ver estos datos pude ver que el que creo el virus no es tan metódico, ya que dejo demasiadas cosas sueltas como el nombre del proyecto “Proyecto1” ,  y el archivo  original se llamaba formulario.. e visto virus mas elaborados y no se saltan este tipo de detalles.

el segundo paso era saber con que fue compilado – en que lenguaje se hizo –, para esto use la herramienta “File Inspector XL”, el cual pueden descargar desde esta web http://www.exetools.com/file-analyzers.htm , dándome como resultado :

headerfile ya con esto pude saber que lo hicieron con Visual Basic  –  donde están los que dicen que el VB no sirve ? –

ya sabiendo esto, solo tenia que buscar el descompilador – o desensamblador –  adecuado, ya que  no todos los desensambladores funcionan con todos los ejecutables, en este caso use 2, uno es el VB decompiler lite  y el otro fue el W32DASM – con un parche para referencias VB –, y las imágenes que salieron fueron:

vbdecompiler

de esta imagen algo que destaca es “MicrosoftUpdateManager”  suena a la ventana de Windows update, pero no dijo mucho, así que me fui con el W32DASM.

w32dasm al abrir el archivo con el w32dasm,  y luego ir a la sección de “String references” salieron estos datos – cadenas de texto usadas en el programa  y que  pudo analizar el de compilador, en frio, vienen datos como :

  • “load=C:windowssystem32updmngr.exe”  que debe ser el nombre de como se instalara el Virus, y esto se podría ver luego en el msconfig.
  • “http://minux2010.no-ip.org” este es el sitio donde el virus envía /recibe información.
  • “c:windowssystem32driversetchosts” este es un archivo de sistema que guarda unas urls en cache de la pc… el virus – como muchos – infectara la pc,  lo mas común es para que cuando uno abra una ventana del navegador, automáticamente se conecte allí.
  • En la imagen se ven algunas secciones como <PRE> y </PRE>  así que de aquí se puede suponer que mostrara una ventana con algo de código HTML.

 

todo esto aun sin analizar en código ensamblador mostrado – que tomaría algo mas de tiempo – y bueno, al menos por ahora es suficiente, ya que es un analisis simple, sin tener que ejecutar la aplicación.

intente correr el programa en una pc virtual con Windows 2003 y en mi pc host con Windows 7, pero como no tenia las librerías de VB6 – msvbvm60.dll – , salió un error y el virus no funciono uhh que pena – si alguien quiere el virus, se lo puedo enviar por email – si es que me lo pide… lógicamente-

Quería enviarles un screenshot de la ventana del virus… pero al menos por ahora aun no me animo a descargar la dll que hace falta, para poder abrirlo….

lógicamente no mostré mucho sobre el desensamblado – cosas que mostrare en un futuro  – , el w32dasm pueden encontrarlo en “Crackerskit 2” – googleando lo encuentran – o  tbm en esta pagina http://www.exetools.com/disassemblers.htm .

Se que esto no tiene nada que ver con .net… pero recuerden que “No solo de .Net vivirá el hombre, sino de todo código que sea escrito y sea funcional.”

con esto respondo el pedido de Ebersys

Ddaz.mode=Dacito

Salu2 

Ddaz

Mi Opinión y Experiencia Personal sobre TDD – y de por que NO estoy MUY de acuerdo con el –

Estoy últimos días e visto platicas, post ( uno de ellos es este )   y mensajes en el twitter sobre cuestiones “agiles”  y temas afines, aunque un tema en particular atrajo mi atención, es sobre TDD o  como algunos lo conocen, y ya no pude evitar querer dar mi opinión al respecto; aunque antes que nada me veo obligado a dar unas premisas, en las cuales basare mi “punto”

Premisas ( o como las quieran llamar)  :

  1. No todos los Programadores tienen el mismo Nivel : Esto es conocido por todos, aunque no aceptado públicamente – cuestiones de orgullo –,  así como hay programadores que no necesitan documentación – un amante de gnu por allí de ejemplo? –, y otros que no necesitan pruebas unitarias para hacer programas con cero errores o quizá un numero mínimo de ellos… así también hay programadores, que con toda la documentación, capacitación y pruebas unitarias les falla la aplicación.. causas?  quizá algún gen maligno, magia negra, el chupa cabras, la CIA interfiriendo nuestras ondas cerebrales con algún aparato electrónico a lo “Agente 86”… o quizá algo mas de experiencia y aprender de los errores pasados sumado un poquito de mucho estudio y practica.
  2. Que exista cierta metodología o proceso, implica que hay personas a las que SI les funciono, pero no significa que a todos les funcionara. que exista RUP, SCRUM, etc. significa que hay personas a las que siguiendo los pasos que le fueron indicados, tuvieron éxito en lo que buscaban, pero esto a su vez no implica que a todos les ira bien, posibles factores son muchos –
  3. Las Metodologías, técnicas, etc., no son Leyes : aunque suene feo, si obviamos usar determinada metodología “así tal cual viene en la caja”, si evitamos usar rup, scrum, etc etc etc.. esto no implica que nuestro software tenga muchos errores, o no sea optimo, las metodologías solo son una guía en la cual nos podemos basar para intentar tener un buen resultado con un mínimo costo / tiempo, OJO no estoy impulsando a no usarlas, solo quiero aclarar que no es un pecado capital “el no usarlas”, lógicamente que es como el juego de la ruleta rusa, nos puede ir bien  o nos puede ir mal, personalmente no soy de los que usa algo “tal cual viene en la caja” sino que lo personalizo hasta poder sacar el máximo rendimiento.
  4. Un Programador no piensa igual que alguien involucrado a fondo en el área de pruebas – a menos que tenga extrema experiencia en el tema-  :  en este punto e tenido algunas discusiones – muy placenteras – con algunos colegas; tengo algunos años – no muchos  si los comparo con algunos de los maestros que rondan por aquí en geeks.ms – e trabajado junto  a desarrolladores de al menos 2 países ( Perú y México) y con mas de 6 años de experiencia en pruebas, y e podido constatar – eso sin tomar en cuenta a lo que ya dicen muchos  respecto al tema –, que la forma de pensar de un programador “promedio” – ojo con la premisa 1 –  su forma de ver las cosas es como “construir” algo, su mente este abocada a armar software y es muy difícil – por no decir casi imposible – en pensar a fondo en pruebas, lógicamente se le ocurrirá una que otra, de cosas simples o básicas, pero no de las que son a profundidad;  a diferencia de alguien involucrado en pruebas – y no me refiero a los pica botones – en el cual su mente esta abocada a “Destruir” y pensar en como destrozar algo que otro realizo, se que muchos me dirán que no es cierto, pero e realizado la prueba con muchos programadores -soy del tipo que le gusta hacer experimentos son la gente- y los resultados fueron muy claros. Lógicamente hay personas con algo de experiencia – y que no tienen perdida de memoria –  y con el transcurrir el tiempo van pensando en pruebas cada vez mas complejas, lamentablemente este ultimo grupo es muy reducido. – no me extiendo mas, sino me auto robo el tema del siguiente post, que espero sacarlo ahora si –
  5. Una prueba unitaria básicamente es: probar que metiendo A datos a X función me devuelva Y; pero esto no implica que si meto B me devolverá Z:  el titulo habla por si solo, me extenderé en esto mas adelante.
  6. Basarse “solamente” en una forma de medir el software  puede ser tu perdición : aquí es simple, el usar “solo X” puede ser la causa que un proyecto se venga abajo, ya que en el software interviene el factor humano, el cual  es capaz de romper cualquier regla, en otras palabras, el hombre esta aplica principio de incertidumbre de Heisenberg, y por lo mismo quizá una forma única de ver las cosas nos diría que estamos en lo correcto, mientras que otra medida nos diría que no. ( al hablar de medidas me refiero a pruebas )

 

Veamos ahora algunos puntos acerca de TDD – por comodidad me fusilare los pasos descritos en wikipedia

  1. Escribir El Requerimiento.
    • Esto es algo que se repite en cualquier metodología/ y forma de trabajar, el error en este punto varia directamente proporcional al que recoge los requerimientos… aunque de aquí depende mucho  el avance del proyecto, sobre que tantos y que tan buenos fueron los requerimientos recogidos –aquí hay material para extenderse otro post –
  2. Escribir las Pruebas.
    • Bueno:
      • El fin aquí es escribir el menor código “funcional” – de la app – al hacer que el programador se dedique a generar código que pase las pruebas,  estas pruebas están basadas en los requerimientos establecidos, aquí el nivel de efectividad depende de la calidad de requerimientos.
      • El echo de escribir la prueba antes que la funcionalidad, nos abre un poco mas la vista sobre que es lo que realmente necesita la aplicación de acuerdo a determinado requerimiento – ya que hay casos en que el error es que simplemente no se entendió bien el requerimiento –.
      • Cuando hay cambios en la aplicación,  se puede correr las pruebas y verificar que la aplicación “aun” supere las pruebas.
      • Las Pruebas unitarias no son el chupa cabras : algo que es absoluto es que Si o SI se tienen que hacer pruebas a la aplicación, ya sea antes o después – como puso Rodrigo en este post , aunque para algunos, escribirlas después hace que ya NO sea TDD-; personalmente las prefiero después.
      • Muchos de los beneficios los integro Ibon Landa en varios links de  este post, que seria bueno que lo vean.
    • Malo:
      • El Echo de que TDD pida que se hagan las pruebas antes, implica que el programador hace tareas de el encargado de pruebas : algo que se puede subsanar dando las pruebas para que lo realice una tercera persona, o se realicen luego de escrita la funcionalidad, lo cual podría traer líos con los puristas de TDD
      • Algunas veces para intentar cubrir todo, se crean requerimientos redundantes, que traen a su vez  pruebas redundantes, lo que implica una perdida de tiempo que se puede entender por perdida de $$.
      • En Algunos casos las pruebas terminan siendo mas complejas que la funcionalidad en si, haciendo que mas que una ayuda, sea un lastre para el proyecto – ojo que no es en todos los casos-
      • Muchas personas – no aplica en todos los casos – consideran que es una perdida de tiempo escribir las pruebas antes que el código, esto también depende de la pericia del programador y a como este acostumbrado a trabajar, personalmente no soy “fan” de escribir las pruebas antes, aunque si me gusta desde la etapa de requerimientos, definir las pruebas que debería pasar la aplicación.
      • que tenga 3000 ( o mas ) pruebas unitarias, no implica que este tomando en cuenta la totalidad de “posibilidades”, ya que una cuestión es probar valores puntuales en funcionalidad puntual  y otra muy diferente  tomar valores y estados en conjunto, ya que por ejemplo tomando un universo de 10 variables, estas 10 independientemente pueden funcionar a la perfección, pero en conjunto, en determinada situación pueden causar un error, que quizá no será un error de aplicación, sino un error de lógica y a su vez obtener valores erróneos,
      • Trabajar con demasiadas pruebas puede hacer que uno caiga en la desesperación como en este caso , que por cierto tiene gran  parte de razón, ya que las pruebas se pueden extender infinitamente, y un proyecto que pudo desarrollarse en 3 meses podría extenderse 2 años por el puro echo de ir programando pruebas, a la hora de hacer las pruebas, hay que saber en que punto detenerse.
      • Algunas personas llegan a creer que por el echo de que la aplicación haya pasado las pruebas unitarias significa que ya esta lista para irse a producción: Lamentablemente aun hay personas y empresas, que toman a menos a los encargados de pruebas, quizá  por que en muchos casos se contrata a  personas sin – o muy bajos – conocimientos técnicos y esto hace que los programadores y jefes de proyectos tomen a menos a los del área de pruebas. – aunque si hay casos en el que el razonamiento es justificado –; esto sumado al ego – si, ya se, estoy desvariando, los programadores no tenemos el ego grande, ni tenemos complejo de todopoderosos, son alucinaciones mías –, han llegado al punto de hacer que en ciertos casos los programadores minimicen o ignoren errores reportados – me consta- , los cuales luego tronaron – fallaron – en producción y trajeron muchos dolores de cabeza, este tipo de problema es algo complejo de resolver, por que escapa a lo “profesional” y se va a lo personal. algo que si es definitivo es que a pesar de todas las pruebas unitarias que le hagamos, aun la aplicación debe de pasar por un proceso de pruebas,  algo mas especializadas y quizá no automatizadas.
      • Las pruebas Automatizadas no aseguran que la aplicación este libre al 100% de errores :  ya que muchos de los causantes de sitios web hackeados, son por vulnerabilidades que las pruebas automatizadas no detectaron, sino miren el ejemplo de MS y que le paso por confiar en sus pruebas automatizadas , por eso es casi de ley hacer pruebas de esas que son basadas en el “ojímetro” – espero poder dar ejemplo prácticos sobre esto en un futuro no muy lejano – 
  3. Verificar que la prueba falla:
    • Aquí verificaremos que el error se presente… el problema es que pudimos habernos pasado unos 30 minutos o 1 hora escribiendo cierta prueba, que a las finales no falla, y no necesariamente por que la prueba este mal, lo que implicaría de nuevo una perdida de tiempo, aunque a su vez nos podría confirmar que X funcionalidad trabaja correctamente.
  4. Escribir la implementación:
    • aquí escribimos la funcionalidad de la aplicación, la cual deberá integrar  las validaciones necesarias  para poder superar la o las pruebas, en teoría – si estuviéramos en con Alicia en el país de las maravillas – la aplicación debería de funcionar sin problemas, la codificación de la aplicación debería de ser mínima, lamentablemente es algo que no pasa muy seguido a menos que el programador ya tenga una amplia experiencia,  lo cual nos saca del foco del “programador promedio”.
  5. Ejecutar las pruebas automatizadas:
    • Aquí la aplicación debería de pasar todas las pruebas, pueda darse que la aplicación pase las pruebas a la primera corrida, pero esto no implica que este libre de errores, solo indica que puntualmente la aplicación esta respondiendo  con determinados datos, pero no a todos
  6. Eliminación de duplicación:  aquí vamos refactorizando, algo útil, que a su vez es una inversión, este proceso no es malo, siempre y cuando se haga mesuradamente, ya que existen personas que se trauman demasiado con la optimización – si, ya se, estarán pensando “perro hablando de pulgas” – y hacen que se pierda demasiado tiempo en esto.
  7. Actualización de la lista de requerimientos: como el nombre lo dice, reordenamos los requerimientos y si es posible a repetir el proceso!.

 

Mi Experiencia Personal: no es exactamente TDD, pero usaron el modelo de pruebas.

Creo que ya lo conté en algún post…, no me canso de ponerlo, por el impacto del proyecto – de algunos millones de pesos – , erase un soft, al cual se le hizo un listado de requerimientos, y fue construido tal cual los requerimientos, el soft había pasado las pruebas planteadas en los requerimientos; si uno usaba el soft  tal cual indicaba el manual – las funciones puntuales trabajaban a la perfección – la aplicación funcionaba súper bien, el problema era cuando alguien daba un clic de mas, o presionaba en otro botón,  o hacia cualquier acción no contemplada en el proceso del manual de usuario; en ese momento la aplicación tronaba, fallaba,hacia BOOM…, no participe en la construcción de ese proyecto, aunque si en la destrucción – viendo como tronaba igual al pop corn-  cual fue su error? basarse “exclusivamente” en las pruebas echas en base a los requerimientos, y no ir “mas allá”  error en el cual algunos caen por que se confían demasiado en “las pruebas unitarias”, lógicamente esto también depende con que se cuente con un área de pruebas, ya que existen empresas en las cuales el programador tiene que hacerlas de tester, y eso puede volverse un gran problema.

 

Mi Opinión  y conclusiones :

El echo de que TDD exista, es por que hay personas a las cuales les funciono, pero antes que nada tenemos que tomar en cuenta el tipo de personas que lo usan, ya que de acuerdo al nivel de las personas, es que podemos hacer determinadas cosas, por ejemplo yo no podría hacer algo al mismo ritmo de alguno de los Scott – que salen por todos lados – , o un recién egresado a mi ritmo, por lo mismo no todas las metodologías funcionarían con todas las personas – por mas que la teoría diga que si se puede.

Escribir las pruebas antes que la aplicación, en la mayoría de casos – por no decir casi todos-, involucra que el programador realice funciones que no le corresponde, por eso mismo, personalmente prefiero las pruebas luego que el código de la aplicación y mas aun, prefiero que el que escriba las pruebas sea uno encargado de pruebas, así el programador se enfoca básicamente a programar la aplicación, aunque podría ir escribiéndose las pruebas y la aplicación en paralelo, esto depende de si se cuenta con personal capacitado para esto – si el de pruebas sabe programar pruebas, o solo es un pica botones –

Por que no estoy muy conforme con TDD? 

como ya lo puse, así como el modelo lo muestra, – y como es implementado normalmente- el programador tiene que hacer las pruebas y la aplicación, lo que implica  doble trabajo y hacer tareas que deberían tocarle a otras personas; estoy totalmente de acuerdo en que se deben de hacer pruebas, pero a mi parecer, lo debería de hacer alguien mas,  y mas aun que esta persona debe de estar integrada al equipo desde la etapa de diseño – esto es del siguiente post – . Lógicamente existen en nuestro medio personas excepcionales, que programan a una gran velocidad, y estas personas pueden programar pruebas y la funcionalidad  aun en menos tiempo, de lo que un programador promedio podría hacerlo, si esta fuera la situación,  que se da, en no todos los casos, pero se da,  allí no tendría ningún problema con que el programador haga las pruebas que quiera; pero lamentablemente esto no pasa en todos los casos.

Jorge Gamba me dijo vía twitter que BDD es mejor que TDD… ya habrá tiempo para opinar sobre eso.

Para terminar creo que TDD no es del todo malo, siempre y cuando se apliquen pruebas exhaustivas aun luego de que estas pasen las pruebas unitarias o pruebas automatizadas, confiar “solo” en estas pruebas unitarias, seria un grave error – se que Jersson dirá de que en TDD tbm se hacen pruebas – , el problema que hay es cuando personas con poca experiencia en el desarrollo de software usan esta metodología, es muy fácil que sientan que con las pruebas unitarias, ya tienen todo a la perfección y alli empiezan los problemas.

 

por si alguien quiere saber las mensadas que suelo poner – y que no llego a poner aquí por lo corto de las ideas, pueden encontrarme en  el twt http://twitter.com/ddaz – y lo de las mensadas es muy en serio eh xD –, se que dicen que el twt no es un chat, pero hay ideas que hay que  replicar en caliente, sino se va la inspiración.

espero sus opiniones y retroalimentación al respecto, no olviden que es mi apreciación personal :), quizá se me paso escribir algunas cosas que en este momento no se me vienen a la mente… pero de todas maneras este paso a ser otro “Testamento de Dacito”, veamos cuantos llegan a leer hasta este punto.

 y como lo prometi….  lo publique antes de irme a dormir… siendo las 3:36 am.. fugo para dormir…

Salu2

 

Ddaz – El Dacito –

Off Topic Nacimiento de Sakura

Se que tengo algunos post prometidos pendientes, se que no es excusa, pero hace unos días nació mi primogénita, Sakura Susana, los últimos días del embarazo maría me tuvo muy ocupado.

Nació el 2 de Abril, y sus Especificaciones iniciales fueron :

  • Estatura 56 cm
  • Masa 3.4 Kg
  • Peso 3.4 Kg Fuerza a 0 msnm.

en este momento estoy escribiendo un post, pero no podría ponerlo, sin antes poner sobre esto. les dejo una imagen de sakura

 

 

 

si les da curiosidad…. regularmente iré poniendo como una bitácora en línea sobre ella aquí http://marddaz.com/Informes.aspx 

 

 y Aquí un video  de Sakura :

 

si… ya se…  estoy idiotizado por mi hija…  lo acepto!!!

Salu2

Ddaz – el Dacito –

una cortita Instalar Expression Studio 2.0 en español en Win 7

estaba intentando instalar el Expression Studio 2.0 en Win 7 .. y el autorun del instalador, me pidió instalar el “.net framework 3.5” – cosa que el win 7 ya trae… me dio curiosidad y la di en aceptar y entonces me salió el mismo mensaje que con el sp1 del vs 2008, de que el “language pack” se tiene que instalar desde panel de control / agregar o quitar componentes  ( http://geeks.ms/blogs/ddaz/archive/2009/03/03/una-cortita-mi-primer-problema-con-win-7.aspx )  ya me andaba preocupando…, pero en eso se me ocurrió entrar a la carpeta “setup” y ejecutar el archivo “XSetup.exe”, y con esto ya no me pidió  el FW  y pude instalar  el Expression Studio 2 en español; cabe señalar que este inconveniente es solo con las versiones en español, si , ya se que muchos dirian que use las versiones en ingles… pero me gusta mas el software en mi idioma.

aclaro, esto no lo considero un bug… lo pongo como tip.

Salu2

 

Ddaz

una cortita – mi primer problema con Win 7

este post lo tenia en borrador hace uff… en si ya encontre mas bugs de win 7… pero aun asi me parece bueno…

si , ya se….  

hoy me anime a instalar en la particion principal de mi pc el win 7 y luego me puse a instalar el soft que uso regularmente……..

tuve unos detallitos … pero nada  comparado a cuando quise instalar el SP del Visual Studio 2008 …

para empezar, yo uso las ediciones en español del VS – si ya se que muchos dicen que hay que usar en ingles, pero a mi me gusta en sp y lo uso -.

el Windows 7 trae por defecto el Framework 3.5 SP1 nativo, asi que a la hora de poner el SP 1 del VS 2008 – en spanish –  intenta instalar el paquete de idioma del fw 3.5 sp1, y alli es donde rebota.

Mirando el archivo de log y luego verificando a mano – descargue el archivo dotnetfx35langpack_x86es –  me sale un mensaje, de que ese paquete de idioma tengo que habilitarlo desde » agregar o quitar componentes» -algo que aun no existe en el windows 7, me refiero a agregar esa caracteristica desde agregar o quitar componentes -, supongo  que esta parte estara disponible mas adelante…- eso espero – , aunque no se como se hara con versiones como la home premium – donde estoy probando -, que no deja instalar paquetes de idioma, ojala y pronto decidan esto y lo habiliten, ya que en este momento no se puede instalar…. 

aun no decido si poner una virtual o volver al xp… jeje, pero no pondre el vs 2008 en ingles jeje -a las finales  tuve que ceder, por presiones laborales- …. cuestiones de orgullo :), ya envie el  reporte al team.. – y otros 4 mas – veremos que dicen en ms 🙂

fuera de eso, aun me gusta el win7…

salu2

Ddaz

Off Topic – Volviendo “de nuevo” a la jugada…

hace unas semanas, había tomado la decisión de alejarme de todo lo técnico, mientras acomodaba mi mente… para lo que esta por pasar dentro de poco – nace mi hija –, y bueno tenia que meditar muchas cosas, y sumado a la sobrecarga de trabajo… hizo que deje de lado hasta la comuna, – ni revisaba los comentarios al blog –,  la meta para dejar el aislamiento vencía hoy… así que espero ya comenzar a ponerme al día, en las respuestas a este y al otro – en msmvps.org – los post que había prometido y tenia pendiente. 

 

bueno al menos no perdí el tiempo, en mi tiempo de aislamiento, arme – junto con la PK – un Avion F-14 a escala xD

SDC10940[1]

 

 

así que empecemos!

 

Salu2

 

Ddaz

otro off topic Luego de lo bueno… viene lo feo…

si, no niego, me gusta el win 7, pero esto trae una cola, el echo de que a nivel global muchas personas empiecen a descargar el programa, hace que se saturen las redes, no se en otros lados, pero por aquí los DSL empezaron a caerse uno trae otro ( varias líneas ), al parecer telmex  ya no  se da abasto, o no se…

El problema es que los usuarios comunes y silvestres no entienden que como salió un nuevo beta ( ni entienden la palabra ) por eso el internet falla los msn se les cierran y  las paginas no abren, piensan que uno es mago y con un par de clics puede arreglar el mundo :s …

espero y se calme pronto, por que al menos hoy si e estado batallando mucho con los usuarios….

Salu2

Ddaz

off topic.. pregunta abierta sobre live writer y comunity server

hago esta pregunta a todos para ver si soy el unico con el problema….


 lo que pasa es que actualice a la ultima version del live msn writer, etc que salia en el inter, ( 9) y lo que paso es que ya no puedo usar el live writer con este blog.


en modo edicion no me deja escribir nada, se pone el color del tema del blog, pero no me deja  escribir contenido, solo en modo «html»  y esto con esta version, antiguamente si me dejaba usarlo…


a alguien mas le paso lo mismo? lo digo esto por que hasta el momento no encuentro referencias  en inter sobre esto.


 pdta : ya probe en mas de 1 pc y sale el mismo problema, 2 de ellas estaban recien formateadas.


Salu2


Ddaz

una cortita , mi opinion sobre el windows 7

No intento unirme a la fiebre de post que hablan de la disponibilidad del beta en publico, etc….


normalmente soy muy critico con cosas que no me parecen, pero aun puedo decir de cosas que si me gustan….


la situacion es esta, Ms hace unas semanas me envio un email invitandome al beta del win 7, la vdd algo dudoso acepte….


Pude descargar el win 7, aunque me pidieron que instale el Home basic Premium, lo instale…. y aqui les dejo unas cosas que pude ver




  • El logo de inicio y el grafico que sale, me gusto, me hicieron recordar a la serie el auto fantastico


  • La forma de agrupar las ventanas tambien me gusto ( con miniaturas )


  • Mientras instalaba me detecto la wireless y me pidio el pass para conectarme ( antes de que termine la actualizacion )


  • Creo algo como un «grupo» ( con clave ) para enlazarlo a mis demas pcs de la casa – aun no pruebo esta caracteristica, por que solo tengo una pc.


  • Me da la impresion de ser mas ligero y que las ventanas se mueven mas rapidamente que con un vista recien instalado.


  • Tuve que instalar un fix especial (KB961367) para que no me desgracie los mp3… esto me paso en un beta del vista, menos mal que ahora si sacaron a tiempo el fix.


  • Entre las descargas pude ver un win 7 server…. asi que supongo que por alli se viene otro ….


  • Me detecto los drivers de la lap ( hp pavilion dv6000) sin problemas

agregado luego :




  • me parecio curioso que el word pad abra los .docx pero no los .doc


  • conecte el media center con la xbox 360 y me gusto, definitivamente deproducire las cosas con el media center 🙂 la experiencia me parece mucho mejor que en vista.


  • trae el windows media player 12.

en unos dias me toca hacer el upgrade al ultimate.


Logicamente aun me faltan probar muchas cosas, pero hasta el momento y con el nivel del beta  que es, puedo decir que me siento satisfecho  con el producto.


En esta vez me siento en la confianza de recomendarles que bajen el beta publico ( no dare links, ni imagenes, por que ya para eso otros han posteado del tema, pueden ver los otros post).


Omar tiene de nick «¡¡Ahh, a Ddaz le gustó Windows 7!! Imagínense lo bueno que tiene que ser para lograr eso..».. tan dificil es que me guste algo???…. jeje


espero no haber roto ningun nda …. jeje


hasta la proxima…


Salu2


Ddaz