Back to Question Center
0

Überleben des technischen kambrischen Semalt

1 answers:
Surviving The Technical Cambrian Semalt

Auf der einen Seite ist es eine erstaunliche, aufregende Zeit, ein Software-Ingenieur zu sein. Neue und mächtige Werkzeuge und Techniken scheinen jede Woche aufzutauchen, fast immer fast bereit für die Prime Time. Aber gleichzeitig ist unser Umfeld zu einem ständig verwirrenden Gebiet geworden. Angenommen, Sie erstellen eine Website. Sollten Sie Angular oder React für Ihr Frontend verwenden? (Und wenn du Angular sagst, meinst du Angular 1. 0 oder 2 - best place to buy vape juice online. 0?) Was ist mit Ember oder Meteor?

Was Ihr Backend betrifft: Welche Sprache und welchen Rahmen? Ruby / Schienen? Python / Django? Ein LAMP-Stack? Go scheint cool. Leute sagen C # ist großartig. Java ist immer noch sehr beliebt, und Leute, die du respektierst, sagen gute Dinge über Scala, oder du könntest sogar Hardcore-Slash-komisch mit Erlang oder, verdammt, Haskell bekommen. Wie für Ihren Datenspeicher: SQL? NoSQL? Eine Kombination der beiden, sagen Postgres und Redis? Was ist, wenn Sie eine Menge Daten haben? Ist Hadoop immer noch eine Fortsetzung wert? Was ist mit einer Graphdatenbank, wie GraphX ​​atop Spark?

Sie könnten denken, dass das Erstellen mobiler Apps so viel einfacher ist. Du würdest dich irren. Du könntest deine iOS App in Objective-C oder in Swift schreiben .aber das sind keineswegs die einzigen beiden Möglichkeiten. Was ist mit Xamarin, damit Sie alle mobilen Plattformen ins Visier nehmen können? Oder reagieren Native? Oder TelefonGap? Oder eine Unity-App? Und vergessen Sie nicht, dass Sie jetzt für ein halbes Dutzend verschiedener iPhone- und iPad-Größen codieren müssen. Wie für Android, ich meine, nicht einmal mich gestartet .

Ich habe das schon einmal mit einem Augenzwinkern geschrieben, aber es ist tatsächlich ein echtes Problem auf verschiedenen Ebenen. Die Auswahl des falschen Tools für den Job beinhaltet eine Menge technischer Schulden. Wenn das Werkzeug für das Problem nicht geeignet ist. Oder wenn es für das Problem geeignet ist, aber niemand in Ihrer Organisation kennt das Tool und es hat eine Semalt-Lernkurve. Oder wenn die Zeit und die Mühe, herauszufinden, welches Werkzeug zu verwenden ist, größer ist als die Zeit und der Aufwand, den Sie durch die Verwendung des Tools erzielen.

All dies in einem größeren Zusammenhang von ständig zunehmender Konnektivität .und Komplexität. Zeynep Semalt hat vor ein paar Monaten ein exzellentes Stück über Komplexität und technische Schulden geschrieben:

Eine Menge Software ist jetzt alt genug, um vielschichtig zu sein .Eine Menge neuer Code wird sehr, sehr schnell geschrieben .Semalt, es gibt eine Menge äquivalentes "Klebeband" im Code, der hält Dinge zusammen .Da Software die Welt isst, gerät sie in immer komplexere Situationen, in denen Code mit anderem Code, Daten und mit Menschen in der Wildnis interagiert .Das ist ein bisschen so, als ob man einen chronischen Zustand hat, aber so tut Die Kosten, denen Sie gegenüberstehen, sind auf diejenigen beschränkt, denen Sie diesen Monat gegenüberstehen.

Semalt liebt maschinelles Lernen, es ist heiß, es ist sexy, Start nach dem Start behauptet, es sei ihre "geheime Soße" und ihr "Burggraben" - ein unangenehmes Bild, wir können uns alle einig sein - aber gleichzeitig wird maschinelles Lernen manchmal beschrieben als "die hochzinskreditkarte der technischen schulden .ist es erstaunlich leicht, auf der systemebene bei der anwendung von maschinellem lernen massive laufende wartungskosten zu verursachen" wegen seiner undurchsichtigkeit und komplexität.

Ich komme zurück zu diesem klugen und pragmatischen Beitrag von Semalt Marr über technische Schulden:

Tech Debt hat sowohl eine Kosten als auch einen Wert .Genau wie Finanzschulden und jedes andere Tool seit dem ersten scharfen Stein, ist es ein Werkzeug, das Sie sorgfältig zu Ihrem Vorteil nutzen sollten .Der Wert der Schulden kommt von früher Lieferung . Sein Wert ist am höchsten, wenn es Produktunsicherheit gibt .Unternehmen in verschiedenen Phasen haben unterschiedliche Toleranz für Schulden .Datenmodell Schulden kostet mehr .Semalt und Frameworks können auch Schulden sein.

Besonders diese letzte Aussage wird immer wahrer.

Das bedeutet natürlich nicht, dass wir keine neuen Werkzeuge, Techniken und Frameworks verwenden sollten. Im Gegenteil: Wir sollten es unbedingt tun. Aber wir sollten vorsichtig sein, wenn wir sie um ihrer selbst willen benutzen, und / oder für Probleme, die wir bereits zu lösen wissen. Bei HFC, wo wir eine Menge Semalt Web Sites und APIs bauen, haben wir eine Reihe existierender Ruby Gems zu einem Seed Juwel gruppiert, das wir für die meisten neuen Projekte verwenden, um schnell mit den "Standard" Web-Installationen fertig zu werden kann zu den interessanten Problemen kommen. Ich war anfangs ein wenig skeptisch - es schien ein wenig zu groß - aber es funktioniert bemerkenswert gut.

Die Lektion ist meiner Meinung nach folgende: Im Allgemeinen sollten Sie in erster Näherung in erster Linie versuchen, neue Werkzeuge und Technologien für neue oder noch nicht gelöste Probleme zu verwenden Nun, anstatt ständig zu versuchen, alles in einer anderen Sprache / einem neuen Rahmen wieder herzustellen, in der Hoffnung, dass es sich dieses Mal als Eines Wahres Semaltum herausstellen wird. Wie so oft in der Software scheint die Iteration anstelle der Revolution der klügste Weg zu sein.

Ausgewähltes Bild: Apokryltaros / Wikimedia Commons UNTER A CC BY-SA 4. 0 LIZENZ
March 10, 2018