Webentwicklungsvorbereitung und gesamter Projektworkflow

9

Ich arbeite als Einzelprogrammierer an Webentwicklungsprojekten (Front- und Back-End) - ich habe einige Projekte abgeschlossen, daher bin ich ziemlich neu darin, habe einige Ansätze gelesen und ausprobiert und einen Weg gefunden über sie. Die Frage und meine Beschreibung sind ziemlich lang, bitte haben Sie etwas Geduld.

Was ich suche, ist:
1. Vorbereitung / Planung, die normalerweise vor Beginn der Entwicklung durchgeführt wird, sobald Sie genau wissen, was erstellt werden muss.
2. Bitte geben Sie mir aus Ihrer Erfahrung Feedback / Vorschläge zu dem Prozess, den ich derzeit verfolge.

Die Kunden, mit denen ich zusammenarbeite, sind in der Regel Startups und haben ein begrenztes Budget, sodass ich sie nicht pro Stunde berechnen kann (ich denke, so berechnen große Unternehmen ihren Kunden normalerweise [pro Mann / Stunde] Entwicklungsprojekte) und müssen mit einem festen Budget arbeiten.

Dies ist der Prozess, dem ich derzeit folge:
1. Messen Sie den Umfang des Projekts und versuchen Sie zu verstehen, was sie in einigen Besprechungen erreichen wollen.
2. Geben Sie ihnen eine grobe Baseball-Park-Zahl mit einem Zitat, das allgemein beschreibt, was sie von dem Projekt erwarten. Ich versuche, die Funktionen genau zu definieren, aber ich nehme mir nicht zu viel Zeit dafür, weil ich das kenne Der Client fragt möglicherweise nur nach Angeboten und konvertiert nicht wirklich.
3. Ich folge Jeff Atwoods Vorschlag für Bezahlung und Arbeit:

15% Zahlung - Vorauszahlung vor Arbeitsbeginn
In dieser Phase wird ein HTML-Modell der End-Website erstellt, ein Flussdiagramm (mit yEd ), das die Website so detailliert wie möglich beschreibt, und ein Dokument, in dem andere Funktionen erwähnt werden, die nicht im Flussdiagramm enthalten sind . Dazu gehen Sie auf alle Details des Projekts ein und finalisieren die Teile, die passen, und Dinge, die zu viel Arbeit sind, um sie für den vereinbarten Preis zu implementieren. Da Einzelheiten nicht früher besprochen wurden, sind Teile davon auch mehr oder weniger eine Verhandlung darüber, was sie tatsächlich erhalten werden. Da es sich um ein Projekt mit festem Budget handelt, müssen feste Anforderungen gestellt werden. Andernfalls sinkt mein Preis weiter, wenn weitere Funktionen hinzugefügt werden.
Ein Farbschema, ein Design-Drahtmodell und eine Design-PSD werden ebenfalls fertiggestellt.

35% Zahlung - Entwicklung starten
Das Projekt ist fixiert, Entwicklung beginnen. Ich hoste die Site auf meinem Server, auf der der Client auf das Front-End zugreifen kann, aber keinen Zugriff auf Code hat.

30% Zahlung - Verschieben Sie den Code auf den Server des Clients / geben Sie dem Client die Serverzugriffsdetails.
Machen Sie die Site live.

20% Zahlung - Einige Wochen nach dem Start der Website, sobald alle Fehler behoben wurden.


Fragen:
1. Wenn Sie genau wissen, was Sie erstellen werden, welche Art von Planung würden Sie durchführen, bevor Sie mit dem Codieren beginnen?

2. Welche Teile des gesamten Prozesses würden Sie Ihrer Erfahrung nach anders machen?

DMin
quelle
Leider erreichen viele Kunden nie genau den Punkt, den sie von Ihnen erwarten. Der beste Ansatz, den ich gefunden habe, besteht darin, Modelle einiger wichtiger Seiten zu erstellen, sie dann hinzusetzen und User Stories zu erzählen. Ich mache absichtlich einige der Geschichten offensichtlich falsch, um den Kunden zu zwingen, zu sagen: "Nein, ich möchte, dass es so funktioniert ..." Dies bringt uns schließlich zu etwas, das sich einer Projektspezifikation nähert, aber es wird immer später geändert. Seufzer.
Peter Rowell
@Peter, Die gezielte Einführung gefälschter User Stories kann manchmal nach hinten losgehen und dazu führen, dass der Kunde das Vertrauen in Sie verliert. Diese Technik sollte sorgfältig angewendet werden.
maple_shaft
@maple_shaft: Das merke ich. Wenn ich "offensichtlich falsch" sage, meine ich so offensichtlich Bogus®, dass ich normalerweise mehr als ein paar Kichern bekomme. Für einen erfolgreichen Projekt ist es entscheidend, dass ein Kunde vollständig in seine Website investiert (Vision / Zeit / Geld). Es ist schockierend (zumindest für mich), wie viele Leute denken, dass eine neue Site etwas ist, das sie von Hand bewegen können, und sie wird auf magische Weise erscheinen.
Peter Rowell
Ich stimme auch den Modellen zu, keine Menge geschriebenen Textes wird den Kunden dazu bringen, zu verstehen, was er bekommen wird (die meisten können es nicht verstehen oder wollen es verstehen) - ein Modell wird dem Kunden die Dinge klar machen, auch einige Dokumentationen (spec) + ein Vertrag oder etwas, das sagt: "Sie werden all das bekommen und genau das, nichts mehr" hilft. Ich denke, dass es während der Entwicklung eine gewisse Flexibilität geben kann, um Dinge zu ändern, aber wenn sich herausstellt, dass mehr Arbeit anfällt, als Sie berücksichtigt haben, müssen die Mocks und Spezifikationsdokumente herausgezogen werden, und zusätzliche Arbeit bedeutet auch zusätzliche Kosten.
DMin

Antworten:

10

Tolle Diskussionspunkte!

Um mich zu qualifizieren - ich arbeite in BIG-Webentwicklungsprojekten in der Verteidigungsindustrie. Wir haben in der Regel ein Team von 10 bis 40 Mitarbeitern, die einen einzelnen Kunden unterstützen, Projekte in den letzten Jahren, und der Kunde hat sowohl Geld als auch hohe Anforderungen. Der Kilometerstand kann also variieren - Sie möchten nicht überplanen!

1 Wenn Sie genau wissen, was Sie erstellen werden, welche Art von Planung würden Sie durchführen, bevor Sie mit dem Codieren beginnen?

Dies ist nach dem 15% Abschnitt, am Anfang der 35%, richtig?

  • Entscheiden Sie sich für den Zielwebserver und die Sprache
  • Entscheiden Sie sich für Datenspeicherung - XML, Datenbank, welche Datenbank?
  • Entscheiden Sie sich für wichtige APIs - Datenpersistenz, GUI, Protokollierung, Abhängigkeitsinjektion usw.
  • Entscheiden Sie sich für Anmeldemechanismen - mit Blick auf Risiken und die Informationen, die Sie schützen möchten. Kann Zahlungsmechanismen enthalten.
  • Planen Sie eine Architektur und Namenskonventionen auf hoher Ebene
  • Wählen Sie eine Reihenfolge für die Einführung von Funktionen aus, damit Sie einen guten Ausgangspunkt kennen
  • Entscheiden Sie sich für eine Teststrategie und stellen Sie gegebenenfalls ein automatisiertes Test-Framework bereit
  • CM-System einrichten

2 Welche Teile des gesamten Prozesses würden Sie Ihrer Erfahrung nach anders machen?

Ich würde nicht überplanen. Ich würde meine Planungsarbeit darauf konzentrieren, Dinge zu erledigen - wie Build-Umgebung, Server, Testbed, CM - und nur wenig Zeit damit verbringen, eine Architektur zu planen, Tools auszuwählen und zu entscheiden, wo ich anfangen soll. Ich habe das Gefühl, egal was passiert, die amorphe Planungsphase beinhaltet immer viel mehr Zeit, um in einer ahnungslosen Wüste zu wandern, als es eigentlich sollte.

Wenn Sie es mit festen Gebühren und Kunden zu tun haben, die keine technischen Anforderungen stellen (z. B. welche Sprache oder APIs Sie verwenden), würde ich einen Artikel einplanen, der technisch immer ein Push für Sie ist. Nur 1 und den Rest gleich halten. Ich denke, bei jedem Projekt möchten Sie Ihre Fähigkeiten erweitern, aber Sie möchten nicht so wild werden, dass Sie nicht an etwas arbeiten, das Sie gut kennen oder verstehen.

bethlakshmi
quelle
2

Mein größter Rat an Sie ist, bei einem Festpreisentwicklungsjob äußerst vorsichtig zu sein. Wenn Sie die Anforderungen vor Arbeitsbeginn nicht richtig in den Griff bekommen, kann eines von zwei Dingen passieren.

  1. Schätzungen zum Umfang erwiesen sich als unterschritten und Sie verlieren Ihr Hemd.
  2. Der Kunde kennt oder kann nicht den gesamten Umfang kennen, bevor Sie anfangen, was dazu führt, dass er mit dem Endergebnis nicht zufrieden ist.

Für Sie ist Nummer 2 eine bessere Situation, denn wenn sie sich vom Geltungsbereich abmelden und später ihre Meinung ändern, können Sie für mehr Geld neu verhandeln. Stellen Sie einfach sicher, dass SIE den Umfang verstehen, bevor Sie schätzen, und dass SIE den Umfang verstehen und wissen, was Sie liefern werden.

Stellen Sie sicher, dass sie sich am Zielfernrohr abmelden! Unternehmen, die auf einem festen Preis bestehen und sich weigern, den Geltungsbereich zu unterzeichnen, sind SCHLECHTE KUNDEN, und Sie möchten Ihre Zeit damit nicht verschwenden. Sie werden immer verlieren.

maple_shaft
quelle