Kategorien
Softwareentwicklung

Was ein Vertrag zur Softwareentwicklung enthalten sollte / Checkliste

Kategorien
Softwareentwicklung

Use Cases / Wireframes

  • Beschreibe genau, wie die Seiten aussehen als [[http://de.wikipedia.org/wiki/Anwendungsfall][Use Cases]], am besten erstellt du einfache Wireframes z.B. mit [[http://pencil.evolus.vn/en-US/Home.aspx][Pencil]], damit der Entwickler versteht wie die Seite aussehen soll:
    • Beispiel Screen und Beschreibung: IP-Freischaltung des OT Die Oberfläche könnte in etwa wie im folgenden Scribble aussehen. Abhängig von den Anforderungen aus Punkt 1. Zugänglich ist die Oberfläche nur für das Elsevier-Büro (Redaktionssystem) Die Einträge können nach „Freigeschaltet bis“-Datum oder Schulnamen sortiert werden. Ist das FreigeschaltBis-Datum abgelaufen, so ist der IP-Zugang nicht mehr möglich. Durch Ändern des Datums ist der Zugang wieder verfügbar. Durch Farben sollen aktive und inaktive Einträge ersichtlich sein.
  • Erstelle [[http://de.wikipedia.org/wiki/Anwendungsfall][Use Cases]] als Text und als [[http://de.wikipedia.org/wiki/Anwendungsfalldiagramm][Use Case Diagramm]] oder [[http://de.wikipedia.org/wiki/Anwendungsfall_%28UML%29][Diagramme (UML)]]
    • UseCases als Text könnten so aussehen (genaue Beschreibung sollte vom Aufragnehmer im Pflichtenheft erfolgen, vorformulieren kann aber nicht schaden)
      • Vorbedingungen
      • Nachbedingungen im Erfolgsfall
      • Nachbedingungen im Fehlerfall
      • Auslösendes Ereignis (User clickt…)
      • Hauptszenario (Was muss der User machen, welche Bedingungen müssen erfüllt sein (Pflichtfelder)..)
      • Weiterführende Informationen (z.B. Verweis auf andere Usecases)
      • Testszenario
      • kurz erläutern auf welcher technischen Basis die Umsetzung der einzelnen Teilkomponenten geschieht (jsp/Javascript usw)
Kategorien
Softwareentwicklung

Produkt-Entwicklungsprozess (kurz)

  • Produktmanager hat eine Idee
  • Freigabe der Projektierungsphase durch Sponsor (Geldgeber)
  • Absprache mit Projektmanagement
  • Erstellung Lastenheft
    • Lastenheft Review
  • Erstellung Pflichtenheft (durch Agentur)
    • Pflichtenheft muss! von der Gliederung mit Lastenheft zusammenpassen, sonst Abgleich schwierig
    • Jeder Punkt muss ausformuliert werden, nur dann kann man sicher sein, dass die Agentur verstanden hat, was gewünscht wird
  • Erstellung einer Roadmap ([[http://de.wikipedia.org/wiki/Gantt-Diagramm][Gantt]]-Chart) – Wer macht was bis wann
    • Darauf basierend eine Aufwandsschätzung in Tagen und Euro
    • Typisches Gantt Chart
  • Finale Freigabe des Sponsors anhand der Schätzung
  • Umsetzung
  • Testphase
  • Onlinegang
  • Nachkontrolle
  • Abnahme
Kategorien
Softwareentwicklung

Vorüberlegungen zum Produkt

  • Usability gegeben ?
  • Wer testet / hat getestet / was / gibt es ein Protokoll dazu?
  • Funktioniert Produkt in allen gängigen Betriebssystemen?
    • Welche? Windows 98, XP, Vista, 7, (32 Bit, 64 Bit), MacOsX, Linux
  • Funktioniert Produkt in allen gängigen Browsern (und Versionen)?
    • Internet Explorer 7,8,9, Firefox (Windows + Mac + Linux), Safari (Windows + Mac), Chrome (Windows + Mac + Linux), Opera [[http://www.webhits.de/deutsch/index.shtml?webstats.html][Welche Browser nutzen die Leute gerade]]
    • Mobile Browser: Ipad, Iphone, Android usw
  • Flash sollte so wenig wie möglich verwendet werden, da nicht auf Iphone
    • Ausnahme für Videodarstellung
  • Welche mind. Bildschirmauflösung ist nötig [[http://www.webhits.de/deutsch/index.shtml?webstats.html][Welche Bildschirmauflösung nutzen die Leute gerade]]
  • Performance
    • Lädt die Seite schnell (sollte nicht mehr als 2 Sek komplett! brauchen / Seite)
    • Wieviele User hält die Seite aus, wie wurde da getestet? (Protokoll)
    • Ist die Seite sicher gegen typische Sicherheitslücken wie [[http://de.wikipedia.org/wiki/SQL-Injection][SQL-Injection]] , XXS usw? (Protokoll) [[http://www.heise.de/security/artikel/Sicherheit-von-Webanwendungen-270870.html][weitere Sicherheitslücken]]
      • Ist die Datenbank nach aussen mit einer Firewall gesichert (Portscan) ?
  • Sind spezielle Plugins nötig, wenn ja, unter welchen Betriebssystemen / Browsern gibt’s die?
  • Wenn die Seite Popups öffnet: Merken Toolbars das und blockieren diese? Das kann so programmiert werden, dass das kein Problem ist
  • Kunden Nutzen in einem Satz beschreiben – Geht das? Wenn nicht, wie soll Kunde das dann verstehen?
    • Welches Bedürfnis wird gedeckt
    • Lieber kleine Schritte als 1 grossen
  • Zielgruppe definieren
  • Kosten grob schätzen optimistisch | realistisch | pessimistisch
  • Geschäftsmodell / Einnahmen definieren
  • Produktmanager ist auch nachher für Produkt verantwortlich
  • Webprodukte enden nicht / nie !
  • Gewünschter Endtermin?
    • Point of No Return (bis wann muss man wissen, ob das Produkt was wird, um z.B. Printaufträge oder Werbeschaltungen noch stoppen zu können)
  • Aufwand für Lastenhefterstellung grob schätzen
    • Soll Prototyp gebaut werden? / Wireframes – Dann auch Kosten mit rein
Kategorien
Softwareentwicklung

Wasserfall vs Scrum

Wasserfallmodell

  • die meißten Projekte wurden bzw werden (immer noch) in der SW-Industrie nach dem [[http://de.wikipedia.org/wiki/Wasserfallmodell][Wasserfallmodell]] abgearbeitet.
  • neuere Projekte laufen nach [[http://de.wikipedia.org/wiki/Scrum][Scrum]]
  • Der Unterschied liegt hauptsächlich darin, dass im Wasserfallmodell oft unendlich viele Features angesammelt und dann in einem Schwung umgesetzt werden. Das macht es schwierig, zu kontrollieren wie der Stand ist, was man sich wünscht usw. Nach Projektbeginn werden neue Anforderungen nur unter großem Aufwand integriert, wenn überhaupt.
    • Bei Scrum dagegen wird in kleinen Schritten das Produkt erarbeitet und immer sofort online gestellt. Zudem wird täglich ein Meeting gehalten.
  • Egal welche Methode verwendet wird, die Erkenntnis, die sich daraus ergibt, ist immer ganz einfach:

Scrum

Eigentlich ist Scrum das gleiche wie Wasserfall nur eben kein großer Wasserfall, sondern ganz viele kleine Stufen. Es kann also sein, dass das Wasser am Ende aus der Ferne betrachtet auch gerade runter fällt. Es kann aber auch sein, dass sich plötzlich eine Richtungsänderung anbahnt… Das ist der Vorteil. Man kann schneller reagieren.

Wasserfall vs Scrum
Wasserfall vs Scrum
  • Definiere kleine Schritte genau und gehe online
    • Vorteil 1: Kunde erhält ein klares, eindeutiges und funktionierendes Produkt
      • Rede viel mit den Leuten, die deinen Wunsch umsetzen, denn was du nicht genau definiert hast, wird nicht so umsetzt, wie du es gerne hättest
    • Vorteil 2: Bei jedem neuen Relase (neue Version) kannst du deine Kunden anschreiben (Marketing)
  • Baue das Produkt modular auf, damit du Kunden jedes Modul einzeln verkaufen kannst
  • Verkaufe den Kunden zeitliche Zugänge
    • Schenke ihnen den 1 Monat: Kunden können testen, senkt die Stornorate und ist ein gutes Werbemittel
  • Soll das Produkt Einzelkunden, Institutionen oder beides erreichen?
    • Wie soll dann jeweils das Kundenprofil, die Ansprache, welche Inhalte usw. funktionieren?
  • Wie und wann soll auf neue technische Änderungen reagiert werden (Folgeentwicklungen)?

Wo sollte das festgehalten werden?

Softwareerstellung per Vertrag, eine Checkliste