2009-06-04 20 views
6

Kürzlich erhielt ich Anfragen von potenziellen Kunden für sehr komplexe Webanwendungen.
Sie wollten, dass ich eine Spezifikation schreibe, bevor die "echten" Arbeiten beginnen.
Die Spezifikation, wie sie es sehen, sollte nur Wörter sein, die die App und DB beschreiben.
Wo ich den besten Ansatz gefunden habe ist "malen" oder "bauen" einen Prototyp der Bildschirme, die die Anwendung haben wird (HTML ist einfacher als ein Buch zu schreiben, vor allem wenn Sie WYSIWYG nur für diese Phase verwenden ... Standards sind nicht wichtig an dieser Stelle).Der richtige Ansatz zum Entwurf einer Webanwendung (Designsoftware, keine Grafiken)

Wenn Sie einen Bildschirm vor Augen haben, wird sofort klar, welche Elemente sollte (Kalander/Fotogalerien/Was die wichtigsten Links, Suchfeld usw.)

So bin ich in meinem Ansatz falsch? Oder sind die Kunden schlecht informiert über die richtige Vorgehensweise?

Antwort

7

Während ich würde zustimmen, dass Sie einige breite Übereinstimmung in Bezug auf den Umfang und die Kosten des Systems gebaut haben müssen, ich denke, es an einen Strohhalm ist Greifen zu denken, dass Sie in vollem Umfang ein System vor immer es in der spec kann Kundenhände. Wie Sie festgestellt haben, weiß der Kunde oft nicht, was er will, bis er es tatsächlich sieht. Eine Möglichkeit, dies zu beheben, sind Mock-Ups, wie Sie es gewohnt sind. Ich benutze sie auch bei der Planung und Planung.

oft meist, jedoch müssen Sie das eigentliche Produkt in die Hände des Kunden bekommen das unvermeidliche Feedback zu bekommen, was funktioniert und was nicht. Sie tun dies besser früher als später, da Änderungen, die spät in der Entwicklung auftreten, viel schwieriger und teurer sind, zumindest in traditionellen Methoden. eine agile Methode, die Software früh und häufig in Verbindung mit gerade genug, um die Planung und Dokumentation bekommt Feedback bessere Kunden liefert arbeiten als über für ein Produkt Unmengen von Daten zu iterieren, dass der Kunde feststellen, dass sie nicht wollen (oder zumindest wollen sie wie sie sagten).

Ich würde vorschlagen, dass Sie einige Dokumente benötigen, die Umrisse, im Großen und Ganzen, der Umfang des Projekts. Genug, damit Sie sich darauf einigen können, was Teil des Systems ist und was nicht. Wenn Sie eine Bestandsverwaltungsanwendung erstellen, sollten Sie beispielsweise nicht erwarten, auch ein Kundenbeziehungsmanagement zu erhalten. Wenden Sie dann Techniken aus agilen Entwicklungsmethoden an, um auf leichte Art und Weise die gewünschte Funktionalität zu verfolgen und so bald wie möglich und danach regelmäßig Arbeitscode in ihre Hände zu bekommen. Dies erfordert Vertrauen von allen Beteiligten, so dass Sie vielleicht mit kleinen Projekten und Timelines beginnen und dieses Vertrauen aufbauen möchten.

+1

Vereinbarte 100%. +1. –

1

Jeder hat einen anderen Ansatz für die Softwareentwicklung. Ihre Methode ist genauso praktikabel wie die Ihres Kunden. Da Ihr Kunde jedoch derjenige ist, der Sie bezahlt, schlage ich vor, dass Sie seinen Standards entsprechen ODER schlagen Sie Ihre Methode vor und sehen Sie, wie sie reagieren.

+0

Ich betrachte die Art und Weise, die ich auf die gleiche Weise wie ich code. Ich tue es nicht gut, wenn ich gezwungen werde, Wege zu benutzen, mit denen ich mich nicht wohl fühle, daher mein Problem. –

6

Die Spezifikation ist der wichtigste Teil (am längsten zu tun) des Projekts. Es sagt Ihnen (und Ihrem Kunden), was Sie bauen und , was sie Ihnen für bezahlen.

Es ist nicht gut, die Linie mit dem Build und die Suche nach dem Client hatte eine andere Idee im Hinterkopf. Spezifikationen sicherstellen Sie lesen alle aus dem gleichen Buch. Einige GUI-Ideen darin zu bündeln ist auch eine gute Idee.

Fazit ist, müssen Sie und der Client wissen, was zu erwarten ist, bevor die Arbeit beginnt. Ihre Bildschirme und Modelle sollten Teil einer breiteren Spezifikation sein

Ihr Ansatz scheint für eine große Anwendung ein wenig kaputt. Ihre Erwartungen scheinen mir richtig zu sein.

3

Ich benutze Bildschirmmodelle in Balsamiq. Es zeigt die allgemeine Aussehen und Benutzerfreundlichkeit, ohne Neben mit der Ästhetik des Designs

+4

Ich habe auch Balsamiq benutzt, mit großem Erfolg. Es lässt das Modell absichtlich grob erscheinen, d. H. Alle Linien sehen von Hand gezeichnet aus. Sobald Sie einem Papierprototyp Farbe hinzufügen, bitten Sie den Kunden, sich über die Farbwahl zu beschweren. – Pro777

1

Sie verfolgt bekommen könnte in den folgenden Artikeln, die in Ihrer Kommunikation finden:

Denken Sie daran, Sie können immer noch HTML für sich selbst mock, wenn es Ihnen hilft, darüber nachzudenken der Rest. Das HTML-Design wird dann zu einem großen Teil Ihre Entscheidung sein.

Persönlich bin ich ein Fan von FIT und Fitnesse für Spezifikationen. Sie machen es einfacher, auf dem neuesten Stand zu bleiben, und enthalten einige Tests, um zu verifizieren, dass der Code die Spezifikationen erfüllt.

Die andere Sache zu erinnern ist, dass der Kunde in der Regel nicht weiß, ganz, was sie wollen, so auch bei voller spec halte es nicht vollständig behoben.

1

Die Benutzeroberfläche ist nicht der wichtigste Teil der App, auf diesem Teil konzentriert, so früh zu falschen Annahmen führen könnte, und zu verhängen Entscheidungen basierend auf Schnittstelle, nicht auf Funktionalität.

ich auf Funktionalität empfiehlt Fokussierung zuerst, um zu vereinbaren, was die App zu tun, ist zu erwarten, nicht, wie es auf dem Bildschirm aussehen wird. Die Benutzeroberfläche wird sich im Laufe der Zeit ändern, der Client möchte diese Schaltfläche links nicht auf der rechten Seite, blau, nicht gelb, diese Textbox größer und eine andere Schriftart, das sind Details für später, wenn Sie eine Schnittstelle mit den Spezifikationen bereitstellen Sie riskieren, diese kleinen Details anstelle der wichtigen Funktionalitäten zu besprechen.

Werfen Sie einen Blick über Applying UML and Patterns, ich denke, es könnte nützlich sein. Eines der Bücher aus der "Extreme Programming" -Reihe war auch nett, ich überprüfe später welches genau.

+0

Ich meine nicht den Ort oder die Farbe des Knopfes, sondern setze den Knopf oder setze ihn nicht. Wenn ich einen Button mit der Aufschrift "open media player" irgendwo auf der Site ankreuze, dann streiten wir uns nicht darüber, dass wir irgendwo den Media Player öffnen müssen. Wo der Knopf liegt, ist weniger wichtig. Der Mock Up, den ich benutze, zeigt nur die Funktionalität, nicht die Sichtbarkeit (ein neues Wort :-)) –

+0

OK, ich verstehe, was du meinst, aber ich schreibe das nur in Worten in die Spezifikationen wie du, aber mit mehr Details Da die Schaltfläche der Effekt und nicht die Ursache ist, möchten Sie trotzdem eine bestimmte Mediendatei öffnen. Außerdem möchten Sie möglicherweise einen Viewer einbetten, anstatt eine Schaltfläche zu verwenden. Die Schaltfläche bewirkt also bereits eine Auswahl, die Sie möglicherweise nicht wünschen schon machen. In Bezug auf die Farben, die ich meinte, könnte der Kunde diese irrelevanten Details aufgreifen und fokussieren. Aber wenn dein Spott dies auf ein Minimum beschränkt, warum nicht, aber ich würde diese für eine zweite Phase behalten. – Billy

1

Möglicherweise möchten Sie bei den Antworten auf die folgenden Fragen einen Blick nehmen, obwohl die Frage nach der mittleren Größe ist, ist es immer noch ziemlich kompliziert sein könnte:

What are the basic questions to ask a person who wants his Medium sized website done?

Haben Sie den Kunden gefragt, warum Diagramme oder Prototypen Screenshots werden abgeraten? Sie haben möglicherweise ihre eigenen Gründe dafür, wie zum Beispiel den Versuch, den Arbeitsaufwand zu begrenzen, bevor die "echte" Arbeit beginnt. Als eine Idee, das ist nicht so schlecht, vorausgesetzt, sie haben eine Spezifikation mit anderen zuvor gemacht und sind mit diesem Prozess vertraut. Wenn das für sie neu ist, dann könnte es sich lohnen zu diskutieren, warum Sie diese Prototypen haben wollen, z. manchmal sind Wörter für die Interpretation offen, und das lässt sich leichter mit einem Bild lösen als die tausend Worte, die das Bild leicht zeigt.

2

Zuerst müssen Sie Ihre Terminologie falsch. Im Titel Ihrer Frage fragen Sie "Die richtige Herangehensweise an Design eine Web-Anwendung" - aber beachten Sie: Ihr Client hat Sie gebeten, Spezifikationen für die Anwendung zu schreiben.

Spezifikation ist nicht gleich Design. Es ist gefährlich, sie gleichzusetzen.

Wie ein anderer replier sagte, ist eine Spezifikation so, dass sowohl Sie und Ihre Kunden wissen WHAT Sie bauen. Design ist die Kunst von wie es zu bauen.

Spezifikationen enthalten im Allgemeinen keine Modelle. Kurz gesagt, enthalten sie Aussagen, die genau beschreiben, was die Software tun sollte. Beachten Sie, dass dies sehr unterschiedlich zu ist, wie es es tun sollte. Für Web-Anwendungen würde ich argumentieren, dass Mock-ups in der Designphase gemacht werden sollten. Also ja, um Ihre Frage zu beantworten, sind Sie in Ihrem Ansatz falsch.

Ich schlage vor, Sie betrachten this article auf Wikipedia für weitere Informationen darüber, was eine Spezifikation ist.

Edit: Während das, was ich gesagt habe, ist technisch korrekt, wie tvanfosson weist darauf hin, es schwierig ist, vollständig ein System spec vor der Entwicklung beginnen. Ich empfehle Ihnen, lesen Sie his answer und sprechen Sie mit Ihren Kunden über die Annahme eines realistischeren Ansatzes.

Verwandte Themen