Argumentar el uso de un programa que no es el estándar de la empresa [cerrado]

Recientemente me uní a una nueva empresa, y en mi empresa anterior, he estado trabajando con mi flujo de trabajo de Vim/Tmux. Pero en una empresa nueva, dicen que debo seguir los estándares de la empresa, y uno de los estándares de la empresa es usar Sublime Text Editor con algunas configuraciones.

Ahora, realmente me gustaría continuar con mi flujo de trabajo de Vim/Tmux, ya que soy bastante rápido. Entonces, ¿cómo debo comunicarme con ellos para resolver esto?

Nota: Vim seguramente se puede configurar como se hubiera configurado Sublime.

¿Qué les importa realmente? Presumiblemente es el formato del código. Si no rompes eso, no creo que ni siquiera sepan lo que usas.
¿No es aceptable usar la emulación Vi de Sublime?
Podría decirse que un usuario avanzado real de vim es mucho más rápido que un usuario avanzado de Sublime.
Si tiene permitido instalar complementos sublimes, aparentemente puede agregar la edición de estilo vi. sublimetext.com/docs/2/vintage.html (No es un respaldo ya que nunca lo he usado, pero es algo que encontré rápidamente a través de Google).
Hacer que todos usen las mismas herramientas, ESPECIALMENTE los editores, significa que es fácil ayudarse unos a otros inclinándose sobre el hombro de alguien o pasándose el teclado de un lado a otro. Esto puede ser muy valioso en algunas situaciones y se ve seriamente obstaculizado si un desarrollador usa un conjunto de herramientas diferente.
No estoy seguro de en qué empresa se encuentra ni la cantidad de desarrolladores, pero una de las razones para tener estándares es que Sublime Text Editor podría haber pasado por un proceso de auditoría de la empresa, haber sido aprobado y tener documentos escritos sobre su funcionalidad esperada. Mantener una actitud de "Amo a Vim" en realidad puede dañar tu carrera. Imagina esto: "Oye Rick, este archivo ya no funciona. ¿Sabes lo que pasó?" -> "No estoy seguro, pero creo que veo el problema; se guardó como UTF8 con BOM" -> "¿Quién diablos hizo eso?" -> "Probablemente el Vim del chico nuevo". continuará...
No entiendo muy bien por qué esto está en espera. En el software, hay bastantes desacuerdos sobre las herramientas, desde un tipo nuevo que quiere usar lo más nuevo y brillante hasta alguien que quiere usar "lo que saben", etc. Saber cuándo impulsar cambios en las herramientas para aumentar la productividad del desarrollador frente a cuándo retroceder es importante.
Quiet_quiet, ¿podría editar para explicar cuál es su objeción, si lo sabe? ¿Están preocupados por los resultados (quizás su herramienta se enredará con la sangría, piensan), o TI prohíbe instalar software que no está en su lista aprobada, o qué? Saber cuál es la queja ayudará a las personas a guiarlo para responder a ella.

Respuestas (9)

Una de las peores cosas que puedes hacer para una carrera a largo plazo es aferrarte tanto a alguna herramienta, idioma o entorno que no puedas cambiar. Luego descubre que su herramienta preferida no está disponible para el nuevo hardware en el próximo trabajo...

Me jubilé temprano, por lo que mi tiempo total en la industria fue de solo 32 años. Durante ese tiempo pasé de codificar en un lenguaje ensamblador ahora obsoleto en tarjetas perforadas a Java en un IDE. La vida laboral humana suele ser más larga que la vida útil de las herramientas de software.

Tal vez en este momento solo esté en "prefiero no cambiar" en lugar de "no puedo cambiar", pero cuanto más tiempo continúe con un conjunto de herramientas, más difícil será cambiar.

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
+1 por señalar que esta es una de las industrias que cambia más rápidamente en el mundo, la primera fue 'Básica' en un Commodore 64, que no se usa mucho en estos días.

Actualmente estoy en una posición algo similar. Casi todos en la empresa usan un IDE llamado eclipse, pero prefiero usar IntelliJ porque desarrollo más rápido con él. Mis consejos:

Dale una oportunidad a su herramienta

Siempre nos gusta usar primero "la herramienta que conocemos" en su caso, vim. Sin embargo, cada herramienta tiene sus ventajas y desventajas. Use su herramienta por un momento, pida ayuda para hacer cosas a las que está acostumbrado en vim. A través de esto, o aprendes "a su manera" o construyes un argumento para tu herramienta.

También aproveche esto como una oportunidad para aumentar sus habilidades en más de una herramienta. Como han mencionado otros, es importante saber más de una forma de hacer esto. Asegúrate de mantener tus habilidades frescas. E incluso si no se queda con esta herramienta, puede haber aspectos que puede incorporar a su flujo de trabajo vim.

Como historia paralela, en un equipo del que escuché pero nunca estuve, el equipo usó la herramienta X para desarrollar. Un nuevo miembro del equipo quería usar la herramienta Y, pero se le dijo: "no, ¡lo hacemos SOLO con la herramienta X!" Entonces, el compañero de equipo usó la herramienta X. Más tarde preguntó: "¿Cómo puedo diferenciar con la herramienta X?" Su respuesta: "oh, usamos la herramienta Z para eso". Su: "Si usamos la herramienta Y, solo pagamos una licencia y puede desarrollar y diferenciar. Actualmente paga 2 licencias para la herramienta X y Z". Esa es una razón comercial clara para permitir la entrada de la herramienta Y.

Usa tu herramienta de todos modos

Si ha hecho lo anterior, y aún insisten en sus herramientas, lo que en su caso veo que sucede con la curva de aprendizaje de vim, use su elección pero no lo llame. Configúrelo para que tenga un estilo de código similar al de ellos. Esto es lo que estoy haciendo. No hacer que nadie más cambie los IDE en mi equipo, pero mis compañeros de equipo saben que uso uno diferente. De vez en cuando me preguntan y soy un buen embajador del IDE. Si lo desea, puede convertirse en un embajador similar de vim.

Según un comentario sobre una respuesta diferente, si elige usar una configuración diferente a la estándar, como profesional, se toma su propio tiempo para configurarla. Lo que significa trabajar por la noche y los fines de semana si está preocupado por su configuración o si su configuración interrumpe el flujo de trabajo normal de los demás. Esto también significa hacerse cargo de arreglar las herramientas y la infraestructura por debajo de la media para permitirle trabajar; por ejemplo, permitir que una compilación se realice en la línea de comandos en lugar de en un IDE. Sea cortés y recuerde que está pidiendo un favor para no usar la configuración estándar, definitivamente no tiene derecho a ella. Si el uso de herramientas diferentes causa demasiados problemas, prepárese para tirar la toalla.

El riesgo con esto de la gerencia es que básicamente estás pidiendo perdón si realmente insisten en Sublime. Hay valor en las herramientas estandarizadas en un equipo. Dependiendo de la situación, los entornos estándar pueden significar una mejor colaboración porque un compañero de equipo puede ir a su estación y saber exactamente lo que está buscando para ayudarlo. Respete eso si la gerencia insiste.


Comentario especial sobre Sublime : Sublime requiere una licencia en un entorno empresarial, aunque he visto que se ignora. Debe asegurarse de que esa licencia esté pagada. Si no es así, sugiérales que se cambien a atom , que es un clon de Sublime hecho en GitHub que es realmente gratis como en la cerveza y también como gratis en el habla.

Me escribieron una respuesta larga sobre cómo no me gustan los argumentos sobre si la herramienta X es mejor que la herramienta Y, porque son solo argumentos sobre qué tipo de destornillador es "mejor", pero lo eliminé porque está fuera de tema, y aburrido también

Mi consejo es este: asegúrese de que sus razones para usar una herramienta contengan más que "Prefiero esta" o "La conozco mejor".

Las empresas que tienen herramientas estándar generalmente las tienen porque alguien las colocó, ya sea porque es lo correcto para usar y hace bien el trabajo, o porque esa persona lo prefiere. Si es lo primero, y puede demostrar que su herramienta no interrumpirá el proceso, es posible que pueda cambiar las cosas. Si esto último, y esa persona todavía está en una posición de toma de decisiones, estás en una discusión.

La mejor manera de evitar esto es diseñar procesos que sean independientes de las herramientas, pero eso es un caballo de un color diferente.

++ para procesos y compilaciones independientes de herramientas.

Llevo más de veinte años realizando trabajos de consultoría. Rutinariamente encuentro situaciones como la tuya porque sigo yendo a nuevos lugares.

Con el tiempo me di cuenta de que en lo que soy bueno es en usar las funciones de mis herramientas de cierta manera , de modo que el problema no es la herramienta, sino la función utilizada de cierta manera: "cómo hago esto en la herramienta X".

Por lo tanto, si una empresa no está dispuesta a dejarme descargar e instalar las herramientas que quiero, les pediré que me ayuden a adaptar sus herramientas a las características que necesito para maximizar mi productividad para ellos.

Y eso resultó ser muy beneficioso para mí: aprendo una nueva herramienta Y cómo usarla A MI manera. Eso ayuda a largo plazo como consultor: cuantas más herramientas conozco, mejor estoy, y cuantas más formas conozco de resolver el mismo problema, mejor estoy.

Por lo tanto, concéntrese en el beneficio para usted y la empresa: trabaje para que todos ganen enfocándose en lo que realmente necesita, en lugar de discutir qué herramienta es la mejor.

(Sin embargo, de vez en cuando, a medida que analizo las funciones que necesito, convertiré a un cliente para que use mi herramienta preferida cuando se dé cuenta de que es mejor, lo que sigue siendo beneficioso para todos, solo que al revés).

TL;DR

  • Aprende a usar la(s) herramienta(s) que proporcionan
  • Cuando aprenda todo lo que hay que saber, es probable que encuentre una fricción significativa, así que use su antiguo flujo de trabajo
  • Esté preparado para resaltar el flujo de trabajo "estándar" al recibir/brindar asistencia.

Observo que ninguna de estas respuestas son desde la perspectiva de un usuario avanzado de Vim*

* Defino usuario avanzado de Vim como cualquier persona que tiene problemas con varios complementos porque no se ajustan a <elija su comportamiento de vim>.

En nombre del poder (Vim/Tmux)

Vim y tmux forman una combinación increíblemente poderosa. Si aún no tiene la configuración de enlace, agregue algo como esto:

func! BindTest()
    call inputsave()
    let session = input('tmux target session:pane> ', ':1.1')
    let command = input('test command> ', 'py.test --cov')
    "let global = input('bind for all windows? ', 'y')
    call inputrestore()

    execute "nnoremap <cr> :w!<cr>:!tmux send-keys -t " . session . " \"" . command . "\" C-m<cr><cr>"
endfunc

nnoremap <leader>st :call BindTest()<cr>

Le permite presionar Enterpara ejecutar sus pruebas automatizadas en su panel dividido y, mientras se ejecutan, puede seguir editando. Obviamente, cambie los comandos para adaptarlos a sus preferencias/entorno. Uso esto como ejemplo, pero hay muchas, muchas otras cosas extremadamente poderosas que puede hacer con vi/vim/tmux que no requieren que retire las manos de la posición de escritura. Cualquier otro flujo de trabajo que he probado siempre me ha dejado con ganas de la buena línea de comandos a la antigua.

En general, si hay una herramienta que tiene disponible, como vim+tmux, debe usarla . No creo que sea posible que alguien en toda su vida aprenda y aproveche todo lo que pueda sobre vim+tmux.

Sospecho que si siente la suficiente pasión por una herramienta no estándar que desea usar, probablemente sea algo que tenga este tipo de poder.

En nombre de las normas

Por otro lado, ¿estás tan seguro de que tu herramienta es tan buena como crees? Puede que no lo sea. La única forma de saberlo con seguridad es si intentas lo otro. Hay algunas características bastante interesantes de Sublime/Atom/Brackets/ que pueden mejorar tu vida. O al menos competir con tu herramienta.

Conozca la herramienta que su empresa proporciona/requiere. Aprende a usar sus atajos/teclas rápidas, aprende sus características. ¿Es más rápido usar solo el teclado? ¿O puede operarlo más rápidamente con el mouse y el teclado? Si su impresión inicial es correcta, que su herramienta es mejor que la estándar, es probable que dentro de una semana o dos haya explorado casi todo lo que puede hacer sin una personalización extensa (por ejemplo, complementos o programando sus propias extensiones). Si no está aprendiendo continuamente nuevas funciones que pueden mejorar su velocidad, y especialmente si enfrenta fricciones en su flujo de trabajo, ahora puede volver a poner esta herramienta en el estante.

No es nada personal

La mayoría de las herramientas que están diseñadas para el consumo masivo. (<inserte la herramienta que está rechazando aquí>) está diseñado para funcionar bien para el mínimo común denominador. Estoy bastante seguro de que podría colocar a cualquiera de mis hijos frente a Sublime y podrían comenzar a escribir cosas (claro, no será muy bueno, pero los editores no son lo suficientemente buenos para resolver ese problema aún).

En un entorno corporativo, quieres eso. Debería poder sentarme en su estación de trabajo, o usted en la mía, y deberíamos tener un lenguaje común que podamos hablar. Con un editor estándar como Sublime, puede decir: "Está bien, ahora abra su barra lateral, vaya a este directorio y abra ese archivo, luego desplácese hacia abajo hasta que esté en esta función".

Hay algo de poder en tener esa similitud. No tienes que criticarme por usar emacs, y no tengo que ridiculizarte por usar "edición modal, sea lo que sea", cada vez que nos reunimos para editar código. Y si me siento en su teclado, hay muchas posibilidades de que tengamos las mismas combinaciones de teclas, incluso si es mi primer día como programador nuevo recién salido de la universidad/campamento de entrenamiento en su empresa.

Respuesta corta

Diferentes empresas, diferentes culturas, herramientas, estándares, etc. Sígalos, trate de ser rutinario con ellos O convénzalos de agregar/modificar en el estándar lo que desea. Definitivamente modificarán los estándares si eso es beneficioso para la empresa.

Respuesta larga

Pídales que configuren y le permitan usar Vim/Tmux ya que es más flexible con eso. También explíqueles los beneficios de Vim/Tmux sobre Sublime .

Si niegan Vim/Tmux , entonces comience a ser flexible con Sublime , ya que con el transcurso del tiempo también estará familiarizado y será flexible para trabajar con él.

Lleva tiempo aceptar cosas/herramientas nuevas, ya sea para la empresa o para el empleado. Es nuevo o puede que no sea flexible para usar Sublime Text Editor y Vim/Tmux es nuevo para la empresa. Entonces, para ambos (usted y la empresa), la situación es la misma y no acepta este cambio de inmediato. Espero que los convenzas de Vim/Tmux .

Edité su publicación para eliminar el uso incorrecto de la sintaxis de blockquote y, en su lugar, agregué títulos para la respuesta corta y larga. Sin embargo, su redacción es un poco confusa, por lo que se beneficiaría de una corrección de estilo.
@Lilienthal: gracias por formatear la respuesta. Me cuidaré la próxima vez :)

Eres nuevo, así que necesitas tomarte un tiempo y descubrir por qué las cosas son como son. Luego, puede determinar una estrategia sobre cómo cambiarlos o, posiblemente, no cambiarlos en absoluto. Durante el proceso de la entrevista, debe preguntar cómo se administra el grupo de programación y obtener una idea de si es o no una buena opción. Según su situación actual, existe la posibilidad de que no lo haga.

Hay algunas situaciones en las que no tiene ningún cambio de cambio: programación en pareja, uso muy restringido del equipo de la empresa, la empresa compró/creó complementos que solo funcionan en un tipo de editor de texto.

Si simplemente sienten que todos, siendo constantes, ayudan con el mantenimiento, configuran las estaciones de trabajo y brindan asistencia cuando tiene un problema, puede tomar algún tiempo demostrar que no tendrá problemas y, si los tiene, puede resolverlos rápidamente.

Ten cuidado, no quieres que te perciban como alguien difícil y poco flexible. Si una empresa puede ganar mucho dinero escribiendo código en COBOL, aquellos que se niegan a aprenderlo lo hacen bajo su propio riesgo.

Me parece extraño que la mayoría de las respuestas lo empujen a aceptar el estándar y no pregunten amablemente si puede usar una herramienta diferente (siempre que no haya problemas de licencia, etc.)

En primer lugar, asegúrese de tener todas las herramientas estándar instaladas en su estación de trabajo, de modo que si un compañero de trabajo necesita usar su estación de trabajo, pueda acceder a todas las herramientas estándar con las que está familiarizado.

Luego, diríjase a su gerente y pregúntele si está bien instalar sus propias herramientas (y asegúrese de mencionar que son de uso gratuito o que proporcionará su propia licencia y proporcionará una prueba de la licencia).

Hago esto cada vez que empiezo en un nuevo trabajo (tengo un conjunto de mis herramientas estándar que uso: Far Manager, 7-zip, todas las herramientas de SysInternals, etc.) y no hubo una sola ocasión en la que no obtuvo la aprobación. (Tengo licencias específicas para las herramientas que requieren una).

Por lo general, también termino aprendiendo las herramientas estándar de la empresa, pero soy mucho más eficiente con Far Manager que con Windows Explorer, por lo que prefiero mis propias herramientas en algunas áreas.

Claramente, esto no funcionará con algunas herramientas (si la empresa usa MySql, no puede usar solo SQL Server), pero para las herramientas de desarrollo local, me cuesta ver que un gerente decente se preocupe mucho de una forma u otra. Con el tiempo, algunas de mis herramientas suelen convertirse en "estándar" porque algunos/muchos compañeros de trabajo se dan cuenta de su valor y comienzan a usarlas.

Al final, si el gerente dice que no, tendrá que ceñirse a las herramientas estándar, pero no estará de más preguntar.

Entonces tienes mucha suerte, ya que hay muchas empresas que solo permitirán software aprobado (por cuestiones de seguridad y regulación) y solo permitirán una licencia de empresa (puede haber problemas al usar una licencia personal en un entorno empresarial). Cuando se trata de eso, el lugar donde trabaja tiene la última palabra sobre qué software y hardware usa.
@JoeW Sí, depende de la cultura de la empresa, pero incluso ahora, cuando trabajo bajo una política de seguridad muy estricta, todavía se me permite usar todas mis herramientas. La empresa incluso me compró una licencia de Office cuando me ofrecí a comprar la mía para evitar tener que usar Google Docs. (Uso Office y Docs ahora, dependiendo de la situación).
Todo depende de las políticas y las razones para ellas. He estado en lugares donde dirán que no si no está en la lista de software aprobado porque existen restricciones legales/contractuales sobre qué software puede aprobarse para su uso.
Tiene razón, al final todo depende de la compañía específica, por eso le recomendé preguntar amablemente.

Diferentes empresas tienen diferentes necesidades y han tomado diferentes decisiones. Algunas empresas permiten que todos elijan qué herramientas usar, muchas no. A veces, esto se debe al crecimiento (las empresas más pequeñas tienen menos probabilidades de estar estandarizadas) y, a veces, se debe a que algo malo sucedió cuando alguien usó una herramienta diferente y luego otros no pudieron respaldarla adecuadamente, por lo que estandarizaron todo. Esto se encuentra a menudo después de que la primera persona se ha ido y se ha producido el caos.

Si una empresa ha ido tan lejos como para hacer un estándar, esperarán que aprendas a vivir con él. Como nuevo empleado, si lo primero que hace es entrar y tratar de que hagan una excepción por usted, es probable que lo etiqueten como un alborotador o alguien que es un copo de nieve especial, una persona difícil de trabajar. Esto nunca es lo mejor para ti. Es muy difícil deshacer una mala impresión inicial. Es mejor adaptarse a la nueva herramienta incluso si te ralentiza temporalmente.

En el futuro, si usar una herramienta en particular es importante para usted, entonces solo acepte trabajos que usen esa herramienta o permita la libertad de elegir lo que quiere. Incluso entonces, es posible que tenga que adaptarse más tarde si las cosas cambian en esa empresa.