Cerrando filas.

12
Ene/10
5

Como ya sabréis mi vida en el último año a dado un giro radical. De pasar de escuchar a ser escuchado, de subsistir a crear.

Han sido unos meses duros, con algún que otro batacazo y alguna que otra decepción, pero también han sido buenos meses, donde he aprendido, compartido y sobretodo evolucionado. Donde me he forzado (y me esfuerzo) en mejorar mis puntos flojos; la organización, el avanzar y no estancarse y sobretodo mantener el horario cuando no había ningún motivo para salir de la cama1.

Y todo esto parece que empieza a dar sus frutos, he pasado de asalariado a “asalariar, de “malescribir” en este, mi tercer blog2, a estar invitado a escribir para Loogic3 y para 120% Linux 4 y de visitar de vez en cuando Iniciador Madrid a organizar Iniciador Toledo, la verdad es que es de agradecer ver como el esfuerzo si tiene recompensa.

Claro, no me puedo olvidar de mi querida eventosfera, ese gran proyecto al que he sido invitado a colaborar como socio, supongo que cumpliendo las labores de CTO del mismo. Pasará tiempo hasta que se me olvide la genial sensación que me dejo cierta llamada telefónica con Ana, la socia fundadora y alma máter del proyecto, junto con Javier, la tercera porción del quesito.

A esto además tengo que sumar unos cuantos proyectos grandecitos para diferentes clientes que hacen que sin cumplir el primer mes del año, tengamos cubiertas las expectativas de, al menos, la mitad de este.

Pero llega el momento de tomar una decisión, por un lado, en breve reabriré la empresa5 y esto llevará un tiempo extra, por el otro, recientemente tuve que coger a un junior para trabajar conmigo y poder doblar trabajos y ahora que volvemos a estar al 90% de capacidades llega la duda, “desdoblar” de nuevo y coger a otro empleado que pueda acaparar los nuevos proyectos que llaman a la puerta o cerrar filas en torno a lo que tenemos, afianzar los pilares de este gran proyecto y avanzar con más calma…

Así que así estamos, y creo que la solución en este caso está clara, si el objetivo es vender calidad podemos decir con tranquilidad que ha llegado el momento en el que ampliar capital está por debajo de afianzar las bases y crear calidad. Por lo que hasta nueva orden, nos recluiremos, trabajaremos como locos, crearemos una marca sobre la que estar orgullosos de participar y disfrutaremos como enanos haciendo lo que más nos gusta. Crear proyectos webs avanzados.

[Actualización]: Ayer, el gran Alex Barrera (aka @abarrera) me echó la ‘bronca‘ por no mencionar otro de los tantos ‘fregaos‘ en los que ando metido, esta vez como ‘colaborador tecnológico6‘ en TetuanValley un proyecto que recomiendo a todo aquel que empiece a emprender y que tenga ganas de lanzar su Startup al mercado.Para la primera promoción del Tetuan Valley Startup School mi participación fue meramente de oyente y poco más, pero para las siguiente, espero poder participar mucho más y ayudar en lo que pueda a las ‘nuevas generaciones‘… Así que ya sabéis, estar atentos a la siguente promoción del Tetuan Valley Startup School

  1. No diré que ha sido fácil, ni difícil. Simplemente así ha sido.
  2. Los otros dos fueron:  http://g05l21.bitacoras.com/ y http://g05l21.net/
  3. El enlace al artículo: http://loogic.com/cerdo-o-gallina-el-puesto-de-consultor-tecnologico/
  4. El artículo saldrá en breve, mientras: http://120linux.com/
  5. Esta vez sin socios “no-capitalistas”
  6. Por decirlo de alguna manera

Lo que se pide, lo que se paga, lo que se obtiene (segunda parte)

12
Nov/09
3

Bueno, no tenía intención de escribir más sobre el asunto, con el anterior post ya me explayé bastante, pero una larga conversación con un empresario y amigo y otra “twit-conversación” a raíz de una oferta de empleo (menos en el blog, en cualquier lado) me hacen volver al tema a intentar clarificar una vez más mi punto de vista.

Por lo que veo, en la mayoría de los casos, el empresario se escusa bajo el paraguas de “yo lo que busco es gente de calidad, hay casos de Seniors sin calidad y Juniors con mucha” y esto sigue siendo el mismo error de siempre. Señores, a ver si queda un poco más claro, por mucha calidad que pueda tener un Junior Developer, nunca puedes ponerlo a llevar un proyecto o a realizar desarrollos de Análisis funcional porque no le habéis contratado para eso, porque no tiene experiencia y porque igual sale bien, pero con mayor seguridad saldrá mal!

Traspasemos esto a un colegio, en el cual de 100 alumnos por curso hay uno que es superdotado. Después de mucho discutir con la familia se le decide, debido a su nivel, pasarle un curso por encima de los de su clase, el niño puede que sufra estrés por el cambio y el nuevo nivel pero lo podrá hasta controlar. Pero, que pasaría si le subiese de 1º a 5º?? Creéis alguno que realmente podría hacer bien el curso?? Ojo! Que no digo que no aprobase alguna, ni que dejase de ser aplicado, simplemente que el nivel que se le exigiría sería muy superior a sus conocimientos y lo único que obtendría serían lagunas de conocimientos.

Pues aquí es igual, un Junior es una persona sin conocimientos o con conocimientos básicos sobre la materia, si intentáis que haga el trabajo de una persona con cierto bagaje profesional, pues puede que os salga bien el proyecto, puede que si el proyecto no tiene una gran envergadura o calado social hasta no veáis nunca problemas o puede que realmente ese Junior sea del pequeño tanto por ciento de superdotados1 capaces de llegar a 5º sin problemas y os haga el trabajo de forma correcta. Pero la probabilidad de fiasco al intentarlo no será poca, ya os advierto. Y vendrán los problemas por trabajos mal hechos, trabajos en los que la escalabilidad y el análisis sean malos, etc. Y empezaréis a cortar cabezas y la primera será la del pobre Junior que contratasteis para hacer la labor de Senior Analyst.

Solución: Bueno las soluciones son varias y dependen casi siempre del mismo asunto, el dinero, pero todas acaban siempre en lo mismo, evitar que vuestros empleados realicen labores dos o más niveles por encima de por lo que los habéis contratado, crear para cada rama de la empresa una estructura lo más completa posible (ya sea externalizando o inhouse) y molestaros siempre de formar a los empleados dentro de la empresa.

Tener siempre en cuenta que para una empresa, lo más importante por mucho que la gente no quiera verlo, no son los clientes o los ingresos, son los empleados!

Y por último, un borrador de como pondría yo una propuesta para Junior2.

Programador Web Junior

Fecha de la oferta: 12-11-2009
Nombre de la empresa: Mas quisiera tener nombre SL

Ubicación

Población: En mi casita todo el día.
Provincia: Madrid
País: España

Descripción

Puesto vacante: Programador Web Junior
Categorías:
Informática y telecomunicaciones – Administración de bases de datos
Nivel: Junior (no se si existe, sino especialista)
Personal a cargo: Ninguna!?
Número de vacantes: 1
Descripción de la oferta: Sino habéis explicado que es vuestra empresa antes, hacerlo aquí, pero brevemente. Tener en cuenta que la oferta no es solo en un sentido, sino que vosotros también tenéis que ofertaros bien y sobretodo siendo sinceros!

Buscamos gente joven para puesto vacante de Programador Web Junior, no se requieren conocimientos previos de programación (aunque serán valorados) sino ganas de aprender y avanzar en un sector con bastante share de mercado, nosotros te damos los medios y la formación, tu nos traes tu personalidad.

Queremos gente abierta, con ganas de trabajar y emprender, con ideas propias y capacidad para discutirlas, si te consideras una persona proactiva estaremos encantados de hablar contigo.

Que ofrecemos, un espacio de trabajo abierto y flexible donde poder aprender y trabajar sin problemas. Mucha formación y muchas posibilidades reales de promoción interna. Hoy tu eres el que aprende, mañana igual seas el que enseñe.

Requisitos

Estudios mínimos: Indiferente – aunque personalmente me gustaría decir “gente cursando últimos años de carrera” ya que son los que más ganas de comerse el mundo tienen.
Experiencia mínima: Si tienes más de 2 años de experiencia posiblemente esta oferta no sea para ti
Requisitos mínimos:
  • Conocimientos de informática
  • Sentirte cómodo y suelto delante de un ordenador
  • Gusto por la programación (estos tres, aunque parezca mentira, echaría para atrás a mucha gente)
  • Ganas de trabajar y aprender.
  • buen nivel de ingles (por desgracia y aunque mis conocimientos sean casi nulos, creo que es más que necesario cierto nivel de ingles para todo en esta vida)
Requisitos deseados:
  • Conocimientos de programación
  • Conocimientos del sector
  • Conocimientos amplios de internet

Contrato

Tipo de contrato: Indefinido con Xmeses de prueba (algo que no se suele decir, pero que también creo que es importante)
Jornada laboral: Flexible (puedes querer intensiva, flexible para compaginar con estudios o como quieras… Creo que el tener horario fijo más que ayudar entorpece en estos casos)
Horario: Si dejasen pondría aquello de “abrimos a las 7 cerramos a las 19:30 dentro de esa franja cuando quieras”

Salario

Salario: 15.000 € – 20.000 € Bruto/año  (El salario debería ser estándar, pero ponerlo siempre, el no ponerlo no sirve para nada)
  1. Pongamos que el 10% de los superdotados son capaces, luego sería el 0,1% de la clase, es decir 1 persona por cada diez cursos
  2. Si el modelo está sacado de una de esas empresas de empleo online tan conocidas por todos

Cuando las cosas se hacen bien, salen bien.

23
Jun/09
0

Bueno, como hablar de algo sin demostrarlo, es como no hablar de nada, vamos a centrarnos un poco en enseñar como entendemos y programamos un proyecto web desde la nuezAzul. Principalmente porque esta es mi área.

También es cierto que toco un poco algunas de las demás partes de un proyecto; maquetación, accesibilidad y usabilidad (de esto poquito), SEO y SEM, branding online,…. Pero de estas prefiero ir dejando pequeños apuntes técnicos sueltos y centrarme en lo que realmente es mi fuerte, la Programación Web Avanzada. Y si, se puede decir esto y sumarle PHP sin restar el más mínimo poder a la frase.

Y para ello, lo primero es desmitificar a los que piensan que PHP es inseguro y poco profesional; el inseguro y poco profesional es el programador, no el lengjuaje.

El primer problema que encontramos con PHP es su mayor virtud. La anarquía del lenguaje. Este lenguaje se creó principalmente con una máxima; la mayor libertad posible. No es necesario definir variables, no tiene una estructura de programación definida, puede mezclarse dentro de código html o html dentro de código php…

Esto ha hecho que desde un principio, PHP fuese muy suculento para todo el mundo. Tanto programadores profesionales, como amateurs e incluso completos “novatos” de la programación pueden hacer en PHP sus pinitos y programar cualquier cosa.

Claro, esto ha dado muchas lineas de código a PHP, de las cuales la mayoría se podría decir que son basura “no reutilizable” y sobretodo muy inseguras y difíciles de auditar/ampliar. Pero claro, no todo es culpa del código, no se le puede pedir a un newbie que entienda de “Sql Injection” o de calidad de código.

Y como se podría solucionar este problema? Bueno, lo primero aquí es saber que se quiere y distinguir los casos.

  • Si eres un newbie, que solo quiere hacer sus pinitos, adelante, este es tu lenguaje y esto es todo lo que deberías leer de este blog.
  • Si realmente quieres realizar código de calidad y reutilizable, empieza por lo básico. Se lo más estricto posible, estructura el código, declara las varibles al principio de cada método, usa patrones de programación y nunca olvides la flexibilidad de PHP, pero no supedites la calidad a la flexibilidad, hazlo al revés, supedita la flexibilidad a  la calidad

El segundo problema es la rápida evolución del lenguaje frente a la lenta o inexistente evolución del programador. Tanto PHP como Apache y las bases de datos han tenido una evolución estos últimos años bastante fuerte, pasando de, por ejemplo, la programación funcional hasta la implementación de la OOP por parte de PHP, el famoso mod_rewriter de Apache o la potencia de las bases de datos relacionales. Todo esto implica un continuo esfuerzo por parte del programador para estar al día con todo lo que le rodea. Cosa que muchas veces no pasa, encontrandonos con que, por ejemplo, PHP4 no llega a desaparecer ya que implicaría restructurar mucho código o que no existan todavía casi ninguna aplicación que sea 100% OOP sino hibridos entre funcional y OOP.

Solucionar este problema es algo más complicado, cada día vemos actualizaciones de PHP, nuevas funcionalidades y otras decrépitas. Estar al día en esto podría ser algo fácil, pero si además hay que sumar el estar al día en las aplicaciones que usas, en Apache, en la base de datos con la que trabajas, revisando tu código para actualizarlo, … La cosa se complica un poco. Lo malo, esta es la única forma de solucionar el problema, es decir, si quieres realmente hacer buen código cada día, debes emplear cada día en formarte un poco más, y para esto no hay ayudas externas. Cada uno debe tener intención de leer y aprender cada día, sino, en poco más de un año, tu también estarás “decrepit“.

Otro de los defectos es la falta de estructura a la hora de programar, la falta de profesionalidad y de “seguridad de código” en lo que uno hace.  Conozco muchos casos en los que un programador, que entiende y usa la OOP, deja esto de lado porque un “proyecto es pequeño” o porque “no es necesario“. Creando archivos faraónicos, sin estructura alguna en la programación, sin revisar los posibles bugs de la aplicación, … Esto siempre es un error, pero es más error cuando esto pasa de ser para “proyectos pequeños” (Aunque nunca llegue a entender que es eso de proyectos pequeños) y se utiliza en todos los proyectos que uno hace.

El mayor problema que esto acarrea es la imposibilidad del posterior mantenimiento del site, los problemas y el tiempo perdido a la hora de implementar nuevas funcionalidades, o simples cambios en el diseño. Como siempre, el mayor problema aquí es la desfatachez del programador al pensar en el hoy y no el mañana. El mañana serán problemas para el cliente, no para el programador.

Y por último, otro de los grandes errores con PHP, es la suma de todo lo anterior, es encontrarnos proyectos “cajón de sastre” en los cuales, los programadores con buenas ideas y sin tiempo para pensarlas bien, crean proyectos, donde se mezcla funcional con OOP, viendo funciones sueltas entre clases, donde no hay una estructura definida correctamente, donde no se tratan los objetos por paquetes como cualquier otro lenguaje de programación orientado a objetos. Donde se ven funciones obsoletas o donde se ven mezclados, entre grandes ideas, código y html. Dando así grandes “cajones de sastre” de los que no se puede reutilizar gran cosa…

Como se podría solucionar? Lo primero es obviar la programación para todas las versiones y centrarse en PHP5 o superior. Versión a partir de la cual se puede hablar realmente de OOP. Y después de esto, aprender de los demás lenguajes de programación, aprender realmente lo que es el paradigma MVC (o cualquier otro que sea válido) y ponerlo en práctica, no pensar que existe un proyecto pequeño, todos son igual de importantes, pues son tu carta de presentación, usar PHP igual que usarías Java o C++ y sobretodo

TENER RESPETO, MUCHO RESPETO, TANTO A TU TRABAJO, COMO A QUIEN PAGA POR ÉL.

Positions by Seo-Watcher