2010-04-12 9 views
5

Wie viel und welche Planung wird für die Softwareprojekte verwendet, die Sie oder Ihr Unternehmen entwickeln?Wie viel und welche Planung wird für Softwareprojekte verwendet?

Der Grund für meine Frage ist wegen einer Klasse, die ich auf UML und andere ähnliche Dinge dieser Art nehme. Aus der Art, wie die Klasse aufgebaut ist, haben wir mit Programmen wie Visual Paradigm ausgiebig ein Schein-Bibliothekssystem erstellt, aber für alle bisherigen Arbeiten haben wir noch keine Programmierung gemacht (und wir beabsichtigen auch nicht, dies zu tun) Projekt).

Vielleicht ist es nur so, wie die Klasse unterrichtet wird, aber es scheint mir, dass viele der Dinge, die im Kurs gelehrt werden, sehr wuschig in der Präsentation wichtiger Planung für Softwareprojekte sind. Ich kann sehen, wie nützlich Objektdiagramme sind, aber die anderen Diagramme lassen viel zu wünschen übrig. Wie nützlich sind Sequenzdiagramme oder Zustandsdiagramme in der Praxis?

Also, wie viel und welche Planung wird für die von Ihnen oder Ihrem Unternehmen entwickelten Softwareprojekte verwendet? Ist es umfangreich oder ist es minimal? Sie vertiefen sich tief in die Planung von allem oder erhalten Sie das allgemeine Gefühl für das Projekt, bevor Sie Code schreiben?

+0

Holen Sie sich einfach ein A, bekommen Sie ein Praktikum und dann einen Job. Ich verwende höchstens 20% von dem, was ich in der Schule gelernt habe. Ein College-Abschluss ist eine Möglichkeit, die Unverträglichkeiten zu beseitigen, und es ist eine sehr teure Placebopille. Das eigentliche Lernen beginnt am Arbeitsplatz. Es spielt keine Rolle; mach es einfach gut in der Klasse. –

+0

@Hamish: Ein College-Abschluss gibt Ihnen einen CS-Hintergrund, der in der Arbeit nützlich sein kann (z. B. besser verstehen, wie Algorithmen entworfen werden, wie Korrektheit zu beweisen, wie Leistung zu messen), ist es nicht zu tun t lehren Sie, ein Entwickler zu sein oder technische Fähigkeiten zu haben.Wenn Handelsschulen, die lediglich Entwicklung lehrten, wettbewerbsfähig und von hoher Qualität wären, würden sich weniger Unternehmen auf CS-Abschlüsse konzentrieren. – Uri

+0

Ich bin völlig mit Hamish über die Tatsache, dass ich jetzt weniger als 20% (vielleicht weniger als 10 denke ich manchmal) von dem, was ich in der Schule gelernt habe, verwenden. Ich weiß jedoch nicht, ob das nur ich oder was ist, aber ein guter Teil dieser 10-20 Prozent stammt aus meinen Softwareentwicklungskursen. Der Professor war ein sehr sachkundiger Typ, der schon lange in der Branche war. Ich wünschte, ich könnte zurückgehen und Ratschläge von diesen Klassen aufnehmen, jetzt wo ich weiß, worüber es spricht. – Brandi

Antwort

2

Ich denke, du verwirrst Planung und Design/Architektur. Planung bezieht sich normalerweise auf die geschäftliche Seite der Dinge - wie viele Leute werden etwas in wie lange tun. Design/Architektur sollte beschäftigen, wie man Dinge richtig macht, vorausgesetzt, Sie hatten genug Zeit und Budget.

In Bezug auf das Design, die meisten Entwickler kennen UML zu einem gewissen Grad, aber nicht unbedingt verwenden. Wenn ihnen CASE-Tools zur Verfügung gestellt werden, verwenden sie möglicherweise Klassendiagramme für die individuelle Verwendung, verwenden die anderen jedoch nicht häufig. CASE-Tools erzwingen die Verwendung der "formalen Form" von UML, sodass sie ziemlich streng sind und ihre kreative Verwendung einschränken. Ein CASE-Modell wird häufig erstellt, um von der Codegenerierung zu profitieren. In meiner eigenen Firma produzieren wir eine Tonne Code, aber benutzen UML überhaupt nicht.

Für kollaboratives Design und Überprüfung (z. B. Zeichnen an der Tafel) ist UML häufiger, weil "jeder es spricht". Aus den Beobachtungsstudien, die ich gemacht und veröffentlicht habe, ist UML, die an die Tafel gezeichnet wurde, lediglich Mittel zum Zweck - Menschen leihen bestimmte Notationen aus, verwenden sie aber, um Ideen zu kommunizieren. Sie würden also Dinge wie Sequenzen und Kontrollfluss in einem Klassendiagramm sehen. Die resultierenden Artefakte können Sie nicht einfach in einem CASE-Tool erfassen. Sie können sehen, my dissertation für viele Fotos von wie diese Dinge aussehen, wenn Sie eine Gruppe von erfahrenen Entwicklern für Design zu gruppieren.

In Bezug auf die Planung ist meine Erfahrung, dass dies sehr unterschiedlich zwischen Software-Unternehmen und Unternehmen, die auch Software entwickeln. In letzterem (was die Mehrheit ist) wird die Planung auf der Makroebene oft auf der Grundlage der Unternehmenskultur und der Planung des Geschäftsstils durchgeführt, die Art von Dingen, die Sie in MBAs lernen. Es ist typischerweise nicht spezifisch für Software, und was das Management betrifft, könnten Sie Software oder Backmuffins bauen, es sind nur Zahlen. Auf der Mikroebene gibt es kein offizielles System. Tools wie Gantt-Diagramme und Tabellenkalkulationen werden verwendet, um die im Wesentlichen bestmöglichen Vermutungen und verschobenen Zeitpläne zu verfolgen. Aber am Ende kommt es auf die Erfahrung des Managements an - frühere Entwickler sind meist stärker darin. Bestimmte Praktiken wie Agile vereinfachen die Planung in mancher Hinsicht.

+0

Danke für die Antwort, ich werde Ihre Zeitung in diesen Tagen lesen. Da es keine anderen Antworten gibt, markiere ich deine als die richtige Antwort. – Nitrodist

Verwandte Themen