Ist Softwareentwicklung Engineering? Wenn nein, was fehlt ihm, um sich so zu qualifizieren?
Ja, Software Engineering ist eine technische Disziplin.
Wikipedia definiert Ingenieurwesen als "die Anwendung von mathematischem sowie wissenschaftlichem, wirtschaftlichem, sozialem und praktischem Wissen, um Strukturen, Maschinen, Werkzeuge, Systeme, Komponenten, Materialien zu erfinden, zu innovieren, zu konstruieren, zu bauen, zu warten, zu erforschen und zu verbessern , Prozesse, Lösungen und Organisationen. " Das Ergebnis des Software-Engineerings ist ein Softwaresystem, das das Leben der Menschen verbessern und eine Kombination aus wissenschaftlichen, mathematischen, wirtschaftlichen, sozialen oder praktischen Kenntnissen beinhalten kann.
In akademischer und beruflicher Hinsicht ist es unterschiedlich. Software-Engineering-Programme können von ABET als Engineering-Programme anerkannt werden. Softwareentwickler können Mitglieder des IEEE sein. Einige Unternehmen betrachten das Software-Engineering als eine technische Disziplin, andere nicht - es ist wirklich eine Zwickmühle.
Das beste Buch zu diesem Thema ist Steve McConnells Professional Software Development: Kürzere Zeitpläne, qualitativ hochwertigere Produkte, erfolgreichere Projekte, verbesserte Karrieren . Es befasst sich mit Software - Engineering als Beruf, Entwicklung von einem Handwerk zu einem Beruf, die Wissenschaft von der Software - Entwicklung, der Unterschied zwischen Software - Engineering und Software Engineering (Ingenieurpraxis Software im Vergleich zu Ingenieuren Anwendung, die Build - Software geschehen, mit einer Fallstudie , dass beinhaltet meine Alma Mater ), Zertifizierung und Lizenzierung sowie Ethik.
Glenn Vanderburg hat eine Reihe von Vorträgen mit dem Titel "Real Software Engineering", die zwischen 2010 und 2015 auf einer Reihe von Konferenzen gehalten wurden, zusammen mit zwei verwandten Vorträgen, "Craft, Engineering und die Essenz der Programmierung" (2011 als "Real Software Engineering") Keynote auf der RailsConf) und "Craft and Software Engineering" (2011 auf der QCon London). Ich denke, diese Gespräche sind ein ziemlich umfassendes Argument dafür, warum Software-Engineering eine technische Disziplin ist.
Ein Argument, das Vanderburg in seinen Gesprächen kurz vorbringt, ist das von Jack W. Reeves im Jahr 1992 (und erneut im Jahr 2005) vorgebrachte, was Software-Design ist und wie Code die Ausgabe von Software-Engineering-Design-Aktivitäten ist ( dies ist auch der Fall) im C2-Wiki diskutiert). Sobald Sie sich von älteren Denkansätzen verabschieden, in denen Spezifikation und Modellierung Software-Design und Code-Software-Design sind, werden einige der Beziehungen zwischen Software-Engineering und anderen technischen Disziplinen deutlicher. Einige Unterschiede und die Gründe für diese Unterschiede werden noch deutlicher, wenn Sie feststellen, dass sich die Wirtschaftlichkeit der Softwareentwicklung erheblich von vielen anderen Disziplinen unterscheidet - Konstruktion ist billig (in vielen Fällen fast kostenlos), während Design den teuren Teil darstellt.
Ist das [CMMI] etwas, das Entwicklung in Engineering verwandelt?
Nein. CMMI ist ein Framework zur Prozessverbesserung, das Organisationen Anleitungen dazu gibt, welche Aktivitäten beim Erstellen von Software hilfreich sind. Technische Disziplinen haben typischerweise einen technischen Prozess. Ein solcher Prozess ist wichtig für den erfolgreichen Abschluss hochwertiger Projekte. Das CMMI (oder ein anderes Prozess-Framework oder eine andere Methodik) ist jedoch nur ein einziges Tool. Wenn Sie es verwenden, werden Sie nicht auf magische Weise von einem Entwickler zu einem Ingenieur. Die Nichteinhaltung eines Prozesses ist meiner Meinung nach ein Zeichen für ein Projekt, das kein Ingenieurprojekt ist.
Wie ist Ihre Meinung zu den Software Engineering Kursen / Zertifikaten?
Es ist nur so viel Wert, wie andere Leute hineinlegen. Es gibt nützliche Kurse und es gibt nutzlose Kurse. Es gibt wertvolle Zertifikate und Zertifikate, die das Papier, auf dem sie gedruckt wurden, nicht wert sind. Es gibt viele Faktoren, von wem der Kurs gebilligt oder akkreditiert wird oder von wem das Zertifikat für Ihre aktuelle Beschäftigungsbranche für Ihre aktuelle Stelle ausgestellt wird und wohin Sie möchten.