Situación: el dba es un contratista externo que mantiene todo el código DAL desprotegido en TFS. Sería bueno que el desarrollador front-end pueda agregar columnas y ajustar los procesos y demás, sin tener que esperar a que este tipo responda a sus correos electrónicos para hacer el trabajo.
Pregunta: ¿Cuál sería una solución / proceso recomendado que permitiría un desarrollo más rápido / ágil, mientras se mantiene la integridad de los datos, así como la paz, el amor y la felicidad entre el equipo?
asp.net
teamwork
team-foundation-server
team-building
configuration
spaghetticowboy
fuente
fuente
Respuestas:
Martin Fowler y Pramod Sadalage han escrito un excelente artículo sobre este tema.
Cada desarrollador tiene su propia base de datos en la que se pueden realizar cambios. Estos cambios luego se comunican (como un conjunto de cambios) al DBA que los implementa en la base de datos maestra, por lo que todavía está involucrado en el proceso, de todos modos probablemente sepa mejor sobre las estructuras y las necesidades de la base de datos. Creo que ese es el mejor enfoque, ya que es satisfactorio para todas las personas involucradas en el proceso y también es muy ágil.
Puede cambiar el DAL de manera similar. Simplemente haga sus cambios y proporcione un conjunto de cambios para el DBA cuando crea que ha terminado, para que pueda revisarlo y fusionarlo con su maestro.
fuente
Bien, cuando estoy haciendo lo de DBA, se me conoce por bloquear todo para que los malditos programadores sucios no puedan entenderlo. Todos piensan que saben cómo hacerlo mejor, y "modifican" las cosas para que sean más fáciles para ellos mismos, y esto causa un desastre profano.
La otra alternativa es abrirlo de par en par y dejar que los programadores peleen durante un tiempo, luego saltar e imponer orden a medida que las cosas comienzan a cerrarse ... Esto es ciertamente más "ágil", pero puede ser una verdadera pesadilla dependiendo de lo que se debe cortar o cambiar ... Los DBA a menudo tienen una mejor comprensión del proyecto en su conjunto, y algunos cambios que parecen inocuos pueden ser problemáticos.
Si va a ser el único portero, debe tener una especificación fija o ser capaz de "vender" su visión al resto de los desarrolladores.
fuente
Hay un problema importante que supera cualquier otro problema:
¿Por qué se le permite hacer esto? Nadie debe tener un archivo desprotegido a menos que estén haciendo modificaciones de forma activa. Debe haber una política de equipo sobre los pagos.
El contratista (les guste o no) trabaja como parte de un equipo y, a veces, otros miembros del equipo pueden necesitar hacer cambios. Este es un problema de comunicación. Desafortunadamente, no hay una forma automática de solucionar este problema de comunicación.
fuente
En lugar de capas horizontales, prefiero trabajar en silo a través de capas.
De esa manera, ninguna persona / equipo puede bloquear de esta manera.
También significa que sus desarrolladores tienen múltiples habilidades y pueden moverse por las funciones con mucha más facilidad.
Por supuesto, hay secciones (diseño de interfaz de usuario y diseño de base de datos) que pueden necesitar más trabajo especializado, pero se entiende la idea.
fuente
Simple, si aún no lo hace, debe tener 3 entornos:
El entorno de desarrollo debe ser administrado por sus desarrolladores.
También es posible que desee agregar un entorno RC.
Otra respuesta, si no es posible múltiples entornos, podría desarrollar un repositorio simulado ... De esta manera, construye sus modelos y luego su contratista es responsable de hacer que sus modelos coincidan con la base de datos. En cierto modo, esto es mejor ya que libera a sus desarrolladores de preocuparse por la base de datos.
fuente
Tu problema me parece ser de mano de obra. Es apropiado y necesario que todos los cambios potenciales en la base de datos sean aprobados por un especialista en bases de datos. Si la persona actual no puede seguir el trabajo de manera oportuna, necesita más especialistas en bases de datos.
fuente
Este es un problema de gestión tanto como técnico.
Ciertamente, existen razones válidas para que un DBA (independientemente de si está en el sitio o fuera, contratista o empleado) para evitar que los desarrolladores realicen ningún tipo de cambio en la base de datos.
Sin embargo, el problema principal que definió es uno de disponibilidad. ¿Sabe su gerente que se pierde tiempo / dinero esperando a esta persona? Si no, es posible que desee mencionar cómo están sentados todos.
fuente