Asesoramiento para programador en solitario cuyo equipo se expandirá en un futuro próximo [cerrado]

25

Durante 4 años, he sido el desarrollador en solitario de una pequeña empresa. Tenemos un puñado de productos bien establecidos en una industria de nicho. Contrataremos a 1-2 desarrolladores pronto, y eso probablemente cambiará la forma en que funcionan las cosas por aquí.

Si bien no tendré un título "real", estaré "a cargo" de este equipo. Lo que quiero hacer es establecer un departamento de programación muy organizado y productivo para mi empresa. Obtuve este trabajo en solitario justo al salir de la universidad, así que si bien me convertí en un experto programador en esta industria, me falta mucha experiencia en programación en equipo. Siento que comenzar con el pie derecho será la clave.

En este momento somos solo yo, algunas computadoras y un servidor SVN. Estoy buscando alguna orientación general sobre cómo construir un equipo desde cero.

bufferz
fuente
Por lo tanto, una cosa que falta en las buenas respuestas es: instrucciones sobre cómo los nuevos desarrolladores configurarán su nuevo entorno de desarrollo. Por ejemplo, obtenga este SDK, instale ese IDE, instale FooTest, configure el cliente YourSQL, obtenga estos scripts de compilación y colóquelos aquí, configure NPM o pip o Maven, o Webpack o lo que sea ... Debería crear un primer borrador, luego deje su primer contratar probarlo y editarlo.
user949300

Respuestas:

14

Ordena tu casa y asegúrate de que todo esté configurado para un esfuerzo de colaboración.

  • Control de versiones : mencionó que ya tiene un servidor SVN, lo cual es excelente. Asegúrese de haber establecido el repositorio y organizado los proyectos de manera estandarizada.
  • Construcciones automatizadas
  • Software de seguimiento de problemas / errores
  • Pruebas de unidad / integración
  • Servidor de integración continua

Tener los siguientes elementos configurados e integrados en su proceso de desarrollo hace que sea mucho más fácil reunir a las personas, realizar un seguimiento de lo que se está haciendo y evitar que las cosas se vuelvan "desordenadas".

Mads Hansen
fuente
Si bien todas las respuestas a esta pregunta son geniales, esta es la más cercana a lo que estoy buscando. Gracias Mads
bufferz
Tengo uno que sugeriría agregar: Revisión de código. Ayudará a nuevas personas a aprender el sistema, le ayudará a comprender las nuevas contribuciones y puede hacer que todos sean mejores programadores. Configure el sistema con la herramienta adecuada y la mentalidad de que no es adversario sino una herramienta para el aprendizaje, la mejora y la aclaración.
BrianH
También una wiki. Y acostumbrarse a bucles de retroalimentación muy cortos. Los compromisos sucederán cada cinco minutos, obtendrás conflictos de fusión. Deberá coordinar refactorizaciones más grandes. Y no tenga miedo de dejarse llevar cuando otros aumenten la velocidad, pero tenga revisiones y programación de pares ddo para evitar divergencias. Ah, y establecer objetivos claros.
Alexander Torstling el
Cuando lo pienso, creo que es mejor tener a alguien más experimentado mostrándole el camino. La codificación en solitario y la codificación en equipo son muy diferentes, y los métodos que funcionan pueden ser muy intuitivos para un solioista.
Alexander Torstling el
11

contratar a alguien mucho más competente que tú

... y con experiencia en grandes proyectos de software empresarial.

Le ayudarán a industrializar sus procesos y probablemente aprenderá mucho de ellos.

Les enseñarás tu nicho de mercado.

Si no puede encontrar a esa persona, le sugiero que asista a capacitaciones relacionadas con la gestión de equipos. Te sugiero una certificación Scrum como titular.

Comunidad
fuente
6

Puede ser obvio, pero asegúrese de pensar que realmente le gustará trabajar con los nuevos empleados. Intenta organizar un par de cervezas cuando ambos comiencen a intentar que el equipo se sienta como uno.

También deberá informarles sobre los estándares de codificación que siga y las técnicas comunes que utilice, comunes como se repite en su base de código.

Eventualmente, todos deberían poder retroalimentar el proceso y mejorar ... suponiendo que sigan otros consejos y contraten a alguien con las habilidades para complementar los suyos.

Kevin D
fuente
4

Al carecer de un título real, estaré "a cargo" de este equipo.

No cometa el error de dejar que su deseo / ambición de estar "a cargo" se interponga en el camino. Si su empresa contrata desarrolladores con más experiencia que usted, las nuevas contrataciones pueden ser mucho más adecuadas para el rol de líder de equipo que usted.

Su valor real para el equipo y la empresa es su conocimiento íntimo de los productos implementados actualmente.

Stephen C
fuente
4

Esto es muy similar a la situación en la que estaba hace unos meses. El mejor consejo que puedo dar es abandonar la típica arrogancia de ser un programador y contratar lo mejor de lo mejor que su empresa puede pagar.

Estuve "a cargo" por un tiempo, pero un miembro del equipo con más experiencia dio un paso al frente y con mucho gusto renuncié a mis deberes administrativos para poder hacer lo que soy mejor, escribir código de calidad. Todavía soy un mentor para el equipo como tú lo serás.

Si hace lo mejor para la empresa en esta situación, será recompensado.

Scott
fuente
4

Habrá acaloradas discusiones técnicas: los nuevos programadores tienen un sesgo, han experimentado algunas formas de hacer las cosas y cuando se enfrentan a una nueva forma que no entienden, primero pensarán que no tiene sentido y que hay que cambiar . Es probable que los programadores que han trabajado solos durante años se pongan a la defensiva sobre su trabajo, y también su trabajo será algo idiosincrásico, debido a la cantidad de problemas que han resuelto sin discutir las cosas con otras personas.

Tenga en cuenta esos prejuicios, agradezca las nuevas aportaciones, no se ponga demasiado a la defensiva y tampoco tome decisiones precipitadas para cambiar todo.

Hay muchos aspectos positivos para trabajar en equipo, especialmente para que un colega revise su código. Insista en eso para todos los miembros del equipo, incluido usted mismo desde el principio.

RemcoGerlich
fuente
2

Como desarrollador senior, necesitará un sombrero de gerente y comenzar a mirar las políticas de recursos humanos de su empresa. (especialmente artículos como el derecho a vacaciones, los procedimientos de licencia por enfermedad y el proceso disciplinario, aunque espero que nunca lo necesite)

Ahora, dependiendo de las nuevas habilidades y habilidades de contratación, comience a delegar algunos aspectos de su trabajo actual, necesitará tiempo para administrar las prioridades y la programación.

Una buena fuente de habilidades de gestión simples y básicas sobre qué hacer y cómo de manera profesional es http://www.manager-tools.com . Hacen podcasts regulares sobre gestión y asesoramiento profesional, por no mencionar un catálogo considerable de material para usted.

GruñónMono
fuente
1

Muchos de los consejos proporcionados son excelentes, solo agregaría algunos de mi experiencia en una posición similar.

  1. Participe en las decisiones de contratación y no tenga miedo de vetar a los candidatos que no lo sean. Deberá trabajar estrechamente con el equipo y ellos lo representarán ante sus clientes y ante la gerencia.
  2. Establezca una cultura de honestidad con los miembros de su equipo y espere honestidad de ellos, especialmente cuando las situaciones son difíciles.
  3. Aprenda a delegar y luego a centrarse en las soluciones y no en el proceso.
Eric Kigathi
fuente
0

El libro Brownfield Application Development en .Net tiene algunas ideas que creo que deberían ayudar. Parte del consejo es cómo configurar las cosas para que sean repetibles entre los miembros del equipo y a lo largo del tiempo.

Tangurena
fuente