.NET

Extensiones de Visual Studio para funcionalidad agregada

Visual Studio 2010 Logo

A pesar de estar utilizando Visual Studio 2010 por ya casi un año, fue hasta apenas este fin de semana pasado que descubrí el sistema de Extensiones de Visual Studio 2010.

El “Extension Manager” es la manera en que Microsoft permite extender y mejorar Visual Studio, a través de plugins, add-ins, macros, templates y más (a las que ahora se refieren solamente como “extensiones“), pero de una manera centralizada y estandarizada.

Visual Studio Extension Manager Tool Menu

Antes, si alguien aprovechaba algún plugin para Visual Studio, era porque se lo había topado en alguna página, blog, revista o recomendado por alguien más, y ya no es así. Microsoft creó la Visual Studio Gallery, que es un repositorio centralizado de Extensiones de Visual Studio, y que podemos navegar tanto con un browser, como directamente dentro del Extension Manager de Visual Studio. El Extension Manager se ve así:

Visual Studio 2010 Extension Manager

La interfaz visual es muy buena, y la funcionalidad es todavía mejor. Desde la ventana única del Extension Manager podemos instalar nuevas extensiones, visualizar todas las extensiones que tenemos instaladas, filtrarlas por categoría (Controles, Templates, Tools), deshabilitar o desinstalar extensiones individualmente, y hasta actualizar las extensiones. Eso significa ahorrarse el trabajo de ir a la página web de cada desarrollador de las extensiones que tengamos instaladas, bajar un ejecutable para actualizar la extensión, etc.

El Extension Manager de Visual Studio 2010 aprovecha que Microsoft diseñó Visual Studio e integró MEF (Managed Extensibility Framework), que es un framework público (y Open Source) ofrecido por Microsoft para que los desarrolladores de software puedan diseñar sus aplicaciones considerando puntos de extensión, pero eso es otro post.

El hecho de haber descubierto esta funcionalidad de Visual Studio, hizo que me pasara unas 2 horas buscando extensiones útiles, las cuales iré recomendado y describiendo en posts futuros, pero la primera que les dejo es una que provee una de las funcionalidades que más utilizo de ReSharper: Ctrl + Click para ir a la definición de un Type. La extensión se llama “Go To Definition“, y fue creada por Noah Richards.

Espero les sirva y aprovechen esta excelente funcionalidad e de Visual Studio.

Opiniones sobre contratacion de Desarrolladores de Software en Mexico

Developer in whiteboard

Disclaimer: Esta es mi opinión personal y no refleja de ninguna manera la opinión o ideas de la empresa para la cual trabajo. Los casos, opiniones o consejos aquí descritos no se basan en mi experiencia en una sola empresa, sino a lo largo de mi carrera.

Los últimos 3 blog posts que leí trataron sobre las opiniones de 3 desarrolladores sobre el proceso de contratación de desarrolladores de software, y especialmente sobre sus aptitudes y actitud. Good to know I’m not alone.

Mi opinión y experiencia personal sobre todo esto es:

En casi cualquier país y tipos de empleo, hay demasiada gente que se termina sintiendo cómoda en su trabajo actual y dejan de aprender. Cuando tengan que buscar otro trabajo, puede que su experiencia les sirva, pero el no haber continuado aprendiendo cosas nuevas sobre su profesión les va a hacer más complicado competir contra gente nueva. Nunca dejes de leer y aprender sobre tu trabajo.

En México, en mi experiencia en personal, mucha gente va a una entrevista sin prepararse, solamente “a ver que sale”. Cuando alguien te pregunta sobre tu experiencia previa y no puedes dar un resumen conciso, eso dice mucho. Siempre hay que estar preparado para hablar sobre tu trabajo y tu experiencia laboral.

A pesar de que me ha tocado trabajar con mucha gente buena, he notado que la mayoría de los desarrolladores en las empresas en las que he trabajado, difícilmente hacen algo relacionado con su profesión en su tiempo libre. Estoy de acuerdo sobre los límites de la vida personal y el trabajo, pero creo que el 100% de la gente que es excelente en su trabajo (sea cual sea el puesto o nivel) es porque les gusta lo que hacen y no se limitan a aprender solamente en sus 8 horas de trabajo. Un programador que llega a su casa, y en cualquier momento, dedica 1 hora de su tiempo libre a aprender algo nuevo sobre programación (Sea leer un blog post, un libro, una certificación) tiene demasiada ventaja sobre cualquier otro desarrollador (del mismo skill-set), tanto para habilidad, como para promociones de puesto, aumentos, etc.

La actitud es importante, de ambas partes. Lo peor que puede pasar en una entrevista es que el entrevistador no sea consciente de la importancia del proceso. La empresa está confiando en él para que haga una recomendación sobre si emplear o no al entrevistado, y eso es crítico para ambos lados. La empresa se hace mejor cada vez que un buen candidato entra a la empresa. Y el entrevistado puede realmente merecer y necesitar el trabajo. Pocas cosas me desagradan como que un entrevistador no le de la importancia debida al proceso o sea arrogante al respecto. Por el otro lado, la actitud del entrevistado jamás debe ser de arrogancia. Nadie quiere contratar a alguien que no va a ser un buen team-player.

Algunas veces, muy pocas, he puesto a candidatos a escribir en una hoja de papel o un pizarrón una hoja de papel, un problema exageradamente sencillo de programación. No importa que tan nervioso estés durante la entrevista, si acaso lo estás, pero programar una función sencilla debería ser parte de la habilidad de cualquier desarrollador. No recuerdo alguien que lo haya contestado decentemente, o siquiera lo haya contestado bien.

A cualquier desarrollador que lea esto:

Evalúate. Si eres el weakest-link en tu equipo o empresa, haz algo por mejorar. Lee y/o solicita ayuda a los demás desarrolladores de tu equipo, consigue un mentor. Si no eres el weakest-link, aún así es seguro que hay alguien en tu equipo o empresa de quien puedes aprender. Hazlo, y además, hazte mentor de alguien que sepa menos que tú.

Ahora…algunas acciones que personalmente creo que mejorarían demasiado la calidad de desarrolladores y haría más fácil el proceso de entrevistar:

  1. Las escuelas deberían contratar expertos en el campo de sus diversas ofertas de carreras profesionales, y siempre actualizar y alinear los materiales de enseñanza en la carrera profesional con los temas y conocimientos requeridos en las empresas.
  2. Cada empresa debería de dar algo de retroalimentación a todos sus candidatos. A pesar de que puede consumir tiempo, por algún lado se tiene que empezar.
  3. Ejercicios y preguntas de desarrollo (coding) deberían ser parte de cualquier entrevista técnica.
  4. Las escuelas, en los últimos semestres antes de que el estudiante se gradúe, deberían proveer talleres para preparar a los estudiantes para entrevistas laborales, y como parte de esos talleres, deberían invitar a personal de las empresas del campo.

Les dejo las frases que se me hacen más notables de los 3 artículos…

  • “…But I have always felt that it was my duty as a professional to also learn things outside of my job. I want to know if a candidate is willing to invest in themselves before I invest three months to train them.”
  • “Hiring the right people is hard. Searching for the right job is hard. Having the right attitude and expectations can make it easier, but nothing can make it easy”
  • “So, if you want to have a career in programming I suggest you spend less time worrying about the fairness of the market or getting what you deserve and more time learning your craft.  Even better, learn what you really want and go after it no matter what
  • “But it never changed what I was going to do or how I was going to do it.  I’ve been programming professionally for over 16 years and I don’t believe I’ll ever stop.  I’ve been learning how to be a better programmer for over 16 years and I hope I’ll never stop.  Every year I find new challenges and ways to grow my skills – most of them outside of work“.
  • “I don’t do this to get a better job and I don’t believe I deserve anything for all of my work.  I’ve done it for me and that is enough.
  • “Sadly developers of low quality are far more common than the ones of decent or high quality.”
  • “Even more sad is the fact that developers having a (very) limited skill set are most often not aware of this fact and consider themselves to be “seniors”.” *shrugs* *sighs*
  • “Am I expecting too much? I don’t think so. Developers have I high responsibility. They produce software to automate business or mission critical processes. One should expect this software to be of high quality. To write high quality software we need good developers!”
  • “I understand that most people are capable of learning anything given the opportunity, but padding their skills makes them look dishonest.”


Ligas a los posts:

Ranting about the quality of developers – Gabriel Schenker

Thoughts on Hiring Developers – Ray Houston

To Thine Own Self Be True – That Other Guy

Links del dia #1

Ya que de perdido paso 2 horas al día leyendo artículos técnicos sobre desarrollo de software o cosas relacionadas a sistemas, y durante los últimos 5 años la mayoría de lo que he aprendido ha sido en base a blog posts, he decido empezar una serie de posts recomendado uno o más artículo/posts que haya leído durante ese día, categorizados por tecnología o área.

No se si logre hacer esto diariamente, pero al menos el intento se hará. Aquí estan los primeros artículos interesantes que he leído el día de hoy:

SQL

Introduction to JOINS – Basic of JOINS: Escrito por Pinal Dave, un experto de SQL. Mucha gente no sabe explicar los JOINS en SQL o la diferencia exacta entre ellos, buen artículo.

Personal Improvement

Basic Presentation Skills Training – Notes from Joel Abrahamsson: Parte de mi rol de trabajo es dar algunas presentaciones técnicas, y la verdad es que la mayoría de la gente no somos buenos para esto. Buenas notas y tips de este desarrollador que está tomando un curso al respecto.

.NET / C# / ASP.NET

ALT.Next – ALT.NET es un “movimiento” o “corriente” integrado por varios desarrolladores enfocados en traer las mejores prácticas y herramientas de otras comunidades de desarrollo (Java, Ruby, Python, etc) a la comunidad de Microsoft y .NET en general. Aunque su auge más fuerte ya pasó, este artículo da una idea de hacia donde van.

Desarrollo de Sistemas en General

Metodologies at a GlanceJ.D. Meier, un Principal Program Manager de Microsoft, en el equipo de Patterns & Practices, escribe posts muy útiles constantemente. Este post es un mapa de algunas actividades/artefactos clave en varios procesos de desarrollo de software.

That’s it. Read on.

MIX10 – excelentes conferencias y recursos de desarrollo

MIX10

Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia MIX10, que es una serie de conferencias de diseño y desarrollo web organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses anteriores al evento).

Las platicas de este año se ve que estuvieron muy interesantes…así que aquí les dejo las ligas a los videos de las pláticas y también a una muy buena sección de recursos que armaron en el site de MIX10, con ligas a guías de desarrollo para Windows 7 Phone Series, Silverlight 4, WCF RIA y otros tantos temas que son lo relevante de hoy en día.

Algunas de las pláticas fueron:

  • Overview of the Windows Phone 7 Series Application Platform
  • 10 Ways to Attack a Design Problem and Come Out Winning
  • Stepping Outside the Browser with Microsoft Silverlight 4
  • Total Experience Design
  • Understanding the Model-View-ViewModel Pattern
  • Beyond File | New Company: From Cheesy Sample to Social Platform
  • The Microsoft Silverlight Analytics Framework

Ligas:

MIX10 – The Next Web Now

MIX10 – Resources Page (Windows 7 Phone Series, Silverlight 4, etc)

1 2 3 4 8  Scroll to top