Empareje la lógica empresarial de programación con una persona que no sea de TI [cerrado]

14

¿Ha tenido alguna experiencia en la que una persona que no es de TI trabaja con un programador durante el proceso de codificación?

Es como la programación en pareja, pero una persona es una persona que no es de TI y que sabe mucho sobre el negocio, tal vez un ingeniero de procesos con experiencia en matemáticas que sabe cómo se calculan las cosas y puede entender el código de procedimiento no idiomático.

Descubrí que algunos lenguajes de procedimientos específicos de dominio como PL / SQL son bastante comprensibles para los ingenieros que no son de TI. Estas personas terminan siendo coautores del código y garantizan la corrección de fórmulas, factores, etc.

He encontrado que este tipo de programación de pares es bastante productivo, este tipo de usuarios de ingeniería consideran que también son "propietarios" y "autores" del código y ayudan a minimizar los malentendidos en el proceso de comunicación. Incluso ayudan a diseñar casos de prueba.

  • ¿Es esta práctica común?
  • Eso tiene un nombre?
  • ¿Has tenido alguna experiencia similar?
Tulains Córdova
fuente

Respuestas:

11

Aunque está describiendo esto como una sesión de codificación compartida (no puedo llamarlo programación de pares, ya que solo una persona está "manejando"; en la programación de pares, ambas partes toman el teclado y escriben el código), lo llamaría reunir criterios de aceptación .

Es decir, está validando las reglas comerciales (cálculos y procesos correctos) con el usuario comercial (aunque uno con un rol muy técnico, un ingeniero).

En este caso, se traduce inmediatamente en código escrito (SQL), pero para muchas otras actividades no lo será, aunque existen herramientas de prueba de aceptación automatizadas para diferentes idiomas y plataformas (estoy pensando específicamente en el lenguaje de pepinillo y las herramientas relacionadas).

Esta práctica no es tan común como debería ser, pero está ganando cada vez más seguidores y aquellos que la siguen (obteniendo criterios de aceptación en una forma que se puede ejecutar) la encuentran invaluable como una herramienta tanto para comunicarse con el negocio como para conducir desarrollo.

Oded
fuente
Al menos donde estoy (una pequeña empresa) tenemos mucha comunicación entre el lado comercial y el lado de la ingeniería, pero siento que uno de los hombres de negocios que conoce sus cosas se sienta y camina el código conmigo. por línea sería un desperdicio de recursos de la compañía, especialmente dado el estado de la economía y cómo impulsa a las empresas a ser lo más esbeltas posible. Si tuviéramos más horas en el día de trabajo, podría tener sentido, pero cada hora cuenta. Solo mi aporte de todos modos.
Ampt
@Ampt: ¿lo has probado? Si utiliza especificaciones ejecutables , puede guiarlas a través de la especificación en lugar del código.
Oded
¡No lo he probado y no digo que esté mal de ninguna manera! Acabas de decir que no es tan común como debería ser y estaba dando mi opinión sobre por qué podría ser eso. Siento que cuanto más comunicación que tenga entre la parte empresarial y el desarrollo, el mejor de su proyecto puede ser. La calidad de esa comunicación a menudo define qué tan bueno es su proyecto, y según esa lógica, sentarse con una persona de negocios y revisar el código que podrían entender probablemente caería en la categoría de buena comunicación.
Ampt
2

Si. Donde trabajo hago el tipo de programación hardcore, mientras que los estrategas trabajan en la estrategia uhm. Es decir, escribo los programas que implementan sus modelos comerciales.

La clave para esto es sentarse justo al lado de ellos y comprender exactamente cuáles son las ideas, y hacer muchas preguntas sobre cosas que pueden ser incidentales para ellos, pero importantes para el lado de la ejecución. Por ejemplo, preguntaría qué tan rápido debe ejecutarse una operación, si eso afecta su modelo. Esto tiene un gran impacto en cómo escribiré el código. De hecho, tiendo a rociar preguntas en la habitación, ya que estamos sentados allí trabajando todos los días.

Hay una retroalimentación bidireccional. Si les digo que algún esquema comercial no será fácil de construir, regresan y piensan qué compensaciones se pueden tomar en el lado de la toma de decisiones. Si deciden que su nueva estrategia necesita alguna característica nueva, tengo una conversación con ellos sobre cuánto tiempo tomaría construir y cuáles son las posibles dificultades.

Realizan módulos de código que encapsulan algún aspecto de la estrategia comercial de vez en cuando, pero combino las piezas en una arquitectura que nos permite realizar un seguimiento de todas las diferentes estrategias, así como de las cosas operativas del backend. De esa manera, no necesitan saber el meollo del sistema.

Carlos
fuente