2009-05-29 4 views
6

Wo sollte die Linie zwischen Wartung und neuen Funktionen gezeichnet werden?Was gilt als Wartung versus Hinzufügen neuer Funktionen?

Das Oxford English Dictionary definiert Wartung als:

(7.a) Die Wirkung der Ordnung in der Arbeit etwas zu halten, die Reparatur, etc .; die Aufrechterhaltung eines Gebäudes, einer Einrichtung, einer Truppe usw. durch die Bereitstellung von Mitteln für die Ausrüstung usw .; der Zustand oder die Tatsache, so aufrechterhalten zu werden; Mittel oder Vorkehrungen für die Instandhaltung.

Ich arbeite mit einer Client-Server-Anwendung und Wartung des Clients. Im Einklang mit der Definition, würde ich erwarten, auszuführen:

  • Bugfixing
  • API Adaptionen (geringfügige Änderungen erforderlich, dass der Client mit dem Server weiter arbeiten)
  • für identifiziert Performance-Probleme
  • Optimierung

würde ich nicht erwarten, auszuführen:

  • Neuentwicklung (Hinzufügen neuer Funktionalität)

Die Wikipedia Software Maintenance Seite Referenzen Korrektiv, adaptive, perfective und vorbeugende Wartung, die mit in Einklang zu fallen scheint, was ich erwarten würde, aber die Client-Server-Natur erschwert die Arbeit.

BEARBEITEN: Bei eigenständigen Anwendungen, die keine Abhängigkeiten haben, sollte die Software weiter funktionieren, wenn die Software funktioniert. Bei Client-Server-Anwendungen kann der Client beim Ändern des Servers durchbrechen. Obwohl dies die Definition von Wartung nicht ändert, bedeutet dies, dass es mehr Möglichkeiten und Gelegenheiten gibt, wenn Änderungen an der Client-Anwendung notwendig werden.

Wenn zwei Parteien sich auf einen Wartungsvertrag einigen sollen, muss ein gegenseitiges Verständnis darüber, was qualifiziert und Wartung und was als neue Funktionen qualifiziert, erfüllt werden, daher die Frage.

+1

Wie beeinflusst die Architektur der Anwendung die Definition von Wartung? Nebenbei, "Wartung" in der Software-Welt enthält manchmal neue Funktionalität. –

+0

@ Harper Shelby - Würden Sie auf Ihre Randnotiz näher eingehen? – JeffH

+0

@ Jeff - Ich vermute, er spricht von einem Wartungsvertrag. Viele Male bezahlt ein Kunde einem Entwickler eine monatliche/jährliche Wartungsgebühr, die eine bestimmte Zeit für neue Entwicklungen oder Verbesserungen enthält. –

Antwort

4

Ich würde sagen, Wartung ist alles, was Sie tun, um sicherzustellen, dass das Produkt wie ursprünglich geplant funktioniert.

Der Knackpunkt dort ist normalerweise "entworfen". Wenn Sie nicht mit einem detaillierten Designdokument begonnen haben, in dem Sie angeben, was die Software tun würde und was nicht, würden die Dinge zur Interpretation stehen. Und wenn Dinge der Interpretation überlassen werden, wird im Allgemeinen die Interpretation der Kunden sein, dass die Software alles tun soll, was sie wollen es zu tun, anstatt alles, was sie für bezahlt haben, zu tun.

6

Die Grenze zwischen Bugfix und Feature kann verschwommen werden. Ich würde Usability-Erweiterungen und kleinere Features als Wartung betrachten. Meine Faustregel: Wenn es sich nicht lohnt, mit Ihren Kunden zu prahlen (oder dafür aufzuladen), dann ist es Wartung.

Als Beispiel wäre das Hinzufügen einer Funktion, die dem Benutzer das Drucken ermöglicht, eine Neuentwicklung. Das Ändern der Funktion, damit der Benutzer einen bestimmten Bereich von Seiten drucken kann, wäre Wartung (es ist geringfügig und hätte wahrscheinlich von Anfang an so funktionieren sollen).

+0

Obwohl ein bisschen lose für eine rechtliche oder verbindliche Vereinbarung, mag ich diese Definition. –

1

Für Fehlerbehebungen ist es leicht, sie als Wartung zu klassifizieren.

Je nach Softwareprodukt können jedoch "neue Funktionen" auftreten, die bei laufender Wartung der Anwendung erforderlich sind.

Für uns geschieht dies häufig aufgrund von Geschäftsanforderungen unserer Kunden oder aufgrund von Vorschriften von Drittanbietern. Die Kunden möchten vielleicht ein paar Bugs behoben haben, aber gleichzeitig müssen wir den Umgang mit einer neuen Regierungsverordnung unterstützen, die uns gesetzlich verpflichtet, "es jetzt rauszuholen".

Diese spezielle Änderung ist ein "neues Feature", wird jedoch im Rahmen der regulären Anwendungswartungsversion installiert.

Ich würde sagen, es hängt wirklich von dem Modell ab, das Ihr Geschäft übernehmen möchte und sogar immer noch, Sie werden immer in Situationen geraten, in denen sie sich überschneiden.

1

Fehlerbehebungen sind definitiv Wartung.

Steigende Leistung (Geschwindigkeit) ist Wartung.

Hinzufügen einer Funktion, die in der letzten Version enthalten sein sollte und nicht war oder die nicht funktionierte, ist Wartung (meiner Meinung nach).

Hinzufügen einer insgesamt neuen Funktion, halte ich nicht für die Wartung.

0

Für mich ist ein Fehler Wartung und eine Verbesserung ist nicht.

Aber meiner Erfahrung nach haben Nicht-Programmierer oft Schwierigkeiten, Fehler von Verbesserungen zu unterscheiden. Für sie ist ein Fehler alles, was nicht so funktioniert, wie sie es wollen. Für mich ist ein Fehler etwas, das nicht so funktioniert, wie es spezifiziert oder entworfen wurde.

Wenn die Funktionalität in der ursprünglichen Spezifikation hätte sein sollen, aber nicht, und der Kunde auf der Spezifikation abgemeldet hat, sieht es für mich wie Verbesserung (und damit zusätzliche bezahlte Arbeit) aus.

Natürlich gibt es auch die "weichen" Überlegungen - um eine gute Beziehung aufrechtzuerhalten, ist es oft ratsam, ein paar angeforderte Erweiterungen kostenlos in die Wartung zu werfen, vor allem, wenn sie relativ klein sind und Sie können managen diese Erwartung ziemlich gut.

1

Ich arbeitete an einem Ort (ein Anbieter), der den Kunden bei jeder Änderung bekämpfen würde, dass sie alle neue Features waren! Sie würden dem Kunden mitteilen, dass sie die Fehler gekauft haben. Das war ein toller Arbeitsplatz! Sie würden nachgeben, aber jeden Monat, wenn sie eine Rechnung schicken würden, würden sie mit den Kunden "verhandeln". Denken Sie daran, wir haben große kundenspezifische Systeme verkauft, und es war sehr schwierig für die Kunden, das Schiff zu verlassen, und das Management wusste es. Es war ein Ärger als Entwickler.

Ich denke, dass Maint das System am Laufen hält, Bugs behebt, es mit dem Betriebssystem kompatibel hält und andere erforderliche Software, die sich ändern kann. Neue Funktionen sind Funktionen, die sie vorher nicht hatten.

+2

+1 aus Mitleid für die Arbeit in so einem beschissenen Software-Shop – dss539

2

Basierend auf der SO/IEC 14764 Spezifikation für Software-Wartung und meine Erfahrung auf Websites und mobilen Anwendungen arbeiten, schrieb ich einen Artikel Entwicklung spezifisch für Wartung vs. neue Features speziell für digitale Produkte: http://www.rajiv.com/blog/2012/12/19/maintenance-vs-new-development/

Der Zweck Der Artikel soll helfen, Fragen zu beantworten wie: Was meinst du mit Wartungsarbeiten? Was sollte Maintenance vs. neue Feature-Entwicklung in Betracht gezogen werden?Gibt es eine Industriestandard-Definition? Was sind unsere Auswahlkriterien? Können Sie mir ein paar Beispiele geben? Welches Verhältnis von Wartung und Entwicklung neuer Funktionen gilt in unserer Branche als Best Practice? Wie vergleicht sich der Mix unserer Organisation damit?

Ich habe diese Fragen in den meisten Jobs, in denen ich war, gefragt. Der Artikel hilft mir, sie spezifisch für meine Firma zu beantworten.

Verwandte Themen