¿Cómo se define el lenguaje común entre desarrolladores, expertos en dominios y usuarios en proyectos de software?

Como desarrollador, primero debo escuchar atentamente a los expertos en dominios y qué palabras usan, y guiarme por eso. (Por supuesto, en la práctica, la comunicación con los expertos en el dominio puede ser mediada por otros desarrolladores, por analistas de negocios o por otros guardianes). Si eso significa una curva de aprendizaje para mí, entonces que así sea. No tiene sentido imponer implícitamente una terminología diferente a los expertos en dominios, a menos que se refieran a un concepto técnico que ya tenga un nombre estandarizado, o a menos que un nuevo término que pueda introducir resuelva una ambigüedad real.

Vale la pena señalar que la terminología que se muestra a los usuarios finales no siempre tiene que corresponder necesariamente con la redacción utilizada por los expertos en dominios. En la interfaz de usuario, puede simplificarse, optimizarse por razones de marketing o incluso eliminarse por completo (el concepto puede estar presente implícitamente en la interfaz de usuario pero no expresarse explícitamente en él). La terminología de precisión a veces utilizada por los expertos en dominios puede ser percibida como demasiado pedante o confusa por los usuarios finales. De hecho, los usuarios finales pueden incluso estar en la mitad del mundo hablando un idioma completamente diferente (japonés en lugar de inglés, por ejemplo).

Del mismo modo, cuando la redacción de la interfaz de usuario para una característica cambia, no es necesariamente importante forzar a los desarrolladores a utilizar la nueva redacción entre ellos y en los comentarios de código y los nombres de los métodos (aunque esto puede generar confusión para los nuevos desarrolladores que se unen al proyecto). Si bien el soporte de herramientas facilita cambiar el nombre global de los conceptos dentro de una única base de código, el advenimiento de sistemas distribuidos generalizados divididos en múltiples equipos de desarrollo e incluso múltiples compañías (piense B2B), y los deseos loables de las compañías de mantener las especificaciones de requisitos sincronizadas con el código, significa que posiblemente no siempre sea deseable mantener los nombres en la base de código sincronizados con los de la interfaz de usuario. Puede ser demasiado costoso o arriesgado hacerlo, o al menos, percibido como tal. Si hay múltiples interfaces de usuario desarrolladas por diferentes compañías que usan una redacción diferente, simplemente podría ser imposible, a menos que obligue a todas esas compañías a estandarizar la misma redacción. Además, por supuesto, la antigua terminología establecida simplemente tiene una inercia propia dentro de una empresa, por lo que puede ser mejor “seguir la corriente” a ese respecto, y simplemente cambiar la terminología en la interfaz de usuario, dejando la antigua términos en el código y la documentación interna asociada. Por otro lado, si hay razones de marketing, relaciones públicas o cumplimiento para descartar una redacción anterior, ¡puede ser mejor presionar por un cambio de nombre completo en toda la empresa! Realmente depende de las circunstancias.

En algunos casos, el arquitecto define este lenguaje.

Un trabajo de un arquitecto es comprender y comunicar las implicaciones de usar un determinado módulo, en diferentes niveles de abstracción. Dado que ella es la comunicadora, tiene sentido que defina la mayor parte del argot universal.

En otros casos, es el CTO o CEO, dependiendo de su nivel de participación. Es importante que la persona que define este lenguaje tenga una baja probabilidad de abandonar la empresa.

More Interesting

Amazon, Facebook y Google prueban algunos de sus cambios de diseño front-end y back-end con un pequeño número de clientes antes de lanzarlos a todos. ¿Qué tipo de métodos y tecnología utilizan para hacer eso? ¿Es posible con Rails?

¿Cuáles son las implicaciones de un concepto como TrueTime api (de Google Spanner) en el diseño de sistemas distribuidos?

¿Puedo desarrollar software si estudio mecatrónica?

¿Debo dejar mi trabajo de desarrollo de software y hacer freelance a tiempo completo?

¿Habrá una tercera edición del libro "Code Complete" de Steve McConnell?

¿Qué tan difícil es desarrollar un software antivirus?

¿Por qué importa un buen código?

¿Quora se convirtió en un sitio de promoción indirecta de Free Code Camp?

Actualmente estoy en la universidad haciendo el segundo año de B. Tech y quiero saber cuándo puedo prepararme para el Examen de Aptitud de Posgrado en el examen de Ingeniería

¿Por qué pude exceder el máximo de 'Preguntar para responder'?

¿Cómo puede probar qué producto de software es 'mejor' para una competencia competitiva de desarrollo de software?

¿Qué producto de hardware o software le gusta usar y por qué?

Como gerente de proyectos de software, ¿cómo puedo motivar a mi equipo para obtener el mejor resultado de mi equipo?

¿Qué debo hacer para conseguir un trabajo en Silicon Valley como ingeniero de software? ¿Qué tipo de antecedentes o experiencia / educación se requiere?

¿Cuáles son buenas estrategias para gestionar grandes proyectos con vim?