2009-06-03 18 views
4

Die Organisation, für die ich derzeit arbeite, scheint in die Richtung zu gehen, Softwareentwicklern zu diktieren, welche Tools, Sprachen, Frameworks usw. verwendet werden müssen. Aber niemand hat mich davon überzeugt, dass das eine gute Sache ist. Das Hauptargument, das ich gehört habe, ist, dass es das Training erleichtern wird. Aber nach der Entwicklung von Software für mehr als 10 Jahre habe ich mich nie auf Training verlassen, um zu lernen, wie man eine IDE, Programmiersprache oder irgendetwas anderes benutzt; also kann ich es einfach nicht erzählen.Sollten Entwicklerwerkzeuge, Sprachen, Frameworks usw. in einer Organisation standardisiert sein?

Mit der raschen Geschwindigkeit, mit der sich die Technologie entwickelt, und der Langsamkeit, mit der ich die Standards kenne, bin ich besorgt, dass meine Kunden Anforderungen haben werden, die ich nicht einfach umsetzen kann oder kann so effizient zu implementieren, wie ich sollte. Wenn beispielsweise in einer Webanwendung eine UI-Anforderung für eine Funktion zur automatischen Vervollständigung besteht und für diese noch keine API genehmigt wurde, müsste ich die automatische Vervollständigung selbst implementieren, anstatt eine der vielen bereitgestellten APIs zu verwenden es aus der Box.

Ein radikaleres Beispiel ist, wenn meine Kunden Google Wave-Funktionen haben möchten. In diesem Fall möchte ich die Flexibilität haben, meine Entwicklungsumgebung (einschließlich der IDE) zu konfigurieren und geeignete Frameworks (z. B. GWT) auszuwählen.

Bitte geben Sie Feedback, ob Sie denken, dass Software-Entwickler-Tools, Sprachen, etc. sollten standardisiert sein und ein paar Punkte, um Ihr Argument zu unterstützen.

+1

Bitte machen Sie dies auch zu einem Community-Wiki. Es scheint eher ein Diskussionsthema zu sein. Es fühlt sich auch subjektiv an. –

+0

Ich war versucht, meine Frage zu bearbeiten, da es den Eindruck erweckt, dass ich blindlings dem Neuen und Modischen folge, aber ich entschied mich dafür, es so zu belassen, dass die Antworten Sinn ergeben würden. Aber um es klarzustellen: Ich bin nicht zu 100% gegen die Standardisierung. Was ich dagegen bin, ist eine 100% ige Standardisierung. – rich

Antwort

1

Eine unangenehme Konsequenz der Standardisierung ist, dass sie dazu neigt, Innovationen zu ersticken.

Innovation ist gruselig. Es beinhaltet Kosten und Risiken.

Standardisierung ist nicht gruselig. Es reduziert kurzfristig Kosten und Risiken. Bis Ihre Konkurrenten eine bahnbrechende Innovation geschaffen haben. Dann ist die Standardisierung sehr kostspielig.

+0

Es tut mir leid, ich stimme einfach nicht überein und denke, dass dies eine falsche Dichotomie aus den Gründen in meiner Antwort ist. –

+0

Ich stimme überhaupt nicht zu. Standardisierung muss Innovation nicht ersticken. Standardisierung steigert die Produktivität eines Teams. Stellen Sie sich vor, Sie müssten an einem Programm arbeiten, das von einem Teamkollegen in verschiedenen Sprachen geschrieben wurde, nur weil er Lust hatte, etwas anderes zu versuchen. Sie scheinen zu tun, was immer Sie im Namen der Inovation fühlen. Natürlich würde das in einer teamorientierten Umgebung nicht funktionieren. Die Standardisierung ist gut, aber der Standard muss regelmäßig überprüft werden, um sicherzustellen, dass sie immer noch relevant sind. –

+0

Während die Standardisierung Optionen "hindern" kann, legt sie gleichzeitig die Grundlage und beschränkt den Fokus auf die Lösung des Problems. Wenn Sie beispielsweise auf .NET standardisieren, begrenzen Sie implizit Ihren potenziellen Lösungsraum. Gleichzeitig können weniger Entscheidungen die Entscheidungsfindung und die Antwortzeit verbessern, da weniger Optionen berücksichtigt werden müssen. Schließlich wurde viel Kreativität eingesetzt, um "innerhalb von Standards" zu arbeiten. –

0

Es hängt von der Organisation, die ich denke. Einer wie Microsoft, ja, es sollte ein bisschen Standard sein. Ein kleines Unternehmen mit einer IT-Abteilung, nein. Ein größeres Geschäft mit mehreren Büros auf der ganzen Welt ... vielleicht.

es hängt alles :-P

1

Die Nummer eins Argument für die Standardisierung ist, dass es die Fähigkeit der Organisation als Ganzes maximiert einen gemeinsamen Bestand an Wissen zu nutzen. Sie wissen nicht, wie benutzerdefinierte Websteuerelemente in ASP.NET/C# erstellt werden? Fragen Sie Bill in der Halle, wer das Wissen hat. Wenn Sie verschiedene Werkzeuge verwenden, wird diese organisatorische Weisheit an den Knien abgeschnitten. Während es nicht ist gut, auf einen kleinsten gemeinsamen Nenner beschränkt zu sein (und hoffentlich wird Ihr Management dies realisieren), sollten Sie die Vorteile der geteilten Erfahrung nicht übersehen!

UPDATE: Ich mache nicht stimme zu, dass Innovation und Standardisierung sind polare Gegensätze. Würden wir fast das Niveau der Internet-Innovation erreichen, wenn wir immer noch den Mischmasch der für die 1980er Jahre charakteristischen Netzwerkstandards hätten? Nein, würden wir nicht. Natürlich haben wir vielleicht mehr Innovationen bei neuen Low-Level-Netzwerkprotokollen, aber ist es das wirklich wert? An seiner Stelle hatten wir eine Explosion der Kreativität innerhalb der Grenzen von TCP/IP und den Web-Standards (http, html, etc.)

Der Trick ist zu wissen, wie man standardisiert, ohne es als Argument für das Schließen zu verwenden auf alle neuen Erkundungen. Zum Beispiel verwenden wir in meinem Unternehmen nur ASP.NET/C#/SQL Server, aber ich bin vollkommen offen für die Verwendung neuer Tools in diesem Framework (wir haben kürzlich das DevExpress Reporting-Paket übernommen, das zum Beispiel den früheren Standard ersetzt).

1

Ob Sie Operations-Software für interne Clients oder Produkte für externe Clients entwickeln, gibt es keinen zwingenden Grund nicht zu standardisieren. Du hast sicherlich keinen gegeben. Hätten Sie gesehen, wie Unternehmen damit kämpfen, heterogene Produkte zusammenzuhalten, die seit 10 Jahren oder länger bestehen und heute ein Konglomerat verschiedener Technologien sind, die Entwickler irgendwann für sinnvoll hielten, hätten Sie diese Frage nicht gestellt.

Von meinem Kopf her könnte ich mindestens zwei bekannte Softwareunternehmen nennen, die aus dem Geschäft gedrängt werden, weil ihre Wartungskosten so hoch sind, dass sie nicht mehr konkurrieren können (aber ich werde nicht).

Ich denke, das Missverständnis hier ist, dass die Unterdrückung von Individualismus Innovation unterdrücken würde. Das ist einfach nicht wahr. Es ist eine schlechte technische Führung, die Innovation unterdrückt.

2

Ein wichtiges Problem bei der Standardisierung ist, dass wenn die Standards einmal da sind, sie in Beton gestanzt werden und schwer zu ändern sind. Aus diesem Grund bleibt unsere Unternehmens-IT-Umgebung auf IE 6 und das beste Änderungskontrollsystem, auf das wir Zugriff haben, ist CVS. Angesichts dieser Situation brechen einige Entwickler die Regeln, und einige finden Jobs bei innovativeren Unternehmen.

+0

Aber das ist nicht das Problem des Standards, es ist das Problem der Firma, Führung, diese Standards zu ändern und sie regelmäßig zu überprüfen – Janusz

+0

+1: Standards sind sehr klebrig. Die Überprüfung eines Standards bringt nicht viel. Sobald es an seinem Platz ist, hat es Geschichte; Jede Veränderung kann als "riskant" und "disruptiv" bezeichnet werden. –

0

die Organisation hat Anwendungen, die eine breite Palette von Unternehmen Unter der Annahme, zu verwalten, ich nicht aus den folgenden Gründen würde sagen, obwohl ich die gleichen ein bisschen zu wörtlich zu sein, die Botschaft von allem nehmen kann:

  • Kompromisse bei der Verwendung von Best-of-Breed für Systeme, z Wenn alle Datenbanken MS-SQL sein sollen, wird jede Oracle DB-Lösung verworfen. Dies würde auch für die Tatsache gelten, dass jeder, der eine IDE verwendet, dasselbe verwenden muss, egal ob sie Data Warehouse-Berichtsentwicklung, Webanwendungen, Konsolenanwendungen oder WinForms ausführen. Ich denke an Systeme wie ERP, CRM, SCM, CMS, SSO und verschiedene andere TLAs, FLAs und SLAs. (LA = Buchstabenakronyme für einen Entschlüsselungshinweis, wenn Sie es brauchen)

  • Die Aufrüstung durch Ausschüsse ist ein weiteres interessantes Thema. Wo, wenn jedes Team seine Werkzeuge wählen kann und eine Person hat, die beschließt, Dinge zu verbessern, z. Starten Sie Visual Studio 2008 statt Visual Studio 2005, müssen Sie nun feststellen, bei welchem ​​Schwellenwert es sich lohnt, alle gleichzeitig zu aktualisieren, was bei mehr als ein paar Entwicklern große Kopfschmerzen bereiten kann. Zum Beispiel, wann würde es in den letzten 10 Jahren IDE-Änderungen, Rahmenänderungen usw. geben?

  • Ausnahmen zu den Standards. Könnte ein Auftragnehmer etwas einbringen, das nicht in der Organisation verwendet wird, wenn sie glauben, dass es ihnen hilft, bessere Software zu bauen, z. Resharper oder andere Add-ons, die einige Auftragnehmer glauben, sind sehr lohnenswert, dass die Organisation das Geld nicht ausgeben will, um zu bekommen? Was ist mit Altsystemen, die den Standard ein wenig unhandlich machen, z. Dies wurde in ASP.Net 1.1 erstellt und so muss jeder VS 2003 installiert haben, auch wenn die meisten ihn nie benutzen werden?

Nur meine Gedanken dazu.

2

Sie haben eine gemischte Tasche hier.

Ich würde nicht auf IDEs standardisieren, weil jeder Entwickler anders funktioniert. Diejenigen, die Emacs wahnsinnig beherrschen, können ihre Leistung leiden sehen, wenn sie gezwungen werden, Visual Studio zu verwenden. Ich optimiere mein Visual Studio-Erlebnis mit einem 30-Zoll-Monitor und finde es unglaublich produktiv.

Allerdings ist die Standardisierung auf einige Tools, wie SCons oder make oder etwas, um Produkte zu bauen, völlig in Ordnung.

Einige Bibliotheken zu verbieten und einen Prozess zu haben, in dem neue Bibliotheken zugelassen sind oder nicht, ist ebenfalls sehr vernünftig. Ich kenne viele Unternehmen, die Boost oder JQuery verbieten oder Open-Source-Bibliotheken generell verbieten usw. Und sie hatten gute Gründe dafür. Ich weiß, dass ich ziemlich verärgert war, als ein Praktikant eine zufällige "Sicherheits" -Bibliothek, die er im Internet gefunden hatte, einbaute, ohne sie jemandem zu zeigen.

Am Ende ist jedes Unternehmen anders. Sie müssen standardisiert genug sein, um ernsthafte Komplikationen und Probleme zu vermeiden, wenn Menschen kommen und gehen oder wenn neue Produkte entstehen und sich Organisationsstrukturen verändern. Aber du musst flexibel genug sein, um nicht jedes Rad neu erfinden zu müssen, das du brauchst.

Die wichtige Sache ist, klare Gründe zu haben, ein bestimmtes Werkzeug anzunehmen oder irgendein anderes Werkzeug oder eine Bibliothek zu verbieten. Sie können nicht einfach das Management vorschreiben lassen, dass Sie dieses und nicht das verwenden, ohne das Ingenieurteam zu konsultieren und die Entscheidung aus guten Gründen zu treffen. Und sobald Entscheidungen getroffen sind, sollten diese Gründe schriftlich festgehalten und klar kommuniziert werden.

Und auch, wenn am Ende, Ihr Lieblings-Tool oder Bibliothek nicht angenommen wird, bitte jammern nicht darüber. Sei anpassungsfähig und mache deinen Job oder finde einen neuen, der dich glücklicher macht.

1

Standardisierung ist ein Muss für ein produktives Entwicklungsteam. Das bedeutet jedoch nicht, dass Sie die Standards nicht von Zeit zu Zeit ändern können, um sie an neue Technologien und Trends anzupassen.

10

Es gibt viele Vorteile für die Standardisierung. Meine Organisation hat Standards festgelegt, welche Technologie wir verwenden werden. Wir realisieren starke Vorteile in den folgenden Bereichen ...

  1. Einstellung. Es ist einfach zu beschreiben, welche Technologien wir suchen und sicherzustellen, dass unsere Personalvermittler die richtigen Leute suchen.

  2. Lizenz-/Softwarekosten. Ich kann leicht Unternehmenslizenzen kaufen. Es gibt mir die Möglichkeit, die Kosten niedrig zu halten, indem ich mehr bei einer kleineren Anzahl von Anbietern ausgeben kann und somit mehr Hebelwirkung habe.

  3. Konsistenz der Lieferung. Unsere Teams haben eine sehr gute Vorstellung davon, welche Projekte für den Aufbau, die Einführung und den Unterhalt von Projekten erforderlich sind, weil sie es zuvor mit Erfolg getan haben (und sie kennen auch die Fallstricke).

    • Beweglichkeit. Ich kann ein Team für ein anderes übernehmen lassen oder ein einzelnes für ein anderes, um es einfacher zu machen, aufgrund der Standardisierung.

    • Qualität. Wir haben Peer Reviews für Teams sowie QA für Teams.

Ohne eine konsequente Verwendung einer Technologie-Stack, Werkzeuge, Sprachen und Frameworks, würden diese Arten von Leistungen schwieriger zu realisieren. Ich bin nicht auf neue Technologien beschränkt, aber es muss einen konkreten Grund geben jenseits von "was wäre, wenn ich ..."

+0

Konnte es nicht besser gesagt haben. –

+1

Ich stimme aus allen oben genannten Gründen mit der Standardisierung der Werkzeugkette überein und würde die Vorteile der Bereitstellung und Fehlerbehebung hinzufügen. Mit zunehmender Größe der Organisation kann die willkürliche Einführung neuer Abhängigkeiten und Testanforderungen negative Auswirkungen haben. Allerdings halte ich es für nützlich, ein Niveau des Wachstums und der Prüfung zusätzlicher Werkzeuge und Gegenstände zu fördern. Dies geschieht in der Regel in Form von internen Projekten und Bemühungen, die nicht die gleichen Anforderungen an die Bereitstellung und das Testen stellen. –

+0

+1 Ich hätte es auch nicht besser sagen können - wie Sie aus meiner Antwort unten sehen können ... –

0

Es gibt mehrere gute Gründe für eine Standardisierung.

Erstens ermöglicht es dem Unternehmen eine bessere organisatorische Flexibilität, wenn jeder mehr oder weniger mit den gleichen Dingen vertraut ist. Es ermöglicht auch Menschen einander besser zu helfen. Ich kann nicht mit Problemen in den ASP.NET Sachen helfen, und es gibt nicht viele Leute, die mir auf der C++ Seite helfen können.

Zweitens reduziert es Support-Probleme und Ausgaben. Oracle und SQL Server sind beide ordentliche Produkte, aber die Verwendung beider für ähnliche Funktionen wird nur Probleme verursachen. Ganz zu schweigen davon, dass ich in Geschäften war, die verschiedene Plattformen nutzten, um ähnliche Dinge zu tun, und es machte keinen Spaß.

Drittens gibt es einige Dinge, die nur standardisiert werden müssen. Mit VS 2005 und VS 2008 konnten wir nicht halb arbeiten, da wir Projektdateien unter Quellcodeverwaltung halten. Wir mussten eine Zeit wählen und umrechnen.

Viertens, in einigen Unternehmen vereinfacht es die regulatorischen Probleme. Ich weiß nicht, in welcher Branche Sie tätig sind. Ich arbeite an einem Ort, an dem wir Fehler machen können, aber ich habe auch Verträge bei einer Bank und einem Versorgungsunternehmen, wo es notwendig ist, Auditoren zu zeigen dass alles normal läuft.

Fünftens kann es die Beschaffung vereinfachen, wenn Sie mit Software zu tun haben, die Geld kostet.

Dies schränkt uns nicht besonders ein, denn wenn wir etwas brauchen, das nicht standardisiert ist, gehen wir einfach vor und holen es oder machen es.

Wenn Sie einen Business Case gegen Standardisierung machen wollen, müssen Sie ein geschäftliches Argument haben. Ihr Argument scheint zu sein, dass Sie nicht in der Lage sein werden, Funktionen zu implementieren, die der Benutzer wünscht, und das ist eine Überlegung. Hast du noch ein Argument?

0

Es ist nichts falsch daran, eine IDE zu standardisieren, die reich genug ist, um für einzelne Entwickler konfiguriert zu werden.

Stellen Sie jedoch sicher, dass Sie einzelne Entwickler nicht daran hindern, zusätzliche Tools zu verwenden, solange die Tools lizenziert sind und die Verwendung des Tools durch einen Entwickler nicht von allen anderen Entwicklern erfordert wird.

Zum Beispiel verwende ich NORMA, um mir beim Entwerfen von Datenbanken zu helfen. Die Ausgabe ist SQL Server DDL (oder etwas anderes, das ich will). Ich kann die DDL Teil des Projekts machen, ohne meine NORMA Quelle dazu zu machen. Spätere Entwickler brauchen NORMA nicht, um an dem Projekt zu arbeiten.

Auf der anderen Seite, wenn ich beschloss, die Configuration Section Designer verwenden, um Konfigurationsabschnitte zu erstellen, dann müssten zukünftige Entwickler auch es verwenden. Es müsste eine Entscheidung darüber getroffen werden, ob dieses Tool verwendet werden soll.

2

Ich arbeitete einmal für einen Manager, der die Notwendigkeit zur Innovation bei jeder Ebene seiner Software-Entwicklung Operation fühlte. Jedes Entwicklungswerkzeug musste auf dem neuesten Stand sein (vorzugsweise in der Beta). Viele der Werkzeuge, die er uns zur Verfügung gestellt hatte, hatten keine gute Dokumentation, und Training war nicht verfügbar. Letztendlich hat die meisten der Technologie, die wir einfach versucht nicht funktioniert. Wir haben viel Zeit damit verschwendet, neue Technologien zu entwickeln, um sie dann zu vergeuden, wenn klar wurde, dass wir keine Fortschritte machen konnten.

Ich habe versucht, den Fall zu machen, dass Innovation in dem Bereich perfekt ist, in dem Ihre value proposition liegt. Innovation kann auch sinnvoll eingesetzt werden, wenn Standardtechniken versagen. Aber für die meisten alltäglichen Aufgaben sollte die Verwendung von bewährten Tools und Methoden der Standard sein. Weniger Risiko, weniger Kosten, weniger Aufmerksamkeit des Managements.So können Sie Zeit und Energie auf die Bereiche konzentrieren, in denen Innovation den größten Nutzen hat.

Also ich denke, Standardisierung hat eine wichtige Rolle. Aber blind zu sagen, dass alles Standard sein muss, ist genauso sicher wie mein Manager, der dachte, dass alles innovativ sein muss.

+0

+1: verrückt Ebenen Innovation ist eine schlechte Sache. –

0

Die Firma, für die ich arbeite, verwendet C#, ASP.NET, JavaScript und generiert HTML. Die Vorteile, die über die oben erwähnten hinausgehen, bestehen darin, dass eine verbesserte Geschwindigkeit für Wartung und adaptive Änderungen wahrgenommen wird. Zu den Nachteilen gehört, dass Menschen, die technisch versiert sind (geeky), eine gewisse Langeweile bekommen und es vorziehen, eine Mischung und ein paar Sprachen zu verwenden, je nachdem, was sie für besser geeignet hält oder aus "Leistungsgründen".

Technische und persönliche Überwachung ist immer gut, wenn Sie sich so schnell wie möglich entwickeln, um enge Termine einzuhalten und in einem stark gesättigten Markt für Web-Entwicklung zu konkurrieren.