Trabajo para una empresa que admite varios idiomas: COBOL, VB6, C # y Java.
Utilizo esos idiomas para mi trabajo principal, pero a menudo me encuentro codificando algunos programas menores (por ejemplo, scripts) en Python porque descubrí que es la mejor herramienta para ese tipo de tarea.
Por ejemplo: un analista me da un archivo CSV complejo para llenar algunas tablas de base de datos, por lo que usaría Python para analizarlo y crear un script de base de datos.
¿Cuál es el problema?
El principal problema que veo es que algunas partes de estos scripts rápidos y sucios están ganando importancia lentamente y:
- Mi empresa no es compatible con Python
- No están controlados por la versión (los respaldo de otra manera)
- Mis compañeros de trabajo no conocen Python
Los analistas incluso han comenzado a hacer referencia a ellos por correo electrónico ("lanzar el script que exporta ..."), por lo que se necesitan con más frecuencia de lo que inicialmente pensé.
Debo agregar que estos scripts son solo utilidades que no forman parte del proyecto principal; simplemente ayudan a realizar tareas triviales en menos tiempo. Para mis pequeñas tareas me ayudan mucho.
En resumen, si fuera un ganador de la lotería por un accidente , mis compañeros de trabajo tendrían que mantener vivo el proyecto sin esos guiones; pasarían más tiempo reparando errores CSV a mano, por ejemplo.
¿Es este un escenario común? ¿Estoy haciendo algo mal? ¿Qué tengo que hacer?
fuente
Respuestas:
Debe formalizar la situación, ya que realmente no debería haber llegado a este punto. Sin embargo, estas cosas suceden, por lo que debe explicarle a su jefe que creó estos scripts para uso personal, pero que han "escapado" a una circulación más amplia. Admita (si es necesario) que usted tuvo la culpa de no llamar su atención antes.
Como mínimo, las secuencias de comandos deben estar bajo el control de la fuente "por si acaso", y al menos si no está disponible (por alguna razón) sus compañeros de trabajo tendrán acceso a las secuencias de comandos.
Luego, debe convencer a su jefe de que Python es el camino a seguir para estos o aceptar que tendrá que volver a escribirlos en un idioma compatible. Si el costo de documentar los scripts y educar a sus compañeros de trabajo en Python es menor que el de la reescritura, incluso podría ganar el argumento.
fuente
No puedo darte una respuesta completa sobre lo que debes hacer. Solo puedo darte una sugerencia que puedas usar para comenzar:
Verifique los scripts en un repositorio al que puedan acceder todos los desarrolladores (obligatorios). Pero asegúrese de tomar nota del hecho de que primero ha escrito estos scripts para su propio propósito, es decir, para realizar una tarea que se le ha asignado. Luego agregue que solo está registrando estos scripts para permitir a otros la ventaja de usarlos.
Después de eso, solo tendrá que ver cómo otras personas responden a eso.
fuente
Me he encontrado con problemas similares donde trabajo. Escuché "¿Qué es PHP?" muchos años atrás. No entienden ni les importa aprender nada fuera de la pila de MS. Si Python es la herramienta adecuada para el trabajo, simplemente le diría a mis supervisores al respecto y estaré listo para muchas comparaciones y explicaré por qué Python fue la elección correcta. Será frustrante, pero creo que la mayoría estaría de acuerdo en que Python es una buena opción para la manipulación de texto.
fuente
Lo primero que debe hacer es hablar con el equipo y su jefe. En este momento, tienes un factor de camión enorme (si te atropella un camión, nadie más podría mantener fácilmente tus scripts). Parece que tener scripts para realizar estas tareas es importante, pero también es importante que cualquiera que lo necesite pueda editar y mantener estos scripts. Debe explicar cómo el uso de Python agrega valor: cómo ahorra tiempo, esfuerzo, recursos, dinero, etc.
Segundo, póngalo en el control de versión del proyecto. Ahora. Nada de lo que produzca para un proyecto debe estar fuera del control de versión de ese proyecto, nunca.
Prepárese para la reacción violenta: a las personas generalmente no les gusta el cambio. Correr por su cuenta, usar tecnologías no compatibles y desconocidas (para el equipo / organización) fue una mala idea, sin consultar al menos a los otros desarrolladores y determinar la mejor manera (para el proyecto, no solo usted) de automatizar estas tareas para todos usar.
Creo que este es probablemente un buen caso de
Parece que hiciste el trabajo, pero ahora tendrás que lidiar con las repercusiones.
fuente
Mi regla general es:
Cualquier cosa que potencialmente afecte el trabajo de otros debe discutirse con sus compañeros y superiores lo antes posible.
Pero, si es solo para usted y para usted, siempre y cuando no dañe la infraestructura o la seguridad de su empresa , puede hacer lo que desee para hacer el trabajo.
fuente
Tienes dos opciones:
Dependiendo de la organización, el # 1 puede ser un desafío (después de todo, limitar la lista de tecnologías estándar evita una explosión combinatoria de los requisitos de capacitación y habilidades de soporte).
La segunda opción ayudaría a su conjunto de habilidades, y es posible que pueda encontrar un tercero (y probablemente de código abierto con licencias comercialmente amigables) para hacer parte del trabajo duro. Por ejemplo, una búsqueda de "LINQ to CSV" debería obtener algunos resultados útiles.
Por cierto, las herramientas de desarrollo de VB6 (IDE, compilador) no son compatibles (ni siquiera las correcciones de seguridad), por lo que es probable que el estándar deba actualizarse de todos modos. (El tiempo de ejecución VB6 es compatible como parte de las versiones actuales de Windows, e incluido en la instalación). Quizás esto podría usarse como una ayuda para el enfoque n. ° 1: el conjunto de herramientas estándar necesita elevar un objetivo móvil debido a las dependencias del proveedor.
fuente
Si se le asigna una tarea y la única forma en que puede realizarla a tiempo, realmente no tiene otra opción. Creo que es aconsejable que los responsables sepan lo que está haciendo. No debe salir del control de origen requerido (a menos que simplemente no funcione en absoluto?) Pruebas y documentación.
A veces, una empresa puede tener que dejar que un solo desarrollador comience a buscar en una nueva área de desarrollo. Desafortunadamente, el código puede llegar a la producción más rápido de lo que cualquiera puede acelerar.
fuente
Bueno, tengo que admitir que trabajar con 20 idiomas diferentes apesta, MUCHO.
Tiene un script Bash que llama al script Python que llama al script Perl que llama al binario Java que llama a C dll ...
Luego, algo golpea al ventilador en toda la tubería, y usted pasa: ¿QUÉ ES DAT KODEZ? Especialmente en Perl ... Y la depuración simple, por ejemplo, un problema de codificación, se convierte en un desastre de pesadilla. No puede depurar 5 de los 7 idiomas de manera efectiva, y se convierte en un verdadero dolor.
O tiene que agregar un cambio simple, pero crea 10 errores porque Perl tiene errores, Java tiene errores, etc.
Y esa cadena de idiomas 7+ comienza un paso a la vez.
Pisa con cuidado, aquí hay dragones ...
fuente
Si esas son herramientas que usa para usted, puede hacer cualquier cosa que lo haga más productivo.
En realidad, debe alentarse a hacer y usar tales herramientas, que finalmente se convertirán en una extensión de sus brazos.
Eventualmente, reconocerán la importancia de tener tales herramientas, sin importar en qué idioma estén escritas , y comenzarán a implementarse en su entorno de trabajo.
fuente
Cuando se le pide que escriba código haciendo algo, el idioma generalmente se especifica o implica (la regla en las corporaciones).
Pero cuando tiene que hacer una tarea única, como importar datos a la base de datos, puede elegir la herramienta que, en su opinión, se adapta mejor, porque debe hacer algo correcto y rápido, y el resultado es importante, No las herramientas.
Entonces, usaría esa regla:
1) Si se le indica que haga alguna tarea, como la importación de datos, usaría las herramientas / idioma / etc. eso sería lo más conveniente para mí y lo más rápido para la tarea.
2) Si se le indica que escriba una herramienta que realice alguna tarea, como importar algunos datos, discutiría qué idioma / herramienta usar con el gerente (con la excepción cuando uso un lenguaje implícito estándar, por ejemplo, cuando la compañía usa [casi ] solo Java).
3) Si la tarea parecía ser de una sola vez, pero se volvió repetible, debe hablar con el gerente para cambiarla de 1) a 2) y volver a escribir desde su idioma preferido al idioma compatible con la empresa.
fuente
Supongo que no estás en condiciones de decidir (o de lo contrario no harías la pregunta). ¿Qué piensa tu jefe sobre este tema? Deberías hablar con él e intentar convencerlo de que Python es el camino a seguir ...
Por supuesto, el problema es sobre lo que sucederá cuando te vayas. No poder mantener el código es probablemente una razón suficiente para dejar de usar Python. O puede comenzar a educar a sus colegas en este idioma ...
fuente