ida-arbeitszeit / arbeitszeitapp

A webapp for labour-time calculation.
https://arbeitszeitapp.readthedocs.io
GNU Affero General Public License v3.0
32 stars 4 forks source link

Implementierung öffentliche Dienstleistungen #64

Closed sloschert closed 2 years ago

sloschert commented 2 years ago

Ich habe mir jetzt mal Gedanken gemacht, wie man öffentliche Betriebe im Sinne der Holländer implementieren kann. Es ist nicht sehr kompliziert, insbesondere wenn man keine neue Entität "Öffentlicher Betrieb" einführt, sondern stattdessen der Einfachheit halber auf Produkt-Ebene das Attribut "öffentliche Dienstleistung" einführt.

Könnte man demnächst mal angehen.

Voraussetzungen:

Front End:


(Zur Erläuterung:)

Öffentliche Betriebe sind bei den Holländern ja Betriebe, die ihre Produkte (vor allem aber Dienstleistungen) im Gegensatz zu produktiven Betrieben kostenfrei anbieten. Bildung, Infrastruktur, Gesundheit läuft alles über öffentliche Betriebe. Die Kosten dieser Betriebe werden durch gemeinsam beschlossene Budgets finanziert. Die Budgetkosten werden auf alle Members umgelegt. Diese Umlage geschieht mittels einen Auszahlungsfaktors (FIK). Ist der Auszahlungsfaktor z.B. 0,5 erhalten die Members für 1 Stunde Arbeit 1*0,5 = 0,5 Arbeitsgeld.

Die Formel des Auszahlungsfaktors lautet: FIK = (A − ( P o + R o )) / (A + A o)

wobei P o, R o und A o die Kosten der öffentlichen Betriebe sind, A ist die geleistete Arbeitszeit der produktiven Betriebe.

Hätten wir in unserer Wirtschaft jetzt ausschließlich öffentliche Betriebe, wäre der Zähler Null oder Negativ, die ArbeiterInnen würden also nichts bekommen oder sogar drauf bezahlen müssen.

Das Programmieren der Arbeitszeit-App ist ein klassischer Fall für eine öffentliche Dienstleistung, allerdings würden wir momentan für unsere Arbeit kein Arbeitsgeld erhalten, selbst wenn wir einen gemeinsamen Betrieb erstellen, einen Plan für das Programmieren der App erstellen und darin unsere Arbeitszeit angeben würden. Eben weil es momentan keine produktiven Betriebe in der App gibt.

sloschert commented 2 years ago

Noch ein Zusatz: Öffentliche Dienstleistungen und öffentliche Produkte, die ja kostenfrei abgegeben werden, dürfen ausschließlich Konsumprodukte für den Endverbrauch sein, dürfen also nicht von Betrieben als Produktionsmittel oder Rohstoffe erworben werden.

Dies aus dem Grund, damit die Preise der produktiven Produkte tatsächlich die in ihnen steckende Arbeitszeit ausdrücken.

Umsetzung:

seppeljordan commented 2 years ago

Ich habe mir den Issue gruendlich durchgelesen und finde es verstaendlich.

sloschert commented 2 years ago

Super, leider muss ich nochmal etwas ausholen, weil die Implementierung der öffentlichen Pläne weitergehende Änderungen notwendig macht, um zu verhindern, dass ArbeiterInnen unterschiedliche "Stundenlöhne" bekommen, nur weil ihr Betrieb zu unterschiedlichen Zeiten seinen Plan eingereicht hat.

(Negativ-Szenario: Dienstag: Betrieb A reicht seinen 1-Jahres-Plan ein. Der Auszahlungsfaktor beträgt 1, da es keine öffentlichen Betriebe gibt. Die Beschäftigten erhalten den vollen Lohn für das ganze Jahr upfront. Mittwoch: Der öffentliche Betrieb B reicht seinen Plan ein. Donnerstag: Betrieb C reicht seinen Plan ein. Der Auszahlungsfaktor beträgt nur noch 0,5. Die Beschäftigten von Betrieb C bekommen nur die Hälfte ihrer Stunden bezahlt. -> Nur Betrieb C finanziert den öffentlichen Betrieb, von dem aber alle Betriebe profitieren.)

Die folgenden Gegenmaßnahmen sind nötig:

a) Es gibt fixe Termine (z.B. täglich um 10 Uhr morgens), an denen neu eingreichte Pläne aktiviert werden, abgelaufene Pläne deaktiviert werden und Credit gewährt wird. Eingereichte Pläne werden also nicht mehr umgehend nach Einreichung aktiviert, sondern erst zum nächsten Termin. Genehmigung oder Ablehnung der Pläne kann wie bisher unmittelbar nach Einreichung geschehen.
b) Um 10 Uhr gibt es also eine Übersicht über alle aktiven Pläne, aus denen nun der tagesaktuelle Auszahlungsfaktor berechnet werden kann. c) Betriebe erhalten ihre Arbeitszertifikate nicht mehr im Voraus für den ganzen Plan-Zeitraum, sondern täglich, nachdem der Auszahlungsfaktor berechnet wurde.

Anmerkungen:

Umsetzung:

@seppeljordan @mi01 Spricht aus eurer Sicht etwas gegen die Einrichtung eines entsprechenden serverseitigen cron-jobs? Oder gibt es bessere Möglichkeiten, so ein event zu triggern?

seppeljordan commented 2 years ago

Die Tatsache, dass die Genehmigung der Plaene durch einen cronjob getriggert wird, sollte als Implementationsdetail behandelt werden. Der use-case selbst sollte also nichts darueber wissen, dass "er ein cronjob ist". Man koennte sogar einen Schritt weiter gehen und den use case so implementieren, dass er beliebig oft ausgefuehrt werden kann, ohne dass sich das negativ auf das gewuenschte Verhalten auswirkt, z.B. in dem geschaut wird, welche Plaene ueberhaupt in Frage kommen und nur diese beruecksichtigt werden. Dann waere es egal, ob der use case erst um 10:30 ausgefuehrt wird, es wuerden nur Plaene beruecksichtigt werden, die vor 10 Uhr eingereicht waren.

Um deine Frage also zu beantworten: Meiner Meinung nach spricht nichts gegen einen crobjob.

sloschert commented 2 years ago

Kurzes Update: Ich hoffe heute oder morgen einen PR zu diesem Issue zu veröffentlichen. Wird ein etwas größerer PR.

sloschert commented 2 years ago

Habe jetzt auch den cronjob (Heroku Scheduler) eingerichtet. Müsste jeden Tag um 8 a.m. UTC die synchronisierte Planaktivierung triggern.

Es gab leider nicht die Möglichkeit, MESZ auszuwählen. Aber ewig werden wir ja vermutlich nicht auf Heroku bleiben, von daher denke ich dass es erstmal ok ist.