Projectafsluiting: verschil tussen versies

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen
Regel 1: Regel 1:
 
== Projectdatabases ==
 
== Projectdatabases ==
  
== Het probleem ==
+
=== Het probleem ===
  
 
Meestal werk ik met ''projectdatabases''. Gedurende een project onstaan daar steeds meer tabellen en sprocs (en incidenteel views & functies). Een deel van deze objecten wordt geïmporteerd uit database ''dwh_org''.
 
Meestal werk ik met ''projectdatabases''. Gedurende een project onstaan daar steeds meer tabellen en sprocs (en incidenteel views & functies). Een deel van deze objecten wordt geïmporteerd uit database ''dwh_org''.
Regel 13: Regel 13:
 
* Hoe zorg ik dat unit tests beschikbaar blijven?
 
* Hoe zorg ik dat unit tests beschikbaar blijven?
  
== Oplossing ==
+
=== Oplossing ===
  
* Maak vantevoren een backup
+
* Maak aan het begin van de afronding een backup van de database
 
* Verplaats alle relevante tabellen naar dwh_org. Verwijder de rest
 
* Verplaats alle relevante tabellen naar dwh_org. Verwijder de rest
 
* Behoud de sprocs, views & functies in de projectdatabase
 
* Behoud de sprocs, views & functies in de projectdatabase
Regel 21: Regel 21:
 
* Desgewenst kan de projectdatabase nu offline gehaald worden.
 
* Desgewenst kan de projectdatabase nu offline gehaald worden.
  
== Checklist ==
+
== Checklist projectafronding ==
  
Checklist voor afronding van een project, in ontwikkeling sinds begin 2021. De uitdaging: Proberen om me voor te stellen dat ik over 3 jaar iets nodig heb dat tijdens dit project is gedaan. Hoe gaat me dat lukken?
+
Deze lijst is in ontwikkeling sinds begin 2021. De uitdaging: Proberen om me voor te stellen dat ik over 3 jaar iets nodig heb dat tijdens dit project is gedaan. Hoe gaat me dat lukken?
 
 
Uitgangspunt: ''Mappen & projecten'' zijn de basis van projecten.
 
  
 
=== ReadMe.txt ===
 
=== ReadMe.txt ===
Regel 45: Regel 43:
 
* Mappen & bestanden. Dit is vaak alleen de naam van de map onder ''Projecten'' en/of ''Projecten - Non-active'' (de namen kunnen verschillen in deze twee situaties)
 
* Mappen & bestanden. Dit is vaak alleen de naam van de map onder ''Projecten'' en/of ''Projecten - Non-active'' (de namen kunnen verschillen in deze twee situaties)
 
* Trello-boarden: Hiervan vermeld ik vaak beide URL's: De 'gewone' en de URL die je ziet als je via het menu aan de rechterkant de 'permanente' URL opvraagt
 
* Trello-boarden: Hiervan vermeld ik vaak beide URL's: De 'gewone' en de URL die je ziet als je via het menu aan de rechterkant de 'permanente' URL opvraagt
 +
* Artikelen op verschillende wiki's
 +
* Websites (dus sites die geproduceerd zijn als onderdeel van het project): Naam en evt. locatie
 +
 +
=== Leerpunten ===
 +
 +
''Leerpunten'' kunnen ook positieve zaken zijn. Bv. dat de kostprijsberekening verbazend accuraat was.
 +
 +
=== Aanbevelingen ===
 +
 +
* Als ik dit project opnieuw zou doen, wat zou ik anders doen?
 +
* Hoe kan ik opvolgende projecten handiger doen?
 +
 +
=== Backups ===
 +
 +
Maak in de root van het project een map aan voor backups. Deze map krijgt gewoon een volgnummer zoals bijna alle mappen. Bv. <code>500 - Backups at project completion - 2021.07.13</code>.
 +
 +
Wat meestal in deze map belandt, mogelijk in submappen:
 +
 +
* Project-database: Complete versie van vóór de projectafsluiting
 +
* Project-database: Lege versie met alleen nog ''sprocs'', ''views'' en ''functies'', geschikt voor executie van unit tests
  
bestanden; Trello; wiki; webservers; site-instanties, meer?
 
* ''Leerpunten & volgende keer:'' Misschien wel het belangrijkste
 
* Verplaats de mappen & bestanden naar zoiets als ''Projecten - niet-actueel''
 
*
 
  
  
, want sinds 2020 mag je nog maar een paar gratis boards hebben
 
 
* Verplaats sites van webservers naar een map in de root van het project. Schoon webserver op
 
* Verplaats sites van webservers naar een map in de root van het project. Schoon webserver op
 
* Archiveer database-backups in een projectmap. Verwijder de databases van de database-servers
 
* Archiveer database-backups in een projectmap. Verwijder de databases van de database-servers

Versie van 13 jul 2021 15:04

Projectdatabases

Het probleem

Meestal werk ik met projectdatabases. Gedurende een project onstaan daar steeds meer tabellen en sprocs (en incidenteel views & functies). Een deel van deze objecten wordt geïmporteerd uit database dwh_org.

Zo'n project produceert vaak tabellen die de moeite waard zijn om daarna in dwh_org te bewaren. Probleem: Steeds onduidelijk waar de meest recentelijke versie van zo'n tabel staat: In dwh_org of in de projectdatabase? (concurrency-probleem)

Als het project is afgerond:

  • Hoe voorkom ik dat concurrency-probleem tot in de lengte van dagen actief blijft?
  • Kan ik zo'n projectdatabase verwijderen? Dat scheelt afleiding en verwarring
  • Hoe zorg ik dat unit tests beschikbaar blijven?

Oplossing

  • Maak aan het begin van de afronding een backup van de database
  • Verplaats alle relevante tabellen naar dwh_org. Verwijder de rest
  • Behoud de sprocs, views & functies in de projectdatabase
  • Zorg dat de unit tests werken op deze nu lege projectdatabase. Eventueel de testcode uitbreiden met importeren van tabellen uit dwh_org.
  • Desgewenst kan de projectdatabase nu offline gehaald worden.

Checklist projectafronding

Deze lijst is in ontwikkeling sinds begin 2021. De uitdaging: Proberen om me voor te stellen dat ik over 3 jaar iets nodig heb dat tijdens dit project is gedaan. Hoe gaat me dat lukken?

ReadMe.txt

Maak bestand ReadMe.txt aan in de root van het project. Als een txt-bestand te beperkt is, gebruik dan een tekstverwerkersbestand (odt-formaat).

Wat ik zoal in zo'n ReadMe.txt bestand onderbreng:

  • Naam van het project + uitleg, want na 6 maanden zijn heel veel projectnamen echt niet meer te begrijpen
  • Context: Waar pastte dit project in het grote geheel? Belangrijk, want ook dat weet ik over 6 maanden niet meer
  • Inventaris: Zie aparte hoofdstuk Inventaris elders in dit artikel
  • Leerpunten
  • Unit tests

Inventaris

Inventaris: Waar staat alles. Dit lijstje is meestal onderdeel van het ReadMe.txt-bestand. Denk aan:

  • Mappen & bestanden. Dit is vaak alleen de naam van de map onder Projecten en/of Projecten - Non-active (de namen kunnen verschillen in deze twee situaties)
  • Trello-boarden: Hiervan vermeld ik vaak beide URL's: De 'gewone' en de URL die je ziet als je via het menu aan de rechterkant de 'permanente' URL opvraagt
  • Artikelen op verschillende wiki's
  • Websites (dus sites die geproduceerd zijn als onderdeel van het project): Naam en evt. locatie

Leerpunten

Leerpunten kunnen ook positieve zaken zijn. Bv. dat de kostprijsberekening verbazend accuraat was.

Aanbevelingen

  • Als ik dit project opnieuw zou doen, wat zou ik anders doen?
  • Hoe kan ik opvolgende projecten handiger doen?

Backups

Maak in de root van het project een map aan voor backups. Deze map krijgt gewoon een volgnummer zoals bijna alle mappen. Bv. 500 - Backups at project completion - 2021.07.13.

Wat meestal in deze map belandt, mogelijk in submappen:

  • Project-database: Complete versie van vóór de projectafsluiting
  • Project-database: Lege versie met alleen nog sprocs, views en functies, geschikt voor executie van unit tests


  • Verplaats sites van webservers naar een map in de root van het project. Schoon webserver op
  • Archiveer database-backups in een projectmap. Verwijder de databases van de database-servers

Sluit Trello-board

Sluit het bijbehorende Trello-board (of -boarden), maar gooi ze niet weg.

Redenen om deze te sluiten:

  • In de gratis versie van Trello mag je sinds 2000 nog maar een beperkt aantal boards per team hebben
  • Overzichtelijker
  • De zoekfunctie van Trello werkt ook in gesloten boards.

Zie ook