Eine solche Roadmap sieht auch eher aus wie die Ladenstrassen in einem Shopping Mall. Da stellt sich die Frage: Was wollte ich eigentlich tun?
Am besten überall mal rein gucken, lernen was einem gefällt, lernen was einem nicht gefällt. Erfahrungen sammeln, die Unterschiede kennen und erkennen lernen, Präferenzen entwickeln, best-practices anwenden und herausfordern und neu-erfinden.
Zeit ist wertvoll.
Da sind wir uns einig. Die zahlreichen Werkzeuge aus der Roadmap brauchen ihre Einarbeitungszeit, aber einmal gelernt machen sie sich schnell bezahlt, indem sie kostspielige und zeit-intensivste Tätigkeiten erleichtern. Ich greif mir mal ein paar meiner Lieblinge raus:
Testen mit Jest kann hunderte und tausende Software-Bugs während der Entwicklungszeit aufdecken - dann sind sie noch kostengünstig zu beheben. Einmal im Produktiv-Betrieb verhundertfachen sich die Kosten - sagt IBM. Für die Zeit, die wir sparen, weil wir Tests überspringen, zahlen wir später ein Vielfaches zurück. Sozusagen der schlechteste Sparvertrag der Welt. Eric Elliott hat einen sehr guten Beitrag darüber geschrieben. Das alles ist Zeit, die man auch hätte nutzen können, um zum Beispiel die Accessibility des Produkts zu verbessern.
JavaScript hat die größte Paket-Datenbank, die je einer Programmiersprache gesehen hat. Jedes wiederkehrende Problem in der Webentwicklung hat mindestens drölf verschiedene Lösungen auf npm. Der Einsatz von fertigen Bibliotheken, ist in fast ausnahmslos allen Fällen einer Eigenentwicklung vorzuziehen. Aber wir zahlen auch einen Preis dafür: Wir müssen unsere Abhängigkeiten ständig überwachen, pflegen und gegen die eigenen Projekt-Richtlinien evaluieren. Paket-Manager halten diese Kosten niedrig. Und wieder: Zeit, die wir hier sparen, können wir in wichtigere Dinge investieren.
Performance ist in allen Facetten der Software-Entwicklung ein präsentes Thema. Wir haben viele Standard-Lösungen für bekannte Engpässe: Zum Beispiel wissen wir, dass wir Netzwerk-Verkehr besser ausnutzen, wenn wir CSS/JS-Dateien zusammengefügt, minifiziert und komprimiert ausliefern. Aber niemand besitzt die Zeit und Unvernunft, das von Hand zu erledigen. Deswegen brauchen wir Task-Runner und Module-Bundler. Ein weiteres Beispiel: Wir wissen, dass das DOM ein zentraler Flaschenhals komplexer JavaScript-Programme ist. Deshalb wollen wir die DOM-Operationen auf ein Minimum beschränken. Aber das kann man auch unmöglich per Hand machen, deshalb haben wir Frameworks wie React, die die schmutzigen Details für uns erledigen.
Ich bin voll und ganz auf eurer Seite, dass gute Accessibility und UX mehr Bedeutung zuteil werden muss. Und die beste Möglichkeit uns Zeit und Mittel dafür zu verschaffen ist uns sie woanders freizumachen. Die genannten Tools tragen dazu bei.