Laden...

Projektaufwand - Zeit und Kosten - abschätzen

Erstellt von jaipur vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.196 Views
J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 10 Jahren
Projektaufwand - Zeit und Kosten - abschätzen

Hallo,

ich möchte mich in naher Zukunft gerne in ASP.NET einarbeiten. Folgendes Projekt habe ich vor Augen: Verwaltung einer Kundendatenbank inklusive der Produkte und deren Teilelisten.

Teil 1:
Die Daten stehen pro Kunde je Produkt in einer Textdatei. Diese Dokumente sollten man im Browser auswählen können, um diese Importieren zu können.

Teil 2:
Das "übliche" ...anzeigen, bearbeiten, löschen, einfügen aller Daten.

Teil 3:
Das ganze "natürlich" mit einer Benutzer- bzw. Rechteverwaltung. Ich möchte Benutzergruppen und Benutzer hinzufügen, und sicherlich auch die Rechte verwalten. Ich möchte gerne bestimmen welche Benutzergruppe was mit welchen Daten machen kann. Unter anderem soll ja nicht jede Benutzergruppe jeden Menüpunkt sehen können, so das auch eine andere Ansicht der Seite sichtbar ist.

Diese Punkte kann ich im Grunde genommen bereits mit einer C# Anwendung, ähm - einem Windows Programm - lösen. Aber selbst hier muss ich zugeben das ich das nicht in Zeit abschätzen könnte.

Also zum einem möchte ich jetzt erst mal abschätzen wie lange man für ein solches Projekt brauchen kann/darf. Und zum einen was denn so ein Projekt kosten würde, wenn ich das bei einem Softwarehersteller bestellen würde.

Software:
MS SQL Server 2012 Express
Visual Studio 2012 Express
Team Foundation Server 2012 Express

Hardware:
1x für den SQL
1x für den TFS

16.830 Beiträge seit 2008
vor 10 Jahren

Hi,

...wir sind im Web - daher sind folgende Punkte mit entscheidend bei der Planung:

  • HTML 4 oder HTML 5?

  • Muss ein Design entwickelt werden oder soll man ein fertiges kaufen?
    -> Sind bei einem gekauften Design Anpassungen nötig (und auch erlaubt)?

  • Welche Browser sollen unterstützt werden?

  • Müssen für bestimmte Browser-Versionen Funktionen des Designs angepasst werden bzw. Ersatzfunktionen bereitgestellt werden (unter IE9 kein (vernünftiger) HTML5 Support)?

  • Wie groß wird das ganze aufzogen? Wird ein Ein-Server-System ausreichen oder muss man Skalar (Verteiles System, Ausfallsicherheit?) denken?

Teil 1: Textdatei? Im ernst jetzt?

Teil 2: Du musst viel mehr beachten als bei einer Forms-Anwendung:* Du musst jede Eingabe validieren; man könnte schließlich auch Daten böswillig ohne Browser an den Server senden.

  • Du musst beachten, dass Du nicht unbedingt das bekommst, was Du erwartest. Nur weil Du einen Int32 erwartest heisst das noch lange nicht, dass Du es bekommst. Wie granular willst Du dies abfangen können?
  • Keiner verspricht Dir im Web, dass die Seiten in der Reihenfolge aufgerufen werden, in der Du es planst. Ergo musst Du Dir überlegen, wie Du die Daten zB aus einem Formular oder einem Wizard von Fenster A in Fenster B bekommst.
  • Es verspricht Dir auch keiner, dass ein Formularfenster jemals abgesendet wird. In beiden Fällen will ich sagen: überleg Dir ein System, wie Du Daten sauber hälst ohne die Sessions voll zu müllen (was Anfänger in diesem Bereich sehr sehr gerne tun).

Teil3: Mandantensystem: jeder Mandant hat seine eigenen Benutzer und seinen eigenen Content in seiner eigenen Datenbank(-datei).

Wie lange Du dafür brauchst: zwischen 3 Stunden und 3 Jahren.
Je nachdem wie fit Du mit dem Umgang von ASP.NET (WebForms? MVC?) bist, ob Du die Kniffe und Tricks drauf hast und um was Du Dich alles selbst kümmern musst (Design, Business-Logik...).

Allein wegen dem ganzen wegfallenden Kicki-Bunti aus der Desktop-Welt wirst Du Dich bei der Entwicklung für die Oberfläche massiv verschätzen - kann sowohl um den Faktor 1000 nach Oben wie nach Unten streuen.

Beim Thema Rechtemanagement musst Du auch überlegen auf welcher Basis Du das ganze aufziehst: eigenes Rechte-System oder dieses rollenbasierte System von ASP.NET?
Zweiteres finde ich unbrauchbar (da zB nicht Mandantensystem-fähig) und erzwingt einen SQL Server, der dafür ein festes (und für mich unbrauchbares) Schema definiert. Wahrscheinlich wirst Du vom Loginsystem bis zur Sessionverwaltung des Mandantenbenutzers alles selbst machen müssen (und auch dafür sorgen, dass es sicher umgesetzt ist).
Bei sowas muss man dann zusätzlich auch die Integration von SSL beachten; wenn mans vorher beachtet und die Möglichkeiten des jeweilgen Frameworks nutzt, dann ist der Aufwand nicht so groß.

Bevor der Rahmen nicht klar ist würde - zumindest ich - mich mit keinem Wort versichernd äußern, wie lange das dauert.

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 10 Jahren

Ok, ich versuche jetzt mal deine genannten Punkte zu beantworten.

HTML 4 oder HTML 5?

HTML5 natürlich.

Muss ein Design entwickelt werden oder soll man ein fertiges kaufen?

puh, erst mal kein Design, es sieht dann erst mal halt so aus wie es aussieht - wäre aber eine richtige gute Idee für die Zukunft. Bis dahin würde ich das so klein halten wie möglich - spielt im Moment keine Große Rolle.

Welche Browser sollen unterstützt werden?

Für den Anfang reicht der aktuelle Internet Explorer. Äh, ich lese gerade in deiner Antwort das der IE9 keinen vernünftigen HTML5 Support bietet. Ist denn nicht gerade der IE10 aktuell. Aber hätte ich keine Probleme damit auf einer anderen Browser auszuweichen, Hauptsache einer der gut funktioniert 😉

Wie groß wird das ganze aufzogen?

Ich denke das ein Webserver ausreicht, sowie je ein Server für die Datenbank und einer für TFS.


Teil 1:
Sorry! Aber ja, wirklich in einer Textdatei, ich kann die Datei bereits auch lesen und Importieren - war aber nur so etwas wie ein kleiner Test.

Teil 2:
Ja, hier kommt wirklich vieles und viel neues auf mich zu! Hier werde ich sicherlich richtig viel neues erlernen 😃

Teil 3:
Rechtemanagement - Ich hatte an ein eigenes Rechtemanagement gedacht, hier im Forum wird sogar eines beschrieben. Hatte zwar ein paar Tage gebraucht um es verstehen und umsetzen zu können, aber funktioniert richtig gut!


Teil3: Mandantensystem: jeder Mandant hat seine eigenen Benutzer und seinen eigenen Content in seiner eigenen Datenbank(-datei).

Ähm? Ich weiß leider nicht was du damit meinst!


Zeitaufwand - Folgendes hätte ich mal für mich geschätzt - wenn nicht schon fast frei erfunden:

  • 2 Wochen um die Daten aus den Textdateien auszulesen und in die Datenbank zu importieren
  • 4 Wochen für die ASP.NET Anwendung, mit dem nötigsten!
  • Eine Woche für die Einrichtung aus der Zielstation

Summe: 8 Woche, also zwei volle Monate

16.830 Beiträge seit 2008
vor 10 Jahren

erst mal kein Design

Sowas gibt es im Web nicht. Ohne HTML keine Content-Anzeige.
Wirst Du auf kein Design oder kein Framework (960° Grid) setzen verlierst Du nicht nur Zeit, sondern auch Lust an dem Projekt. Das geb ich Dir hiermit schriftlich 😉

Ein anständiges Design - das nicht als Produkt inhaltlich weitervertrieben wird - kostet zwischen 15 und 50$.
Für solche Portale, was dies im Prinzip auch ist, eignen sich Admin Templates recht gut: Admin Templates* Formulare

  • Tabellen
  • Icons
  • Widgets und Gridsysteme

.. alles quasi enthalten. Beispiel (irgendeins der ersten Seite): http://themes.suggeelson.com/?theme=genyx
Das ist dann nur noch ein Baukastensystem; Du kannst Dir das raussuchen, was Dir passt.
Man verschenkt gern viel Zeit damit die ganzen Templates durchzusuchen, was einem gefällt - es gibt einfach sooo viele.
Also nach Date absteigend sortieren und ein aktuelles aus den ersten fünf Seiten wählen.

> Welche Browser sollen unterstützt werden?
Für den Anfang reicht der aktuelle Internet Explorer.

Die Aussage hatte ich erwartet. Das Problem ist hier: deckst Du nicht alles von Anfang an ab (zB über ein geeigenetes Design oder Framework) wirst Du Dich bei der Erweiterung sehr sehr schwer tun, wenn Du irgendwelche Spezialitäten eines Browsers beachten musst.
Daher lieber konservativ denken und die aktuellsten Versionen der jeweiligen Browser verwenden. Bei HTML5 ist das nicht so kritisch wie bei HTML4 (außer Du willst Videos und andere Media integrieren).

> Teil3: Mandantensystem: jeder Mandant hat seine eigenen Benutzer und seinen eigenen Content in seiner eigenen Datenbank(-datei).

Ähm? Ich weiß leider nicht was du damit meinst! Mandantenfähigkeit


Summe: 8 Woche, also zwei volle Monate

Also sagen wir 280h(bei einer 35h/Woche).

In der Entwicklung redet man von einer Produktivität von 0,7. Also sagen wir produktive 200h.
Davon wirst Du pauschal 100Std fürs rumprobieren und lernen der Technologie (WebForms? MVC?) brauchen. Du verwirfst Dinge, machst Sachen neu.
Stößt auf Fehlermeldungen, die Dir lange lange nichts sagen werden. Du merkst, vor allem als ASP Beginner, nachdem Du einige Dinge implementiert hast, dass Du doch etwas besser machen kannst.
Und 100h für komplett alles als Anfänger ist dann schon sehr sportlich.

Kommen dann noch andere neue Technologien, wie das Entity Framework hinzu, wird das nicht haltbar sein.

--
Als erstes musst Du Dir ja Gedanken um das Schema der Daten machen, dann kannst Du die Klassen designen, die Daten in die Klassen importieren und mit einem geeigneten ORM (zB EF 5.0) in die DB schieben. 2-3 Wochen je nachdem wie ehrgeizig man ist.
In der Mitte des Projekts merkt man meist, vor allem wenn man allein entwickelt, dass man irgendwas vergessen hat.

Wenn man das Business-Zeug dann mal hat, dann kann man sich an die Integration mit ASP machen.
Simple Webanwendungen mit stupiden Formularen macht nen geübter MVC Entwickler und einem Baukasten-Design in 1-4 Tagen (je nach Menge).

Ich wünsch Dir auf alle Fälle viel erfolg 😉

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 10 Jahren

Ja, der erste Teil war ja mal wirklich informativ! Ich hatte auch mal daran gedacht LightSwitch einzusetzen. Vor allen Dingen wegen dem Design! Aber als ich damit mal ein Projekt angelegt hatte und die Datenbank damit verknüpft hatte. Habe ich dann auch festgestellt das dann richtig viel noch angepasst werden muss!

Aber das mit den Frameworks was du mir vorgeschlagen hast, ist ja mal richtig Geil! Ich denke jetzt auch das ich ehr früher als später daran echt gescheitert wäre. Und das mit den verschiedenen Browsern wäre ja dank der Frameworks auch geklärt.


Hm, und nun zum zweiten Teil, gibt mir echt zu denken! Ich hätte auch viel lieber ein halbes Jahr gehabt. Aber das hätte ich unmöglich meinen Chef klar machen können 😄

Daher habe ich mir mal gedacht hier nachzufragen und hätte gerne einen "Vergleich" bzw. einen ungefähren Richtwert.

Mal angenommen das es ein Erfahrener ASP.NET Entwickler macht, wie du geschrieben hast mit dem Baukasten Design in 1-4 Tagen - also in einer Woche. Mit welchen Kosten kann man hier rechnen?

Rechnung:
100 Euro / Stunde: 10085=4000 - Realistisch: Zwischen 5.000 und 10.000 Euro allein an Software ...wäre jetzt mal meine Vermutung .. und deine 😃 ?!


Ich denke wenn ich das Projekt dann endlich mal in Angriff nehme, werden wir uns dann sicherlich wieder hier begegnen ...bis hoffentlich bald!

Hinweis von gfoidl vor 10 Jahren

Bitte verwendet die im Forum übliche Formatierung für Zitate [[nop][/nop]quote] und Listen [[nop][/nop]list]. Das gewährleistet ein einheitliches Format und erleichtert das Lesen der Beiträge - dadurch kann auch effizienter geholfen werden.
Ich hab das oben korrigiert.

5.658 Beiträge seit 2006
vor 10 Jahren

Hi jaipur,

Zeitaufwand - Folgendes hätte ich mal für mich geschätzt - wenn nicht schon fast frei erfunden:

  • 2 Wochen um die Daten aus den Textdateien auszulesen und in die Datenbank zu importieren
  • 4 Wochen für die ASP.NET Anwendung, mit dem nötigsten!
  • Eine Woche für die Einrichtung aus der Zielstation

Summe: 8 Woche, also zwei volle Monate

Wenn du zwei Wochen benötigst, um Textdateien auszulesen, dann sind die 4 Wochen für die Web-Anwendung reines Wunschdenken. Selbst bei einer aufs Wesentliche reduzierter Anwendung brauchst du Erfahrung in HTML, CSS, JavaScript, ASP.NET, Datenbanken, EF, MVC/WebForms usw. Und wenn ich es richtig sehe, hast du bisher kaum Erfahrungen in den Bereichen. Ich würde dir empfehlen, mal bei Channel9 ein paar Einführungs-Videos zu ASP.NET MVC anzuschauen. Dann bekommst du einen Einblick in die Materie, und kannst den Aufwand etwas realistischer einschätzen.

Christian

Weeks of programming can save you hours of planning

16.830 Beiträge seit 2008
vor 10 Jahren

Ein erfahrener Entwickler wird sicher einige Wochen Vollzeit beschäftigt sein, bis er alles hat (es ist ja jetzt sicher nicht nur das, was Du hier erklärst. Gibt bestimmt wie überall Strickfallen); schwer zu kalkulieren obs 3 oder obs 8 sind. Formulare sind halt halt ned die Welt; es kommt eben auf die Menge und Komplexität an. Ajax ja oder nein; muss was nachgeladen werden. Gibts Abhängigkeiten etc etc.
Aber es kommt ja nich nur das Add, Update, Delete und Co, sondern noch ein administrativer Teil hinzu, da Du ja irgendwie Mandanten pflegen und warten musst. Hinzu vllt. noch ein Backup für die Datenbank.
Deswegen bezeichne ich Deine Kalkulation auch für sehr sehr sportlich.

Sobald nachträgliche Veränderungen gemacht werden müssen ist das immer schwer zu kalkulieren, da ja evtl. wieder an der Basis hantiert werden muss, damit keine Frickelei anfängt.
Wenn der Code und das Urheberrecht beim Entwickler bleibt dann sind 10.000€ Netto schon realistisch. Wenn der Code an den Auftraggeber geht würde, wird wahrscheinlich noch ein bisschen aufgeschlagen werden.
Kommt aber auch immer auf den Kunden an; nem kleineren Unternehmen im Dorf macht man freundlichere Preise als ner Aktiengesellschaft.

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 10 Jahren

Wenn du zwei Wochen benötigst, um Textdateien auszulesen, dann sind die 4 Wochen für die Web-Anwendung reines Wunschdenken. Selbst bei einer aufs Wesentliche reduzierter Anwendung brauchst du Erfahrung in HTML, CSS, JavaScript, ASP.NET, Datenbanken, EF, MVC/WebForms usw. Und wenn ich es richtig sehe, hast du bisher kaum Erfahrungen in den Bereichen. Ich würde dir empfehlen, mal bei Channel9 ein paar Einführungs-Videos zu ASP.NET MVC anzuschauen. Dann bekommst du einen Einblick in die Materie, und kannst den Aufwand etwas realistischer einschätzen.

Hm, zwei Wochen sind sicherlich von mir für mich etwas Grob kalkuliert, ich denke mit viel testen schaffe ich das in einer Woche - liegt aber daran das ich das erst vor kurzem gemacht habe, also der Versuch 0.1 - sollte in einer Woche erledigt sein. Denn das Design und das Anlagen der Tabellen in der Datenbank klappt ganz gut. Auch das einlesen durch eine Windows klappt recht gut. Muss aber noch überarbeitet bzw. neu geplant werden ...typische Fallstricke die mir doch begegnet sind 😉

In der Web-Anwendung reicht es erst mal vollkommen aus wenn die Daten nur angezeigt werden. Einfügen, Bearbeiten, Löschen & Co kann ich nachträglich realisieren ...mal schauen was sich dann so ergeben wird, was die Kollegen sich dann so Wünschen 😉

Wirklich wichtig ist das mit den Abteilungen, je nach Abteilung ist eine andere Sicht auf die Daten notwendig. Und je nach Mitarbeiten wird dann entschieden was erlaubt ist. Bei der einen Abteilung reicht die Ansicht der Produkte vollkommen aus, die andere Abteilung bekommt dann zusätzlich noch die Teileliste ...je nach Mitarbeiter dürfen Daten bearbeitet, gelöscht oder eingefügt werden.

Aber wie gesagt, Hauptsache die Textdateien werden sauber importiert und können dann über die Web-Anwendung inklusive Rechteverwaltung in Abhängigkeit der Abteilungen angezeigt werden! Hier kann dann die ganze Energie in die Stabilität und Richtigkeit gelegt werden.

J
jaipur Themenstarter:in
127 Beiträge seit 2007
vor 10 Jahren

Die einfachsten Fragen zuerst! Ja, sind wirklich ein kleineres Unternehmen im Dorf! Urheberrecht kann beim Programmierer bleiben!

Alles andere fällt mir im Moment schwer zu beantworten, liegt sicherlich (ganz bestimmt) an meiner fehlenden Erfahrung. Ich hätte jetzt gedacht das sich diese Fragen durch das Framework beantwortet wird - diese werden ich mir die Tage mal in aller Ruhe angucken...

Mal ein paar Details von der Textdatei:

Die ersten paar Zeilen sind Info über den Kunden. Name, Land, Stadt, Bemerkung, Produkt. Kleine Falle: Nicht immer in der gleichen Reihenfolge!

Dann folgt eine lange Liste mit der Liste woraus das Produkt besteht. Mechanisch, 4mm Schraube, 2 Stück, Teilenummer im Lager. Für Deutschland ca. 2000 Kunden mit ca. 2 bis 3 Produkten. Für das Ausland nehme ich jetzt mal 50 verschiedene Länder mit je 500 Kunden und 2 Produkten an.

Herausforderung hier: Beim einlesen der Textdatei soll automatisch ein neues Produkt in der Tabelle_Produkte generiert werden, falls es dieses noch nicht in der Tabelle gab. So auch mit den anderen Tabellen.

Wie gesagt: Stabilität und Richtigkeit haben hier oberste Priorität!

Wenn der Code und das Urheberrecht beim Entwickler bleibt dann sind 10.000€ Netto schon realistisch.

Mit Netto meinst du die Lizenz für die Anwendung ohne Hardware?

16.830 Beiträge seit 2008
vor 10 Jahren

Nur die Entwicklung. Ohne Server, ohne DB, ohne Mehrwertsteuer 😉

S
406 Beiträge seit 2007
vor 10 Jahren

Hallo,

Zeiten abzuschätzen wird nie ganz einfach, denn entweder hat man zu wenig Infos oder man verliert sich evtl. zu sehr im Detail. Daher ist meine Empfehlung notiere dir im Detail was du wirklich genau im Web umsetzten möchtest, denn wie ich gelesen habe kommt es aktuell ja "nur" noch auf die Anzeige drauf an und keine Bearbeitung.

Wenn du dir das soweit überlegt hast, hast du dir evtl. auch bereits ein paar Gedanken zur jeweiligen Umsetzung machen können. Mein nächster Schritt ist dann meist, erst einmal aufzuschreiben welche Seiten (Views) ich so benötige. z.B. Loginseite, Listenansicht Produkte mit Filter, Userrechtverwaltung, Usergruppenverwaltung, Userliste, Userdetails, ....

Dann kann man sich in Kurzen Stichpunkten noch dazu schreiben was auf der jeweiligen Seite passieren bzw. angezeigt werden soll. Dann hat man für sich schon einmal einen viel klareren Überblick und wenn du das an einen Entwickler gibst kann der mit Sicherheit auch viel genauer sagen wieviel Zeit man benötigt.

Wichtig ist hier eine klare Linie wenn es erst einmal darum geht ein "Grundprodukt" zu entwickeln, denn man verliert sich sehr schnell in den Details (z.B. die Listen per Ajax nachladen, Dynamische Filter, ....) und diese Details sind es dann meist die den Großteil deiner Zeit auffressen. Vor allem wenn du neu in der Materie bist, hast du ganz andere Probleme.

Wenn man heute eine Anwendung erstellt, dann muss man ein klares Bild haben was soll Sie können und was soll sie "nicht können" denn wenn es um die Umsetzung geht, dann ist eine Anwendung eigentlich "nie" fertig, denn man könnte immer noch hier und da etwas verbessern, neues einbauen, ... Daher definiere dir so gut es geht den Funktionsumfang vorher und wenn du später noch Zeit haben solltest, ist es nie ein Problem hier und da noch etwas einzubauen.

Noch so am Rande, ich nutzer z.B. sehr viel Twitter Bootstrap als Grundlayoutsystem. Hier gibt es auch wieder Zig Styletemplates die man kaufen kann bei Bedarf. aber so zum "rumspielen" und zum erstellen einfacher Formulare und Listen reicht die kostenlose Standardversion aus.

http://twitter.github.io/bootstrap/index.html

mfg
SquadWuschel

Mein Blog über .NET und MVC / EF | Meine kostenlose Onlinearbeitszeitverwaltung My:Worktime