Situation: Die dba ist ein externer Auftragnehmer, der den gesamten DAL-Code in TFS auscheckt. Als Front-End-Entwickler wäre es schön, Spalten hinzufügen und Procs und so weiter optimieren zu können, ohne darauf warten zu müssen, dass dieser Typ auf Ihre E-Mails antwortet, um die Arbeit zu erledigen.
Frage: Was wäre eine empfohlene Lösung / ein empfohlener Prozess, der eine schnellere / agilere Entwicklung bei gleichzeitiger Wahrung der Datenintegrität sowie der Friedensliebe und des Glücks im Team ermöglicht?
asp.net
teamwork
team-foundation-server
team-building
configuration
Spaghetticowboy
quelle
quelle
Antworten:
Martin Fowler und Pramod Sadalage haben einen ausgezeichneten Artikel zu diesem Thema geschrieben.
Jeder Entwickler hat seine eigene Datenbank, an der Änderungen vorgenommen werden können. Diese Änderungen werden dann (als Änderungssatz) an den DBA zurückgemeldet, der sie in der Master-Datenbank implementiert. Er ist also weiterhin in den Prozess involviert und kennt die Strukturen und Anforderungen der Datenbank wahrscheinlich sowieso am besten. Ich denke, das ist der beste Ansatz, da er für alle am Prozess beteiligten Personen zufriedenstellend und auch sehr agil ist.
Sie können den DAL auf ähnliche Weise ändern. Nehmen Sie einfach Ihre Änderungen vor und stellen Sie dem DBA ein Änderungsset zur Verfügung, wenn Sie glauben, dass Sie fertig sind, damit er es überprüfen und in seinen Master einbinden kann.
quelle
Nun ja, wenn ich das DBA-Ding mache, ist bekannt, dass ich alles einsperre, damit die verdammt schmutzigen Programmierer ihre Mits nicht drauf bekommen. Jeder glaubt zu wissen, wie man es besser macht, und sie "optimieren" Dinge, um sie sich leichter zu machen, und es verursacht ein unheiliges Durcheinander.
Die andere Alternative besteht darin, es weit zu öffnen und die Programmierer eine Weile im Nahkampf zu lassen, dann einzuspringen und Ordnung zu schaffen, wenn die Dinge zu Ende gehen ... Dies ist sicherlich "agiler", aber es kann sein Ein wahrer Albtraum, je nachdem, was herausgeschnitten oder geändert werden muss ... Datenbankadministratoren haben oft ein besseres Verständnis für das gesamte Projekt, und einige Änderungen, die harmlos erscheinen, können problematisch sein.
Wenn er der einzige Gatekeeper sein will, muss er entweder eine feste Spezifikation haben oder in der Lage sein, seine Vision an den Rest der Entwickler zu "verkaufen".
quelle
Es gibt ein Hauptproblem, das jedes andere Problem ersetzt:
Warum darf er das tun? Niemand sollte eine Datei auschecken lassen, es sei denn, er nimmt aktiv Änderungen vor. Es sollte eine Teamrichtlinie für Kassen geben.
Der Auftragnehmer (ob er es mag oder nicht) arbeitet als Teil eines Teams, und manchmal müssen andere Mitglieder des Teams Änderungen vornehmen. Dies ist ein Kommunikationsproblem. Leider gibt es keine automatisierte Möglichkeit, dieses Kommunikationsproblem zu beheben.
quelle
Anstelle von horizontalen Schichten arbeite ich lieber in schichtübergreifenden Silos.
Auf diese Weise kann keine Person / kein Team auf diese Weise blockieren.
Dies bedeutet auch, dass Ihre Entwickler über vielfältige Kenntnisse verfügen und sich viel einfacher in Funktionen bewegen können.
Natürlich gibt es Abschnitte (UI-Design und DB-Design), die möglicherweise mehr Spezialarbeit erfordern, aber Sie haben die Idee.
quelle
Einfach, wenn Sie es noch nicht getan haben, sollten Sie 3 Umgebungen haben:
Die Entwicklungsumgebung sollte von Ihren Entwicklern verwaltet werden.
Möglicherweise möchten Sie auch eine RC-Umgebung hinzufügen.
Eine andere Antwort: Wenn mehrere Umgebungen nicht möglich sind, können Sie sich gegen ein verspottetes Repository entwickeln. Auf diese Weise erstellen Sie Ihre Modelle, und Ihr Auftragnehmer ist dafür verantwortlich, dass Ihre Modelle mit der Datenbank übereinstimmen. In gewisser Weise ist dies besser, da Ihre Entwickler sich keine Sorgen mehr um die Datenbank machen müssen.
quelle
Ihr Problem scheint mir ein Problem der Arbeitskräfte zu sein. Es ist angemessen und notwendig, dass alle potenziellen Änderungen an der Datenbank von einem Datenbankspezialisten genehmigt werden. Wenn die aktuelle Person nicht rechtzeitig mit der Arbeit Schritt halten kann, benötigen Sie mehr Datenbankspezialisten.
quelle
Dies ist sowohl ein Managementproblem als auch ein technisches.
Es gibt sicherlich triftige Gründe für einen DBA (unabhängig davon, ob vor Ort oder außerhalb, Auftragnehmer oder Mitarbeiter), Entwickler davon abzuhalten, Datenbankänderungen jeglicher Art vorzunehmen.
Das Hauptproblem, das Sie definiert haben, ist jedoch die Verfügbarkeit. Weiß Ihr Manager, dass Zeit / Geld damit verschwendet wird, auf diese Person zu warten? Wenn nicht, möchten Sie vielleicht erwähnen, wie alle herumsitzen.
quelle