Drupal verleitet irgendwie ein wenig zu Scope Creep, wenn man nicht wirklich aufpasst. Die Rahmenbedingungen: Im Rahmen eines grossen Projekts, kommt eine kleine Anforderung hinzu, für eine kleine Übergangsseite, bis das grosse Projekt fertig ist. Im Klartext. Es ist nicht wirklich eingeplant. Hier das Szenario.
"Hallo Rapsli, ich bräuchte eine Seite, wo die Benutzer ein Bild hochladen können. Dieses wird als unpublished gespeichert. Der Moderator kann die Bilder in eine Queue legen, so dass jeweils an jedem Tag ein unterschiedliches Bild auf der Startseite erscheint."
Umsetzung. Theme besteht bereits. Wird bisher so gemacht, dass es jeweils statische Seiten gibt, welche mit einem kleinen Scriptli jeweils umgeschalten werden. Das Theme ganz spartanisch für Drupal anpassen -> lediglich so, dass nur die Startseite gut ausschaut. Für alle anderen Seiten wird Garland verwendet.
Der Moderator kann Nodes auswählen, welche er dann in eine Nodequeue stellen kann, welche jeden Tag ein anderes Element der Queue anzeigt. Damit das Ganze ein wenig schneller geht: Views Bulk Operations.
"Hallo Rapsli. Ich komme überhaupt nicht draus."
Kleiner Usability Fehler. Jetzt sieht es eigentlich nicht schlecht aus.
"Hallo Rapsli. Wenn jetzt hier 100 Bilder sind, dann ist es nicht möglich, die Übersicht zu wahren, welche Bilder alle bereits auf der Startseite waren."
Ok. Ich baue noch ein Feld ein, welches den Status angeben, aufnehmen kann. In der Views, wo alle Bilder aufgelistet werden, gibts zudem noch einen Filter, welcher nach diesem Status Feld filtert.
"Hallo Rapsli. Jo, jetzt muss ich jedes Bild manuell, wenn es auf der Startseite ist, den Status ändern. Es wäre natürlich viel einfacher, wenn dieser Status gleich direkt ändert, wenn man es in die Nodequeue schiebt."
Ja natürlich. Du hast recht. Das wäre auf jeden Fall viel besser. ABER. Das Projekt ist nicht wirklich eingeplant. Frag doch den Projektleiter, ob das in Ordnung geht, dann können wir ein kleines neues Projekt machen.
"Na gut… ich kann mit der jetztigen Version leben…"
Man muss einfach die richtige Balance finden. Da es kein festes, detailliertes Pflichtenheft gibt (agile Entwicklung), müssen zwischendurch auch Dinge gemacht werden, welche nicht vorgesehen sind. Sprich eine gewisse Flexibilität muss da sein, sonst ist man eben wieder soweit, dass man ein super detailliertes Pflichtenheft erstellt. ABER, wenn es sich um einen Teil handelt, welcher nicht direkt mit dem Projekt zu tun hat, soll man früh genug die Bremse ziehen, denn das eine zieht das andere mit sich und aus dem kleinen Nebenprojekt wird ein riesiges Hauptprojekt, welches aber in der initialen Aufwandschätzung überhaupt nicht vorgesehen ist.
… es passiert schneller als einem Lieb ist. Persönliche Erfahrung.