¿Cómo persuadir a los desarrolladores para que comiencen a usar las marcas de funciones?

20

Asumir que ese indicador de función alterna es una buena idea y debe implementarse en el código que escriben los desarrolladores. Por ejemplo, Etsy jura por ellos como una parte importante de su cultura .

¿Cuál es una buena manera de persuadir (y hacer cumplir) a los desarrolladores para que comiencen a usar las funciones de alternancia de marcas?

Más información sobre alterna indicador de la función se explica en Q: Cómo utilizar alterna indicador de la función , Q: ¿Cuáles son características alterna bandera y muy ampliamente en Pete Hodgson artículo sobre el tema en el blog de Martin Fowler .

Evgeny
fuente
Una versión reducida para la pregunta devops.stackexchange.com/questions/4/… .
Evgeny
1
Oeps, solo ahora te veo un nuevo comentario (y actualización). Después acabo de publicar una nueva pregunta sobre ellos. ¿Quizás quieras publicar una respuesta a mi nueva pregunta (donde tienes mucho más espacio para explicar estas cosas)? Si lo hace, asegúrese de que no sea una respuesta de solo enlace (confío en que sepa lo que eso significa en los sitios de SE, ¿verdad?).
Pierre.Vriens

Respuestas:

18

Las funciones de alternancia son una práctica común en el desarrollo de alta velocidad porque desvinculan el desarrollo del lanzamiento. Los equipos de desarrollo pueden "liberar" una nueva función para producción, en un estado deshabilitado. Esto permite que la función se libere en cualquier momento. Si la función depende de otro trabajo o preparación, no tiene que esperar a que se publique una versión principal para la producción.

En cuanto a "convencer" a los desarrolladores para que los usen, es un ejercicio para defender la libertad que ofrece. Mi experiencia es que no es una venta difícil para los desarrolladores. Es la administración la que tiende a ser reacia a probar cosas nuevas. Prueba esto:

  • Encuentra un marco de alternancia de funciones. La administración / la empresa puede ser más propensa a probar algo respaldado por un sistema común
  • Empieza pequeño. Presente el sistema de alternancia a modo de prueba para una función que demostrará su utilidad.
  • Demuestre la capacidad del conmutador para hacer pruebas A / B. Habilite la alternancia para un subconjunto de su granja de servidores web, luego recopile métricas sobre el comportamiento. Se ha demostrado que las pequeñas diferencias en el diseño de la página tienen enormes efectos en los ingresos de las aplicaciones minoristas (por ejemplo, Ebay, Amazon)
Dave Swersky
fuente
2
+1 para el bit de marco. He visto a muchas personas desplegar sus propias funciones y siempre es un código desagradable.
Jduv
Sobre el bit de marco, hay un interesante OSS de Intuit llamado Wasabi github.com/intuit/wasabi
Evgeny
Recomendación de libro sobre cómo persuadir a otros desarrolladores - Impulsar el cambio técnico por Terrence Ryan
Liath
8

¡En un mundo ideal, creo que lanzas una nueva construcción y te sorprendes! Nada cambia. Esto se debe a que todas sus nuevas funciones están detrás de los interruptores que se apagan con el interruptor apagado.

Después de la implementación, verifica que su servicio implementado aún funciona, que los teléfonos ya no están sonando (a menos que su propósito sea llamar a los teléfonos, etc.) Una vez que haya regresado a una operación estable conocida, comenzará a habilitar y verificar sus funciones recién implementadas.

Ahora para su respuesta: ¿Cómo le gustaría trabajar en un equipo donde estar de guardia es prácticamente obvio y nuestros usuarios nos aman porque nuestros sitios y servicios son sólidamente estables?

Ese es el equipo en el que quiero trabajar.

Puedes dejar de leer aquí si quieres.

Poner todo detrás de un interruptor de función parece que puede conducir a un código de espagueti en todas partes. Si usa IoC y puede seleccionar entre vNow / vNext / vPrevious, entonces se trata de mantener su configuración. Sí, más registros, sí, más clases (componente V1, componente V2, componente V3, etc.) pero ¿realmente tiene un sistema más estable? ¿Cómo? vNext es inestable? Vuelva a vNow con su torre de control. ¿Ha pasado una semana y vNow tiene un error sutil? Lo mismo: regrese a vPrevious con la misma facilidad.

Sin complicaciones, sin preocupaciones, sin pérdida de sueño, sin estrés.

Esto no es un sueño imposible. Yo trabajaba ahí. Ojalá pudiera vender esto a mi equipo actual.

Sin reembolsos Sin devoluciones
fuente
4

Un entorno de desarrollo exitoso a alta velocidad generalmente se basa en un sistema automatizado bastante estricto que involucra verificaciones de calidad con detección y rechazo de cambios defectuosos que causan regresiones.

Los conmutadores de funciones ofrecen la capacidad de confirmar incluso cambios no probados en el trabajo en progreso sin ser rechazados por causar regresiones en la rama de integración. Lo que constituye un muy buen incentivo para introducir la función alterna muy temprano en la vida de la función.

Una de las desventajas de desviarse del verdadero CI y del desarrollo de características móviles en las ramas de características es la falta de ese incentivo. Agregar la función alternar más adelante, cuando la fusión de la rama de características en la rama de integración suele ser más difícil, como cualquier integración tardía.

Dan Cornilescu
fuente
2

Los desarrolladores (y generalmente los gerentes de desarrollo) generalmente buscan dos resultados asociados con el marco: la facilidad de administración y la velocidad de implementación. Desea enviar el código más rápido y más fácil.

Proporcionar evidencia de que el enfoque funciona; intente construir un POC pequeño utilizando indicadores de características en comparación con el método anterior. Los estudios de caso son menos importantes para las personas tácticas (desarrolladores \ ingenieros) que las personas estratégicas (gerencia media \ diseñadores de productos).

Stuart Ainsworth
fuente
0

La razón de tener alternar características no es algo que los desarrolladores decidan. Esto es algo que los propietarios de productos deben cuidar. Los desarrolladores permiten este cambio de la manera más sostenible y segura. Critico esta misma pregunta.

Sudharsan S
fuente
He estado en organizaciones donde los desarrolladores son los propietarios del producto. He visto la gestión de productos actuar como propietarios de productos varias veces. Y he estado en lugares donde nadie parece poseer nada. Entonces, su declaración encaja con aproximadamente un tercio de mi experiencia. Animar a los desarrolladores a escribir cosas de una manera que funcione mejor en la producción me parece algo generalmente bueno. ¿Puedes citar a alguna autoridad para apoyar tu punto de vista?
chicas el