Thomas: Projektplanung/Softwareplanung

Guten Morgen,

ich hoffe ihr könnt mir etwas auf die Sprünge helfen bzw. interessante Tipps und Links zukommen lassen.

Meine Projekte sind bis jetzt so entstanden wie wahrscheinlich bei sehr vielen Entwicklern (eigene Einschätzung) - Planlos!

Deshalb suche ich eine Art Leitfaden wie man eine Applikation am besten von Anfang bis Ende entwickelt. Sehr gerne mit dem Schwerpunkt PHP, falls das überhaupt relevant ist.

Wie fängt man an?, wie plant man?, welche Techniken verwendet man um hinterher einfach schön Programmieren zu können?

Gibt es da gute Webseiten zu dem Thema?
Google konnte mir bis jetzt leider noch nicht wirklich weiterhelfen. Wahrscheinlich fehlen mir einfach nur die richtigen Suchbegriffe.

Vielen Dank schon mal im voraus, für jegliche Hilfe

Grüße
Thomas

  1. Hallo Thomas,

    Meine Projekte sind bis jetzt so entstanden wie wahrscheinlich bei sehr vielen Entwicklern (eigene Einschätzung) - Planlos!

    Ganz ohne Plan fängt niemand an. Man sollte sich von Anfang an ein Ziel setzen und dieses nicht aus den Augen verlieren.

    Wie fängt man an?, wie plant man?, welche Techniken verwendet man um hinterher einfach schön Programmieren zu können?

    Es gibt kein richtiges oder falsches Anfangen. Jeder Entwickler geht anders an seine Projekte heran. Am wichtigsten ist aber IMHO eine gut durchdachte Verzeichnisstruktur.
    Im Bezug auf PHP- und kleinere Webprojekte gibt es von Nettuts einen guten Leitfaden.

    Mit freundlichen Grüßen,
    Steffen Bruchmann

    1. Hi,

      ich habe mir zur Planung eine kleine Webseite in PHP geschriben, dort kann man sich Aufgaben erstellen und diese verwalten. Zur Zeit ist es zwar noch nicht ganz fertig und auch noch nicht online, aber wenn du sowas auch gebrauchen könntest, bzw. sowas gemeint hast, würde ich es dir schonmal zeigen.

      Gruß
      Jackson

    2. Hallo

      Ganz ohne Plan fängt niemand an. Man sollte sich von Anfang an ein Ziel setzen und dieses nicht aus den Augen verlieren.

      So war das nicht gemeint. Das Ziel ist vorhanden. Der Weg zum Ziel ist ohne Plan.

      Im Bezug auf PHP- und kleinere Webprojekte gibt es von Nettuts einen guten Leitfaden.

      Danke schön. Werde ich mir ansehen.

      Mit freundlichen Grüßen,
      Steffen Bruchmann

      Grüße
      Thomas

  2. Servus,

    [...]
    Deshalb suche ich eine Art Leitfaden wie man eine Applikation am besten von Anfang bis Ende entwickelt. Sehr gerne mit dem Schwerpunkt PHP, falls das überhaupt relevant ist.

    Wie fängt man an?, wie plant man?, welche Techniken verwendet man um hinterher einfach schön Programmieren zu können?

    Hier gibt es unzählige verschiedene Vorgehensmodelle. Hier mal ein paar wenige Beispiele zum Füttern für Google:
    V-Modell
    Wasserfallmodell
    Agile Software Development (kein exakt spezifiziertes Vorgehensmodell)
    Scrum

    Die ersten beiden sind vollwertige Vorgehensmodelle für die Projektarbeit (nicht nur Softwareentwicklung). Sie sind aber auch recht schwergewichtig. Die letzten beiden sind leichte Ansätze, wobei bei der agilen Softwareentwicklung jeder etwas anderes versteht. Der eine sieht hier nur Pair Programming oder eXtreme Programming, der nächste versucht auch, agil seine Anforderungsanalyse zu bewerkstelligen. Scrum bringt ein bisschen mehr Struktur in die Agilität, ist aber immer noch sehr weich formuliert.

    In meinen Projekten (meistens Webanwendungen mit Java EE) läuft es wie folgt:

    1. Anforderungsanalyse (zu Fuß, mit Zettel und Stift, später evtl. mal UML). Hier ist es für mich wichtig, den Kunden zu verstehen. Was hat er, was will er, was ist ihm dabei wichtig (-> Priorisierung)
    2. Grobkonzeption: welche Technologien und welches Setup ist nötig / angebracht. Welche Komponenten benötige ich für die Software, wo sind die Schnittstellen, wie viele Leute werde ich etwa für wie lange benötigen.
    3. Feinkonzeption: am liebsten arbeite ich hier bereits mit dem Entwicklungsteam mit Scrum, weil ich den Auftraggeber immer im Boot habe. Dieser spezifiziert mit dem Team zusammen seine Anforderungen und diese werden gleich umgesetzt. Sobald eine Ladung (Sprint) abgenommen ist, gehts an die nächsten Punkte. Gearbeitet wird streng nach der Priorisierung des Kunden, so dass am Ende vom Geld auf jeden Fall ein Ergebnis da ist.

    Ich bin kein Freund von Überspezifikation und versuche, in meinen Anwendungen flexibel auf Änderungen zu reagieren. Ich arbeite allerdings auch in der Regel nicht an Projekten mit mehreren hundert Personenjahren, sondern bewege mich im Bereich von ein paar Personenjahren, also mittlere Webanwendungen.

    Man könnte hier noch sehr viel mehr schreiben (wurde auch schon gemacht, es gibt 1000e Bücher), aber die Stichworte sollten Dich bei Google schon weiterbringen.

    Schöne Grüße,

    Peter

    1. In meinen Projekten (meistens Webanwendungen mit Java EE) läuft es wie folgt...

      Genau in die Materie fuchse ich mich derzeit rein. Was siehst du hier aktuell als "Best practice"? JSF? Welche Frameworks überhaupt? IDE? Appserver? Deployment?

      Wohlwissend, welch weites Feld das ist: Stichpunkte reichen mir völlig ;-)

      Danke!

      1. Servus!

        Da fragst Du zur richtigen Zeit. :)
        Seit Ende letzten Jahres ist die Spezifikation zu Java EE 6 fertig. Ich vermute, wenn ich neue Anwendungen anfange, ist das ein heißer Kandidat. Entweder mit JSP / Servlets (durchaus aufgebohrt durch Spring Web MVC) oder JSF (das war mir bis jetzt immer zu schwergewichtig, da wollte ich die Version 2 in nächster Zeit mal ein wenig genauer betrachten). Betreiben würde ich das ganze dann auf einem Glassfish, weil der die neue Servlet-Spezifikation schon kann (das wird bei Tomcat ein wenig länger dauern, denke ich).
        Ansonsten ist in meinen Augen ein solides Setup immer noch Spring Web MVC mit per Spring verflochtenen POJOs und Hibernate als Persistenzframework eine gute Sache. In den letzten Jahren hatte ich diese Technologien fast immer mit dabei und bin sehr gut damit gefahren. Wenn die GUI fancy sein muss, dann habe ich mit jQuery gearbeitet (bzw. arbeiten lassen :) ), im letzten Jahr hatte ich aber Glück, dass meine Anwendungen "klassisch" waren. Betreiben tu ich das dann auch einem Tomcat 6, testen durchaus auch mal mit einem Jetty (wegen dem tollen Maven Jetty-Plugin).
        Und die Rahmenbedingungen: Maven für Build und Release (obwohl ich bei exotischen Anforderungen an den Build auch gerne noch meine Ant-Templates rauskrame), Eclipse als IDE, JUnit mit EasyMock zum Testen.
        Ich hoffe, ich habe genug Stichworte pro Texteinheit untergebracht (Java EE Bullshit Bingo sollte schon im ersten Absatz erreicht worden sein :) ).

        Schöne Grüße,

        Peter

        1. Danke für deine Ausführungen!

          Genau auf den frischen Jave EE 6 Zug mit Glassfish und JSF 2 bin ich mit meinen ersten Gehversuchen aufgesprungen.

          JSF 2 scheint mir ein sehr vielversprechender Ansatz zu sein, wenn auch mit Tücken.

          Insgesamt schon sehr anspruchsvoll finde ich es, überhaupt mal einen Überblick zu bekommen ;-)

          Nochmals Danke und Grüße

          1. [...]
            Insgesamt schon sehr anspruchsvoll finde ich es, überhaupt mal einen Überblick zu bekommen ;-)

            das stimmt allerdings. Ich bin jetzt seit 2003 im Bereich Java EE unterwegs (zuerst mit J2EE 1.4 und EJB 2.0 / 2.1, dann Java EE 5 und jetzt 6), und ich habe einige Sachen immer noch nicht produktiv verwendet (JSF), und andere nur am Rande oder selten (die tieferen Tiefen der JMS API muss ich noch erkunden).
            Aber je mehr man darüber lernt, desto interessanter wird es.

            Viel Erfolg!

            Peter

    2. Hallo Peter,

      super, vielen Dank für deinen Beitrag.
      Das bringt mich schon mal um einiges weiter.

      Auch deine Persönliche Vorgehensweise hat mir geholfen.

      Schöne Grüße,

      Schöne Grüße zurück.
      Thomas

      P.S.: Vielleicht findet sich im Netz auch irgendwo eine schöne Schritt-für-Schritt Anleitung der man Blind folgen kann :-)