Ir al contenido principal

¿Qué es un Programador Senior?

Junior-Developer-vs-Senior-Developer-e1408641226868Hace tiempo en una reunión con uno de nuestros clientes se hablaba de la posibilidad de asignar algunos programadores senior al proyecto que se estaba discutiendo. Una de las personas en la junta preguntó: “¿Cuáles son los criterios que usan para saber si un programador es senior?” La pregunta me puso a pensar en que realmente no tenemos una definición formal para clasificar a un programador como Senior; pero si podemos reconocerlo cuando lo vemos. Lo reconocemos por sus características.  

Es autónomo y sabe trabajar en equipo. Con autónomo me refiero a que no necesita que alguien le esté ayudando constantemente para poder realizar su trabajo. Ya sea porque no tiene la experiencia o conocimiento en programación o porque no conoce el dominio del problema. Puede que la persona sea buena programando pero nunca ha trabajado en una industria en particular y por lo tanto quizás con frecuencia requiera ayuda para temas relacionados con la industria. En ese caso se le puede considerar JR al programador aunque tenga ya experiencia programando, por lo menos al principio mientras puede trabajar sin ayuda constante. También es necesario que sepa trabajar como parte de un equipo, para ello es necesario haber trabajado en otros equipos y así saber cómo aprovecharlo. Se sabe coordinar con sus compañeros de equipo.

Entiende como ayuda al negocio. Está es una característica que se sale un poco del aspecto técnico y a la vez está relacionado con el punto anterior. Un programador senior entiende que para la mayoría de los clientes la meta no es el software en sí. El software es una herramienta que ayudará al negocio a realizar mejor su trabajo. En este aspecto el programador junior solo se preocupa por que el software funcione. El programador senior aporta a la solución, no solo ejecuta.

Sabe medir el riesgo. Al ser independiente y entender como ayuda al negocio es capaz de tomar decisiones sobre el desarrollo de software tomando en cuenta el impacto que tendrán en costo y tiempo de entrega del proyecto. No se deja llevar por "el factor cool" o por ser lo nuevo. Sino que considera cual es la mejor opción para el proyecto.

Puede guiar a los demás. El programador senior puede enseñar a nuevos programadores, puede explicarles las necesidades del negocio, enseñar los aspectos técnicos de la plataforma o entorno de desarrollo y aportar ideas para establecer las reglas al momento de trabajar en equipo. Puede ser un mentor y guiar a programadores JR en su camino a convertirse en mejores programadores.

No hay umbral fijo para saber cuándo un programador es JR, Mid o Senior. Estos son aspectos que dependen de persona a persona.

Me gustaría conocer otras características u otras formas de definir a un programador Senior, envíame tus ideas a blog@developeando.com

Comentarios

Entradas más populares de este blog

Bloqueos

Una de las preguntas típicas de las juntas matutinas en los equipos de desarrollo de software es ¿Hay algún bloqueo? Si lo hay, se trata de ver qué es lo que está esperando esa persona y encontrar la forma de que se desbloquee; pero ¿Qué son los bloqueos? Los bloqueos son obstáculos que te impiden realizar o avanzar en tu trabajo. Evitan que puedas seguir progresando en el proyecto.

He notado que es común en las personas con menos experiencia decir que tienen un bloqueo cuando están batallando, debido a su poca experiencia, en la forma de resolver un problema. Han intentado varias formas y se empiezan a quedar sin ideas de como puede ser resuelto el problema o como pueden cumplir con el requerimiento especificado. Al quedarse sin opciones de qué intentar dicen que tienen un bloqueo con la tarea y que a menos que alguien les diga como resolverlo, no se puede avanzar en la tarea.

En personas con más experiencia, ese tipo de bloqueos no ocurren, una persona con experiencia ha visto pro…

Firebird 2.1 UPDATE OR INSERT

Another great feature that I like in Firebird 2.1 is the UPDATE OR INSERT statement. It's a really time saver and it makes the SQL cleaner.

For example suppose I have a products table like the one I use in my last post and an inventory table to store the product stock. Before Firebird 2.1 if I want to set the stock for a product I needed to check if a record for that product_id already exists; if the product_id already exists then I write an update. If not then I write an insert statement. So I ended up with something like this:


IF EXISTS(SELECT * FROM inventory WHERE product_id = :product_id ) THEN
UPDATE
inventory
SET
stock = :stock
WHERE
product_id = :product_id;
ELSE
INSERT INTO inventory
(product_id, stock)
VALUES
(:product_id, :stock);

In this example I only update one field but when I have to update a big table I ended up with a big chunk of code and thinking: "there should be another (better) way to do this".

Fortunately now with Firebird 2.1 there…

Database Mail en MS SQL Server 2005

Configuración de Database Mail en MS SQL Server 2005

Primero se debe de habilitar, ya que por omisión el componente esta deshabilitado, Utilizando el SSMS (SQL Server Management Studio)


Si no esta habilitado aparecerá un mensaje preguntado si lo habilita, después aparece esta ventana donde se pregunta al usuario que es lo desea hacer.


Seleccionamos la primera opción para crear un perfil.


Configuramos el perfil y le agregamos por lo menos una cuenta.


Seleccionamos el perfil como public y default.


Para mandar correo se utiliza el procedimiento msdb.sp_send_dbmail por lo tanto el usuario que intente mandar correo debe de tener permiso para la base de datos msdb.

Referencias:
http://www.sqlservercentral.com/columnists/cBunch/introtodatabasemailinsql2005.asp