All posts tagged “Programacion”

Desarrollo de software y el valor de la gente.

computadoras

En el ámbito del desarrollo de software tal vez un tema que está por demás comentado pero que no por eso deja de tener relevancia sea el papel de las personas y de su impacto brutal que tienen en el software. La gente es la que tiene necesidades, gente que recopila especificaciones y elabora un plan de acción, es gente la que desarrolla, gente que es usuaria del software, gente, gente y más gente. Todos involucrados de una u otra forma en un proyecto.

Y es que en los tiempos donde la alta competitividad nos fuerza a elaborar software con la mayor rapidez, la mejor calidad, la mejor eficiencia, el nacimiento de las metodologías ágiles han venido a alimentar ese monstruo de la “Agilidad”.

Pero si bien es cierto que no es necesario recurrir a innumerables test, pruebas o una prestigiosa empresa consultora, que la misma solución metodológica aplique y funcione para todos los casos que se presenten, porque al final eso solo nos convierte en “cumplidores” de la metodología sea-como-se-llame, y ese esfuerzo solo distrae de las tareas que realmente serían prioritarias, en vez de seguir o usar una metodología paso a paso.

Lo peor que puede pasar es que al no cumplir con los procesos, inmediatamente se piensa en que la metodología no tiene el nivel de detalle adecuado, burocratizando y haciendo cada vez más complicados las tareas.

Hay que entender que una organización quiera conseguir una predecibilidad en los resultados que sea escalable al resto de proyectos de misma: “si aplico esta estrategia probablemente la mayoría de los proyectos conseguirán buenos resultados”, y de ahí la intención de conseguir esa repetibilidad a través de los procesos.

Y es que si continuamos pensando de esta manera solo nos enfocamos en que las técnicas, las prácticas y las metodologías no funcionan y pasan a ser cambiadas como piezas desechables, considerando a las personas como únicamente instrumentos y ejecutores de las tareas y no al revés.

Es cuando nos damos cuenta que el punto central en el desarrollo lo hace la gente. Que si el responsable de cada tarea colabora y propone, que el solicitante tenga claro que quiere y que no, del equipo de desarrollo comprometido en comprender especificaciones, todo esto en un ambiente de interacción y colaboración, en donde las prioridades se pueden cambiar, en donde el espíritu de integración es más fuerte que el de independencia. Y es en ese momento que ninguna metodología, técnica y buena práctica puede superar al esfuerzo en conjunto, que si bien el uso de ellas puede ser un apoyo importantísimo, aun existiendo sin la gente es como una espada muy muy filosa pero al mismo tiempo muy pesada y sin la fuerza necesaria para empuñarla.

El éxito si bien no es 100% asegurado, al menos te da más confianza en alcanzarlo, ese es el truco, la gente aportando su valor al proyecto, porque el software necesita de ese esfuerzo, dedicación, energía por parte de todas las personas que participen en el. No todos funcionamos igual ni seremos igual de efectivos, pero si iniciamos un proyecto con esa idea, podemos sino garantizar que el proyecto llegue a buen puerto, al menos tendremos la certeza que todos nos esforzamos y pusimos una parte de nosotros en el.

Jwerty. Manipula eventos del teclado con javascript

Jwerty es una libreria de javascript, para poder manipular eventos del teclado, para implementarlo en nuestros diferentes sistemas o sitios web. Como caracteristicas encontramos que es muy liviana(1.5kb minimizado) y soporta diferentes tipos de eventos, como “dejar presionado”, orden o combinaciones de teclas.

Su uso e implementacion es sumamente facil, y puede ser utilizada como una libreria independiente o como extension de frameworks como jQuery, Zepto.js y Ender.

Enlace: Jwerty

PHP Scenario. Libreria para pruebas A/B

PHP Scenario es una librería de PHP diseñada para realizar pruebas de A/B en nuestros proyectos, está enfocado a desarrollos orientados a objetos y solo consume una pequeña porción de código.
Entre sus características tenemos:

  • Pruebas en línea.
  • Soporte de la clase DPO y DBLA de Zend Framwork.
  • Resultados renderizados en XML.

Una interesante opcion, configurable y con varias opciones, muy util para los desarrolladores PHP.

Lidia dice:
sabes que me caes muy chamakito y si alguna vez quieres marcar y puedo contestarte lo haré, asi como yo aveces pueda marcarte y si tu puedes contestar lo haras

Jerarquia del programador

Dandole una leida a Emezeta Blog me encontre con este articulo. La version 2.0 del ya clásico The Programmer Hierarchy de Lukewelling.com, la jerarquia del programador. Esta genial :D

Coffeescript, lenguaje de scripts inspirado en Python y Ruby

CoffeeScript es un lenguaje de basado en scripts, orientado a la sencillez y facilidad de programación, incentivando a los desarrolladores a generar código más fácil y sencillo tanto de entender como de escribir.

Con una sintaxis inspirada en Python y Ruby, facilita las tareas de desarrollo y sobre todo de mantenimiento del código. Coffeescript compila todo el código generando un un archivo con extensión .coffe de javascript facilitando su implementación.

La versión más reciente es la 0.9.1. una excelente opción para aquellos que gustan de probar nuevas alternativas en cuanto a lenguajes de programación se refiere.

CoffeeScript

PHPLOC. Estima proyectos en PHP.

Algo que muchas veces resulta dificil al momento de desarrollar, es calcular que tan complejo es un proyecto e desarrollo, ya que aunque tengamos perfectamente ordenado y estandarizado nuestro proyecto, resulta una tarea dificil, entre tantos archivos y carpetas.

Afortunadamente de PHPDeveloper, presentan esta util herramienta que de manera automatica nos arrojara cifras para poder determinar la complejidad de un proyecto, en diversos aspectos como:

  • Namespaces.
  • Metodos.
  • Clases.
  • Lineas de Codigo.
  • Etc.

Realmente una muy buena opcion para los desarrolladores PHP.

Enlace: phploc

Si los lenguajes de programacion fueran autos.

Por la red anda rondando un texto similiar “Lenguajes de programacion matando a un dragon”, pero que pasaria si cada lenguaje de programacion fuera un auto? algunos estan muy buenos xD.

  • ADA: Es un tanque. Es grande y feo, pero lo aguanta todo. La mayoría se echarán a reir si les dices que programas en ADA, pero en serio… ¿Te gustaría conducir un deportivo en un campo de batalla?.
  • Ensamblador: Tu eres el coche.
  • Basic: Un sencillo minicoche pensado para trayectos cortos por ciudad. Muy popular entre los conductores noveles, hace poco una gran compañía lo rediseñó por completo convirtiendolo en un vehículo apto para trayectos largos. Eso si, solo conserva un ligero parecido con el modelo original.
  • C: Es un coche de carreras increiblemente rápido, pero que se estropea cada cincuenta kilómetros.
  • Cobol: Se supone que es un coche, pero ningún conductor que se precie reconocerá publicamente haberlo conducido.
  • C#: Es un modelo de monovolumen muy competitivo. Eso si, si te decides a usarlo ya no podrás utilizar modelos de la competencia nunca mas.
  • C++: Una versión mejorada de C, con una gran cantidad de extras y que solo se estropea una vez cada 250 kilómetros. Eso si, cuando se estropea nadie es capaz de descubrir que es lo que ha pasado.
  • Eiffel: Un coche que incluye un asistente por voz con un bonito acento francés. Te resultará muy útil para detectar y corregir tus errores, pero es imposible discutir con él. Es mas, puede llegar a insultarte y echarte del coche.
  • Erlang: Una flota de coches que funcionan de forma coordinada para llevarte donde deseas ir. Requiere bastante práctica aprender a conducir con un pie en cada coche, pero una vez que hayas aprendido te será muy difícil conducir de otra manera. Otra característica es que, puesto que conduces varios coches, no importa si alguno de ellos se estropea.
  • Forth: Un coche que te construyes tu mismo a partir de un kit de montaje y que no se parece a ningún otro coche del mercado. Ademas, un coche Forth solo puede ir marcha atrás.
  • Fortran: Un coche bonito pero primitivo. Puede ir increiblemente rápido, a condición de que la carretera sea perfectamente recta. Se dice que aprender a conducir un coche Fortran hace imposible aprender a conducir ningún otro modelo.
  • Java: Un monovolumen familiar. No es muy rápido, pero es fácil de conducir y muy seguro.
  • Haskell: Un coche con un diseño muy bonito y elegante. Se dice que puede circular por los terrenos mas extraños, pero la única vez que te atreviste a conducirlo no seguía la carretera; en lugar de eso, iba creando copias de si mismo y de la carretera y en cada copia el coche aparece en una posición algo adelantada. Se supone que se puede conducir de una forma convencional, pero no sabes las suficientes matemáticas para adivinar como.
  • Lisp: Dicen que es un coche, pero con unos pocos trucajes se puede convertir en un avión o un submarino.
  • Mathematica: Es un coche muy bien diseñado que toma muchas ideas de Lisp, pero sin concederle el crédito que se merece. Es capaz de calcular la ruta mas óptima hasta el destino, pero cuesta una fortuna.
  • MathLab: Un coche diseñado para que los conductores noveles puedan moverse por los mismos terrenos que Mathematica. Es muy cómodo de manejar si te mantienes dentro de ese terreno, a la que te salgas aunque sea un poco, se vuelve tan difícil de conducir que los conductores mas snob inclusó negarán que sea un coche.
  • Ocaml: Un precioso coche de diseño europeo. No es tan rápido como C, pero puesto que casi nunca se estropea en la práctica llegarás antes al destino. El problema es que, puesto que es de origen francés, ninguno de los controles está donde esperas encontrarlo.
  • Perl: Se supone que es una maravilla de coche, pero su manual de instrucciones es incomprensible. Si consigues aprender a conducirlo, ya no serás capaz de conducir ningún otro.
  • PHP: Es extraño y complicado de conducir, pero todo el mundo desea conducirlo.
  • Prolog: Es completamente automático. Solo tienes que decirle donde vas y el solo te lleva. Eso si, en muchas ocasiones el esfuerzo necesario para programar el punto de destino supera al esfuerzo de conducirlo tu directamente.
  • Python: El coche ideal para principiantes. Si no necesitas ir muy rápido ni circular por terrenos muy difíciles, no necesitarás otro coche en la vida.
  • Ruby: este coche se creo tras una triple colisión entre Python, Perl y SmallTalk. Un mecánico japones recogió las piezas que quedaron dispersas por el asfalto y montó con ellas un nuevo coche que muchos consideran mejor que la suma de las partes. Otros conductores no opinan lo mismo; se quejan de que muchos de los controles están duplicados, e incluso triplicados, y que algunos de estos duplicados presentan comportamientos extraños que hacen el coche mas difícil de conducir de lo que debiera. Se rumorea que va a ser rediseñado.
  • SmallTalk: Este coche se diseñó originariamente para que los conductores noveles hicieran sus primeras prácticas, pero estaba tan bien diseñado que incluso los conductores experimentados disfrutaban con él. No es muy rápido, pero si alguna de sus piezas no se ajusta a tus necesidades, puedes cambiarla tranquilamente por otra. Un inconveniente es que tu realmente no conduces; te limitas a enviar mensajes diciendo donde quieres ir y algunas veces lo hace pero otras te responde que no ha entendido tu petición.
  • Visual Basic: El coche te conduce a ti.