Machbarkeitsanalyse eines Projektes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Faranos
User
Beiträge: 3
Registriert: Dienstag 12. Dezember 2017, 13:24

Hallo zusammen,

ich bin der Peter und neu im Forum sowie in der Welt des Programmierens =)

Ich wollte euch hier einmal fragen, ob ein Vorhaben welches ich habe, so durchführbar ist mit Python.

Programmieren ist für mich wie gesagt sehr neu. Daher bin ich bei Python gelandet, da es mir ein bekannter empfohlen hat, soll wohl besser verständlich sein als manch andere Sprachen ;-)

Nun mal zu meinem Vorhaben:
Wir haben hier an der Arbeit eine Excel Liste. Aus dieser Liste werden Preise berechnet. Die Preise ergeben sich aus den verschiedensten Faktoren, um mal einige zu nennen:
- Land
- Postleitzahl
- Menge der Ware in tausend Stück
- Farbe
- Schwierigkeit der Herstellung (z.B. mehrere Durchläufe beim Lackieren)
- Kundenart (A, B, C und D Kunde)
- Lieferkosten

Diese Daten werden derzeit in einer riesigen Excel Tabelle gepflegt. Da ich mal was mit IT zu tun hatte meinte der Chef, ob man das nicht Programmieren könnte. Da ja wie immer alles Geld kostet, soll ich mich mal um die Materie kümmern.

Mich würde nun interssieren, ob man das mit Python verwirklichen kann.

ich habe mir gedacht, dass man einfach ein paar einzelne Tabellen mit den Werten die oben beschrieben sind hat.
Dann noch ein Hauptprogramm wo man dann die Werte einträgt, mit denen man sich die Zahlen aus den Tabellen zieht.
Wenn man alles eingetragen hat, dann noch MwSt Satz und ggf. Rabatt/Skonto eintragen und man bekommt den Endpreis den man dem Kunden mitteilen kann.

Ich habe gesehen, das es in Python import Funktionen gibt. Daher würde ich gerne Textdokumente verwenden, in denen die Werte drin stehen und somit auch bei Bedarf schnell verändert werden könnten.

Das ganze sollte natürlich am besten als Ausführbares Programm an jedem Rechner laufen, sodass nicht jeder Verkäufer und der Chef eine Python Entwicklungsumgebung braucht ^^


Also hier jetzt erstmal die Frage, ob das gehen würde im allgemeinen und ob mein Ansatz schon einmal in die richtige Richtung geht =)

LG

Peter
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Grundsätzlich m. E. machbar. Wenn ich mich nicht ganz täusche, dann sind das Einstiegsprogrammieraufgaben, die du da anpeilst.

Es gibt https://openpyxl.readthedocs.io/en/default/ (openpyxl), mit dem du direkt auf Basis von Excel arbeiten kannst.

Nicht mehr Einstieg ist folgendes: Der Zugriff von mehreren Rechnern auf die Daten erscheint mit schwierig. Ich vermute, dass ein Webinterface mit einer Lösung im Intranet Sinn macht, so etwas habe ich aber noch nicht gemacht.

Insgesamt ist das, wenn du noch keine Erfahrung mit Python oder der Programmierung hast, nicht trivial und du wirst das nicht in sehr kurzer Zeit fehlerfrei hinbekommen. Normalerweise würde ich für jede Etappe einiges an Zeit einrechnen (Etappen könnten dann z. B. sein: Python lernen und verstehen, Excel-Datei öffnen und lesen, Webinterface und Datenhaltung).

Wenn du einiges an Zeit mitbringst und eine Lösung nicht zeitnah verfügbar sein muss, könntest du das nach und nach auch alleine hinbekommen. Ich würde mir in der Firma einen Mitstreiter suchen, der auch Python lernen möchte.

Wenn es zeitnah verfügbar sein soll und direkt produktiv einsetzbar sein muss, dann schau ggf. mal hier vorbei: http://www.clark-consulting.eu

Das ist der Maintainer von openpyxl. Es könnte sein, dass ein externer Auftrag für die Aufgaben kostengünstiger ist, als wenn dein Chef dir die Einarbeitung finanzieren muss. Ob jemand bei CCR Interesse an dem Problem hat, kann ich nicht sagen.
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

@Faranos: Python ist eine allgemeine Programmiersprache, es geht also alles, was nicht zu hardwarenah ist. Was Du genau tun willst, geht aus der Beschreibung nicht wirklich hervor. Für Bestellungen benutzt man normalerweise eine Datenbank und nicht Excel. Wenn es nur um Berechnungen aufgrund von Parametern geht, kann auch eine Excel-Tabelle akzeptabel sein, wenn die schon vorhanden ist. Zum Lesen gibts das Modul openpyxl. Daten als Python zu kodieren und zu importieren solltest Du dagegen nicht.

Was das Verteilen des Programms anbelangt, ist das immer ein großer Aufwand. Daher geht der Trend zu Web-Applikationen, gerade wenn Daten hin und wieder aktualisiert werden müssen. Ist in Python einfach mit Webframeworks (z.B. Flask) möglich, könnte in Deinem Fall aber auch einfach eine statische Webseite sein, wo auf dem Client die Berechnung mit Javascript gemacht wird.

Vorteil von Web: man kann relativ einfache schöne Formulare gestalten, hat kein Problem mit Updates, läuft überall ohne Installation und ist wartungsarm.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Ich habe gesehen, das es in Python import Funktionen gibt. Daher würde ich gerne Textdokumente verwenden, in denen die Werte drin stehen und somit auch bei Bedarf schnell verändert werden könnten.
Das `import` Statement dient zum importieren von Python Modulen, Klassen, Funktionen etc., nicht für Daten. Wobei Python natürlich auch Text-Dateien lesen kann. Das ist IMHO aber mit div. Nachteilen verbunden, die von Sirius3 schon genannte Datenbank ist hier prädestiniert.
Das ganze sollte natürlich am besten als Ausführbares Programm an jedem Rechner laufen, sodass nicht jeder Verkäufer und der Chef eine Python Entwicklungsumgebung braucht
Eine Entwicklungsumgebung so wie so nicht, es reicht der Python-Interpreter. Die Frage wäre nur, wie du sicherstellen willst, dass alle Rechner mit dem gleichen Datensatz arbeiten.

Ich würde das auch als Web-Applikation umsetzen, die dann im Intranet der Firma läuft. Vorteile: siehe Post von Sirius3.

Also umsetzbar ist das (als Webapplikation) locker in Python - und wenn man Python (und HTML, CSS, SQL und ggf. JavaScript) kann auch relativ zügig.

Wenn du erst Python lernen etc. musst, dann müsste du noch ein paar Monate Zeit & hohe Lernbereitschaft mitbringen :-)

Gruß, noisefloor
Faranos
User
Beiträge: 3
Registriert: Dienstag 12. Dezember 2017, 13:24

Hallo ihr drei,

erstmal vielen Dank für eure schnelle Antworten.

So mal direkt noch kurz zu mir: Programmieren würde ich mich als absoluter Neueinsteiger bezeichnen. Ich hatte mal 2 Semester java (bzw. Scala) und hab mich da eher so durchgemogelt. PHP, HTML und CSS war auch mal ein Semester vertreten aber davon ist nicht mehr viel hängen geblieben =(
SQL hab ich dann durch Datenbanken etwas mehr mit genommen da ich das auch irgendwie logischer fand ^^

Zeitlich ist für das Projekt so ein Zeitraum von 3-4 Monaten geplant, halt neben der normalen Arbeit immer mal ein bisschen.

Hab auch schon an einen Python Kurs gedacht. Die meisten gibt es jedoch nur Online und ich weiß nicht ob die so gut sind wie ein Kurs an einer VHS beispielsweise. Da ich in kleinen Stadt wohne mit fast nichts anderem außer Wald drum herum, gibt es die nächst größere Stadt wo man so etwas antreffen könnte (Erfurt) erst nach ca. 1 Stunde Autofahrt =(

Daher würde ich eher versuchen es mir selber bei zu bringen. Habe auch ein Buch dazu gefunden "Einführung in Python 3" von Bernd Klein

An eine Datenbank habe ich auch schon gedacht, das ganze dann aber wieder verworfen.

An ein Webinterface hatte ich auch schon gedacht. Haben zwar kein Direktes Intranet aber da lässt sich so eine Seite ja schnell in HTML basteln und zur Verfügung stellen auf dem Server =)

openpyxl werd ich mir morgen mal ansehen. Hoffe ich bekomme auch bald die Tabelle mit den ganzen relevanten Daten.
Mir wäre es auch lieber wenn ich alles in Excel machen könnte. Ist zwar auch nicht ganz Übersichtlich aber damit würde ich besser klar kommen. Chef will das aber nicht, er möchte ein Programm.
Was Du genau tun willst, geht aus der Beschreibung nicht wirklich hervor.
In unserer Firma stellen wir Verschlüsse für Flaschen her. Die Kunden kommen aus aller Welt und nehmen mal mehr mal weniger ab. Für eine richtige Wirtschaftliche Preisberechnung wird nun das Programm benötigt.

Der Preis berechnet sich nach den verschiedenen Faktoren, wieviel Stück nimmt er ab und vor allem wie aufwendig ist der Verschluss (wird also noch ein Bild oder Schriftzug drauf gedruckt, wird was eingestanzt, bekommt eine Folienverzierung etc.).
Dann ist auch wichtig wo der Kunde wohnt bezüglich MwSt Berechnung. Kunden gibt es in verschiedenen Klassifizierungen je nachdem wie viel sie abnehmen oder nicht. Es kommt auch drauf an welches Dichtungssystem verbaut wird.
Faktoren wie Spritgeld, Liefer- und Lagerkosten fallen natürlich auch rein, genauso wie der Faktor Zeit für einen Auftrag.

Nun gab es eine richtig schlechte Variante wie das ganze aus diesen Werten berechnet wurde. Das soll nun verbessert werden. Da der Chef kein Freund von Excel ist, soll hierfür ein Programm. Da Auftragsprogrammierung aber Geld kostet, soll ich mich neben der Arbeit drum kümmern wenn ich es hinbekommen sollte.

Hoffe ich konnte es nun besser darstellen =)

LG
__deets__
User
Beiträge: 14529
Registriert: Mittwoch 14. Oktober 2015, 14:29

Auf die Gefahr hin hier der Party-Puper zu sein - das wird nix. Selbst wenn ihr einen Profi anheuert, der in den "naechsten 3-4 Monaten so neben der Arbeit bei mal ein bisschen" an diesem Programm arbeitet, geht das hoechstwahrscheinlich in die Hose. Von jemandem, der beim Programmieren lernen schon geschummelt hat, kann man das nicht erwarten, das mit so wenig Vorkenntnis und Zeit hinzubekommen. Selbst wenn du Vollzeit daran arbeiten solltest, halte ich das fuer amitioniert.

Alleine schon die Modellierung der Datenbank und der Geschaeftslogik ist signifikante Arbeit. Preisberechnung fuer unseren Webshop - da haben wir mal zu 4 Programmierern 3 Monate exklusiv dran gearbeitet. Das war *nur* die Logik, die wir schon hatte, sauber wieder aufzusetzen. Weboberflaeche und Datenbank waren da schon gegeben.

Excel hat seine Nachteile. Aber es ist ein verdammt maechtiges Tool, fuer das einen Ersatz herbeizuprogrammieren (der dann auch noch flexibel ist, wie zb "oh, Kunde Pasulke ist Vater geworden, da geben wir noch mal 5% Rabatt fuer gute Geschaeftbeziehungen") alles andere als trivial ist.
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

@Faranos: Da will ich __deets__ ausdrücklich zur Seite stehen, um euch vor Schaden zu bewahren. Ihr unterschätzt fachliche Anforderungen sowie erforderlichen Zeitaufwand.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

sehe ich auch so: alles, was "geschäftskritisch" ist, macht man nicht "nebenher". Nehmen wir mal an, es läuft ganz blöd und da sind signifikante Fehler in der Geschäftslogik, die (erst mal) keinem Auffallen - dann fährt die Firma vielleicht mal völlig unnötiger Weise Verluste.

Wenn du programmieren lernen wolltest, wäre das zwar eine schöner Aufhänger für die Motivation, was umzusetzen. Aber nicht, um das später produktiv umzusetzen. Für so was gibt es Leute, die das beruflich machen, mit denen man ein Lasten- / Pflichtenheft vereinbaren kann und ggf. noch eine Wartungsvertrag für die Software abschließen kann.

Ehrlich gesagt finde ich den Ansatz von deinem Chef auch ziemlich blauäugig. Sagen wir mal, du bekommst das akzeptable hin, die Software läuft und die wechselst #ausgründen die Firma. Dann hat die Firma ein Stück Software, was keiner kennt und warten kann. Klar gibt's auch dafür Leute, die so was durchblicken und dokumentieren können - die sind aber in der Regel auch entsprechend teuer.

Ich habe zwar auch diverse Tools in meiner Freizeit programmiert, die wir intern nutzen - aber keines davon ist geschäftskritisch. Wenn ich bzw. die Tools weg wären, dann würden ein paar Sachen zwar 5-15 Minuten längern dauern - aber es würde nicht die Produktivität bzw. den Umsatz gefährden.

Gruß, noisefloor
Faranos
User
Beiträge: 3
Registriert: Dienstag 12. Dezember 2017, 13:24

Guten morgen,

aufgrund von Weihnachtsfeiern kann ich erst jetzt antworten =)

Hmm scheint ja dann doch schwieriger zu werden als gedacht.

Ich werde dann nächstes Jahr mal sehen und es mit excel Tabellen versuchen.

Habt schon recht damit, dass es schon sehr Geschäftskritisch ist. Wenn da was nicht klappt gibts noch mehr ärger als wenns kein Programm ist =)


Ich danke euch in jedem Falle für eure Hilfe und die gute Einschätzung der Lage.

Vielleicht werde ich ja mal mit einem nicht so schweren Projekt betraut und werde dann einmal in die Welt des Programmierens eintauchen, Ideen hab ich immer für sowas nur an der Motivation mangelt es manchmal ;-)


Mit freundlichen Grüßen

Peter
Antworten