Wie werden (grössere) Projekte geplant?



  • hi leute,

    ich brauche mal eure hilfe:

    wie werden programme/projekte geplant ?

    kleinere sachen kann man ja als ein-mann armee ja noch spontan anfangen und drauflos programmieren

    aber was ist mit etwas grösseren sachen ?
    oder wenn auf einmal mehrere leute mitarbeiten?

    wie plant man sowas, wie geht man daran?
    wie weit plant man, plant man nur den aufbau, die abhängigkeiten von klassen, die member und methoden oder sogar auch den (genauen) inhalt/ablauf von methoden und funktionen?

    im besonderen hinblick auf spiele würde mich das ganze interessieren...
    ich versuche zurzeit mir ein kleines framework zu schreiben für directx (so nach dem motte mit 3 zeilen directx initialisiert haben und schon ein dreieck an position xy auf dem bildschirm gezeichnet haben) um mich später mal mit pacman auseinander zu setzen

    ich hab mich schon ein paar mal mit nem blatt papier hingesetzt und gesagt jetzt planst du, aber das ist in 3 rechtecken mit je nem namen drauf geendet und ich bin doch schon iweder and er tastatur am fleissig code tippen ohne plan...

    es heisst ja so schön: 1 stunde denken erspart 6 stunden programmieren...

    aber wie ?
    wo gibts hilfe dazu, artikel oder sonstwas

    mfg mosho



  • Das Stichwort lautet Softwaretechnologie.



  • Such mal nach Stichworten wie Architektur, Agile Entwicklung ( Scrum, Extreme Programming ) und Wasserfallmodell. Da sollten sich einige Informationen finden lassen. Und ich rate dringenst vom Wasserfallmodell ab.

    Gruß Kimmi



  • Modularisieren und Schnittstellen definieren.



  • Stichworte:

    Prozessmodelle, Lastenheft, Pflichtenheft, UML, Strukturierte Analyse (SA), Strukturierter Entwurf (SD).

    Google Suche nach UML (Unified Modeling Language) sollte dir Antworten geben, das ist heute Standard für Objekt orientierte Entwicklung. SA/SD ist nur für funktionale Programmierung geeignet.

    Ich weis nicht wie gerne die Uni das sieht wenn man ihre Materialien online postet aber das ist mir gerade mal egal. Hier die Folien zu der Vorlesung Software Entwicklung 2, welche sich fast ausschließlich mit Projektplanung beschäftigt:

    http://seda.cs.uni-kl.de/teaching/se2/ss2010/material/vorlesung/



  • Gar nicht.



  • knivil schrieb:

    Gar nicht.

    Da stimme ich zu.



  • RedPuma schrieb:

    Stichworte:

    Prozessmodelle, Lastenheft, Pflichtenheft, UML, Strukturierte Analyse (SA), Strukturierter Entwurf (SD).

    Google Suche nach UML (Unified Modeling Language) sollte dir Antworten geben, das ist heute Standard für Objekt orientierte Entwicklung.

    Du hast die Uni noch nicht verlassen. Stimmts?



  • Egal, ob ein Projekt klein oder gross ist und wieviele daran mitwirken, gilt:

    1. Planung --> Überschaubare Teilaufgaben und daraus Module bilden.
    2. Module offen halten für Änderungen und Erweiterungen --> dürfen sich nicht gegenseitig ins Gehege kommen.
    3. Testmöglichkeiten sowohl für die Entwicklung als auch die Wartung in die Programmierung integrieren --> Debug reicht nicht, Testprotokoll (Datei) ist besser.
    4. und und und ...

    Bedenke: Zum Start eines Projektes sind oft nicht alle Zielsetzungen bekannt oder Details noch ungekärt. Man muss aber dennoch das Projekt beginnen. Nicht selten sagt oder präzisiert ein (auftraggebender) Anwender seine konkreten Wünsche erst, wenn das Projekt schon mal im Ansatz läuft und was zu sehen ist.

    Begreife: Ein gut geplantes Projekt ist ein Prozess über die Lebensdauer des Projektes.

    Wie man das alles macht, ist Erfahrung oder Firmware. Für schlechtes Nachdenken gibt es kaum Unterstützung, auch wenn sowas angeboten wird



  • knivil schrieb:

    Gar nicht.

    Das wollte ich bei der Frage auch sofort als Antwort schreiben -)

    Tja, die Realität sieht leider anders aus als es uns die Lehrbücher angeben...



  • Kommt doch auch darauf an, was man als Planung ansieht? "Gar nicht" kann ich mir gar nicht vorstellen. 😃 Im ernst. Eine Planung gibt es immer! Selbst wenn diese lautet "Wir proggen jetzt eine Textverarbeitung in Sprache X, mit 2 Mann, für Windows und Mac OS X und wir wollen in 6 Monaten fertig werden.". Dann sind das doch schon mal Pläne. 🙂 Wie gut und durchdacht sie sind, steht auf einem anderen Blatt.

    Manchmal muß man auch nicht jedes Projekt genau planen, wenn die meisten Mitwirkenden schon Erfahrung mitbringen. Ich muß nicht jede Klasse planen. Ich habe schon so viele Projekte hinter mir, da werde ich nicht noch ein UML-Diagramm für meinen Projektleiter vorher machen. Auch wenn er das gerne sehen will. Aber ich weigere mich!

    Ich weiß aber aus Erfahrung, das ich gefälligst Unittests vorher schreiben muß. Dafür brauche ich auch keine Planung. Die Unittests veranlassen mich implizit dazu, zu planen und mir Gedanken zu machen.



  • @Artchi

    Und was lernt uns das?

    Zielgerichtet Denken und danach die Planung und die Realisierung von SW-Projekten auszurichten ist mehr als Proggen. Aber man muss auch den noch unerfahrenen Progger einbinden können und ihm Hilfestellung geben, seine Arbeit zu machen. Die Erfahrung der anderen muss er lernen.



  • Als ich noch beruflich Webzeugs entwickelt habe, in einer Zeit wo noch nicht sicher war ob aus PHP was wird ;), da hätte ich mir wenigsten ein wenig Planung gewünscht.

    Es gab zwar Meetings und ein paar Notizen und auch mal ein kleines Pflichten-/Lastenheft, aber so wirkliche Planung so wie ich das mal in ein paar Projektmanagement Bücher mir angelesen hatte war da fehl am Platze. Es hieß immer "schnell schnell schnell", "dafür haben wir nicht viel Zeit", "Der Kunde zahlt das nicht".

    Das habe ich in den letzten 10 Jahren bei 3 Arbeitgebern so erlebt und bin dann komplett aus der Branche ausgestiegen. Jetzt programmieren ich nur noch aus Spaß wie früher als Jugendlicher und bin dabei wieder in meinen ursprünglichen Beruf zurück zu gehen. Das Geld ist das gleiche nur habe ich nach Feierabend auch Feierabend 🙂

    Gut das ist natürlich keine Lösung für alle die den Job lieben. Da hoffe ich dass das Bewusstsein für Planung, Umsetzung, Test, Abgabe weiter wächst, und ich bin mir auch sicher, dass ganz wenige einen Arbeitgeber hat der schon mal was von Projektmanagement gehört hat.

    Ich habs aufgegeben, aber ich wünsche euch da mehr Glück.

    G hibbes



  • hibbes schrieb:

    ..."schnell schnell schnell", "dafür haben wir nicht viel Zeit", "Der Kunde zahlt das nicht". ... Ich habs aufgegeben, aber ich wünsche euch da mehr Glück.

    Ja, eine solide Planung zahlt der Kunde selten - soll doch gestern fertig sein!
    "Sie sind doch der Fachmann" und müssen verstehen, was ich will und besonders schwer scheint das wohl auch nicht!" Dieses Problem eines SW-Entwicklers ist nicht lösbar.



  • Garnicht planen macht sicher keiner, auch wenn es alle behaupten. Keiner der was größeres machen will setzt sich hin und tippt mal lustig Code los. Die meisten werden auch keine großen UML Diagramme oder ähnliches zeichnen. Erst mal sollte man sich klar sein, was man eigentlich will, das klingt einfach, ist aber oft das schwierigste. Dann überlegt man sich, wie die SW-Architektur grob aussehen soll. Danach teilt man das ganze in kleinere Module auf und dann geht es rund im Kopf mit allen möglichen Klassen, Algorithmen usw...



  • Klar plant jeder mehr oder weniger, aber so wie man eine Programmiersprache oder Algorithmen lernt so sollte man auch das Management dahinter lernen. Aber das macht ja keinen Spaß und lässt sich dem Chef oder Kunden schwer verkaufen.

    Wenn du denen erzählst dass das Programmieren vielleicht nur 30% der Zeit des Projektes ausmacht und der Rest für Gespräche, Planung, Tests und Dokumentation drauf geht wird dir nicht selten der Vogel gezeigt. Ich habe halt da große Probleme gehabt gleich loszulegen und vor allem konnte ich die Arbeitszeit nur ganz schwer einschätzen und das konnte ich bis zum Schluss auch schlecht. Nennt sich glaube ich Risikomanagement, wo man die ganzen Unbekannten versucht einzuplanen.

    Auf jedenfall macht mir das Programmieren wieder Spaß, da ich es jetzt ohne Druck und Stress machen kann. Mal schauen vielleicht vereine ich ja irgendwann meine beiden Berufe und mache was in Richtung Mikrocontroller oder es bleibt halt ein Hobby, auch nicht schlimm. Oder ich finde mal einen Arbeitgeber wo alles Hand und Fuß hat und wo ich nicht nur eine Codemaschine bin die irgendwelche Schnittstellen zwischen Webseite und alten Applikationen schaffen soll, und das in so wenig Manntagen(Wie ich das Wort hasse) wie möglich.



  • hibbes, du sprichst mir aus der Seele - habe gerade auch mehrere Projekte dieser Art...



  • Hey Th69, gut zu wissen dass es nicht nur mir so ging.

    Was zu dem ganzen Planungsvakuum noch hinzukommen kann sind Mitarbeiter die sooo groß den Mund aufmachen, aber selbst kaum Ahnung von ihrer Arbeit haben und auch nicht bereit sind mal selbst was auszuprobieren. Oder noch schlimmer Leute in Anzügen die irgendwann mal studiert haben, dann aber abgebrochen haben um das große Geld zu machen(ja ne is klar, sagt doch gleich ich war zu blöd zum Rechnen) aber meinen ihre gesammelten Fachausdrücke aus irgendwelchen Buzzwordlexikas wie aus einem Maschinengewehr auf den Kunden abschießen zu müssen und DU musst dass dann alles so umsetzen. Natürlich verdienen sie das dreifache und haben aber nicht halb soviel Ahnung wie du. Damit meine ich nicht deinen Fachbereich, sondern die Sachen die einen Berater und/oder Projektleiter ausmachen sollten. Sozialkompetenz wird anscheinend auch recht zufällig und sparsam auf die Menschen verteilt die dann mal Führungspositionen ausüben wollen.

    Naja egal, ausbaden musst du das dann und das für ein Drittel des Gehaltes und mit einem minimum an Freizeit ohne Handy vibrieren. Habe ich erwähnt das ich BlackBerry mit Exchangeanbindung hasse? 😃

    Ok ich hör jetzt auf hier. Das ist für mich erstmal History und mein Tinnitus wird auch langsam ertragbarer und ich habe gelernt mehr an mich zu denken. Ich habe zwar weniger Geld jetzt, aber mehr als ein Rechner ein paar Fachbücher und das Netz brauche ich nicht an Luxus und meine Familie sieht mich auch wieder entspannter.

    Nichts ist so wertvoll wie die Zeit die wir mit unseren Lieben verbringen können, dass ist der wahre Luxus im Leben.



  • *räusper*

    wir schweifen ab
    ihr beschreibt mir da eure arbeit bei irgendwelchen firmen und nicht die vorgehensweise beim software design

    jungs (und mädels), passt auf, ich bin grad aus der schule raus, bald wartet die FH auf mich, ich programmiere zum spass, aber ich möchte mehr können...
    directx, opengl, winapi usw. kann man sich anhand von ein paar büchern und paar websites gut selber aneignen, aber WIE PLANT MAN?

    wie fängt man ein projekt an?

    was sind module?
    schnittstellen sind für mich header dateien, oder liege ich da falsch (bzw in adneren sprachen sowas ähnliches wie header dateien)



  • Also ich habe zwar bei größeren Projekten noch keine Erfahrung, aber unser Informatiklehrer wollte uns dazu verdonnern, vor jedem Programm ein UML Diagramm anzulegen. Das mussten wir dann machen, doch zum Schluss habe ich einfach das Programm geschrieben und danach mein UML aus dem Code gewonnen, weil ich sowieso wieder alles anders mache. UML fordert, dass man bereits vor dem Programmieren weiß, welche private Member man haben wird. Das weiß ich nie!

    lg, freakC++


Log in to reply