Mein Praktikum bei ECX

Mein Praktikum bei ECX – wie ich von klassischen Programmiersprachen in die agile Softwareentwicklung gewachsen bin.

Ein Bericht von Lennart Ukenings – Praktikant bei ECX
„Meine Ausbildung neigte sich dem Ende zu und die letzte große Hürde – ein sechsmonatiges Praktikum – stand bevor. Ich habe mir das Unternehmen ecomXperts in Jena ausgesucht, da es noch in den Start-Up-Schuhen steckt und mir im ersten Gespräch viele Entwicklungsmöglichkeiten für die Zeit gab.
Jetzt stehe ich hier, es ist mittlerweile Februar und ich bin seit diesem Monat als Softwareentwickler fester Bestandteil des internen Entwicklungsteams.
Doch lasst uns noch einmal in den Juli springen und meine ersten Aufgaben, Herausforderungen und Ziele im Praktikum rekapitulieren:

Mein Praktikum begann ich am 20.7.2020 mit einem freundlichen Empfang in unserem Büro am Engelplatz. Nach einer kurzen Tour durch das Büro und einer Vorstellungsrunde, bekam ich einen Einblick in das Tagesgeschäft, unsere Kunden als auch meine Aufgaben.

Die erste große Aufgabe war das Anpassen von Rechnungs- und Angebotstemplates für das ERP Tool Dolibarr. Wir setzen Dolibarr für die Verwaltung von firmeninternen Aufgaben wie z. B. Rechnungsstellung, Kundenmanagement, Personalmanagement als auch Finanzen ein. Bevor ich mit der eigentlichen Arbeit starten konnte, musste ich mir eine lokale Instanz auf meinem Rechner aufsetzen. Wir hatten uns in diesem Fall für eine virtuelle Maschine entschieden, auf der dann mein Dolibarr laufen würde. Nachdem alle technischen Voraussetzungen gegeben waren, analysierte ich die Anforderungen meiner Kolleginnen und verglich diese mit dem IST-Zustand. Es stellt sich schnell heraus, dass die Standardtemplates zwar die gewünschten Funktionen bereitstellten, aber wenig Design zu bieten hatten. Dolibarr und die Templates sind in der Programmiersprache PHP geschrieben und kompliziert aufgebaut, auch die Kommentierung des Quellcodes in Französisch machte es für mich am Anfang nicht besonders einfach. Glücklicherweise ließen die ersten Erfolgserlebnisse nicht lange auf sich warten und ich konnte meinen ersten Prototypen präsentieren.
Es gab jedoch auch öfters Situationen, in denen ich mir dachte: „Wieso geht es den jetzt schon wieder nicht“ doch ich habe mich immer weiter motiviert und nicht aufgegeben. Das lag auch besonders an der Hilfsbereitschaft aller Kollegen*innen! Trotz Stresssituationen war immer Zeit für Fragen oder einen kleinen Austausch.

Die nächste Aufgabe war ein Update eines CRM-Systems. Als erstes musste ich mich mit dem Begriff CRM (Customer Relationship Management) vertraut machen, denn Updates kannte ich ja schon aus meiner Ausbildung. Doch es kam alles anders… Denn so einfach, wie ich mir das Updaten vorgestellt hatte, war es am Ende nicht. Glücklicherweise konnte ich mich auf die Hilfe meines Teams verlassen, die mir mit Tipps, Tricks und Unterlagen zu Seite standen.

Nach der ersten Einarbeitungsphase bin ich direkt in unser inHouse Entwicklungsteam integriert worden und arbeite seitdem an Kundenprojekten und -anforderungen. Jetzt ging es also erst richtig los. Unser Team arbeitet vorwiegend an der Eigenentwicklung für unsere Kunden, mit Fokus PWA-Entwicklung – falls ihr noch nie von PWAs bzw. Progressive Web Apps gehört habt, schaut euch gerne unseren ersten Blogbeitrag dazu an! Bei ECX arbeiten wir agil – konkret hat sich unser Team für das Arbeiten nach Scrum entschieden. Das heißt für uns, Teamarbeit wird großgeschrieben, genauso wie die klassischen Scrum Events und jede Menge innovative Ideen. Unser Team besteht aus 4 Entwicklern, unserer Scrum Masterin und unserer Produkt Ownerin.

Ich hatte noch nie mit agiler Software Entwicklung zu tun, aber der Einstieg war superleicht und es macht auch immer noch Spaß jeden Tag zu hören mit welchen Herausforderungen meine anderen Teammitglieder, genauso wie ich jeden Tag zu tun haben, wo wir uns unterstützen können oder welche Themen wir im Team erfolgreich abgeschlossen haben. Unsere virtuelle Unterstützung ist das Gitlab Board, das nutzen wir für all unsere Tasks und Stories im Sprint und natürlich für die große Sprintwechsel-Zeremonie. Ich muss zugeben es hilft bei der Ordnung und ohne das Board, würde ich wahrscheinlich die Hälfte der Aufgaben vergessen.
Wichtig ist ob die Arbeit Spaß macht und das macht sie jeden Tag. Es gibt immer interessante Themen und Aufgaben von Langeweile ist keine Spur. In der Mittagspause kann man auch mal ein witziges Gespräch führen und sich danach mit voller Begeisterung in die nächste Aufgabe stürzen. Auch uns hat Corona – wie es bestimmt bei den meisten Firmen ist – ziemlich im Griff. Meine Kollegen*innen mussten schon Anfang des Jahres viel im Home-Office arbeiten. Das haben wir jetzt wieder etabliert. Trotz der aktuell schwierigen Lage nutzen wir Tools wie MS Teams, um unsere tägliche Arbeit „fast“ wie im Büro zusammen zu erledigen. Unsere regelmäßigen Team-Meetings und Updates ermöglichen es uns auch ohne gemeinsame Mittagspausen ein wenig auszutauschen – das finde ich klasse!

Wenn ich mein Praktikum bei ECX mit einem Wort beschreiben müsste, wäre es definitiv das Wort NEU! Ich durfte mich mit unglaublich vielen Themen beschäftigen und einarbeiten, die ich in meiner Ausbildung noch nie gehört hatte. Definitiv eine Herausforderung, die ich gerne gemeistert habe und der ich mich in Zukunft als Festangestellter weiter stellen werde.“

Angular vs. React – Eine praktische Gegenüberstellung

Angular  vs. React – Eine praktische Gegenüberstellung

Wer heute Web-Applikationen entwickelt, um zukunftsfähige und kundenzentrierte Funktionen zur Verfügung zu stellen, wird nach dem Definieren der Benutzerreise schnell auf die Frage stoßen, wie das Ganze denn technisch umzusetzen ist:

Welches Framework ist das richtige für das Projekt- welches bringt den größten Nutzen? Dieser Artikel stellt die zwei größten Frameworks, die es zurzeit auf dem Markt gibt, gegenüber.

Um es kurz zu machen:

 

 

Angular oder React:  Google vs. Facebook?

Bei Angular wird auf Funktionsreichtum gesetzt, welcher über einfachen Code hinaus geht. React bietet eine Plattform, welche alles „out-of-the-box“ liefert.

Facebook verfolgt mit React hingegen genau den gegenteiligen Weg und bietet eine minimalistische Oberfläche und nur ein kleines Featureset. Facebook selbst bezeichnet React als Bibliothek, nicht als Framework. Seine schlanke Struktur und die große Community erlauben hohe Freiheitsgrade, was die individuelle Umsetzung von Funktionen betrifft.

Vergleicht man unter diesem Aspekt beide Kontrahenten nach der Installation, fällt dieser Unterschied sofort ins Auge. Statusverwaltung, UI Manipulation, Routing, Form validation und ein Http Client? Angular bietet alles sofort verfügbar, React nur die ersten beiden.

Angular JS vs React: die Programmiersprachen

React nutzt klassisches Javascript mit einem JSX Feature, in welchem HTML Code spezifiziert wird. Das macht es einsteigerfreundlich für Programmierer, welche schon Erfahrungen mit Java und HTML haben. Einzig das Einbinden des HTML in den Code ist eine Hürde, die für Junioren etwas Übung bedarf.

Angular auf der anderen Seite trennt HTML und Code strikt. Zu beachten ist, dass Angular die Typescript-Logik nutzt, welche ein Superset zu Java ist. Das macht es schwerer, Angular zu erlernen als React. – Erfahrene Programmierer*innen werden beide Systeme relativ leicht verstehen.

Angular oder React: Wie steht es um den Betrieb?

Die Frage ist recht einfach zu beantworten: Beide laufen sehr gut.

Angular ist etwas träger, was dem Funktionsumfang geschuldet ist. Good News: Google arbeitet daran.

Läuft eine Applikation, ist der Betrieb bei beiden Systemen sehr ähnlich und deshalb im direkten Vergleich zu vernachlässigen.

Betrachtet man die internationale Projektverteilung, hat Angular mit ca. 65% zu 35% zumeist die Nase vorn.

Man sieht das auch an der Summe der Suchanfragen, Jobangebote und Rollouts für Firmen. Zu beachten ist aber, dass Google Firmenrollouts nicht veröffentlicht und das wird die tatsächliche Verteilung etwas verändern. In Deutschland ist es ein Kopf-an-Kopf-Rennen. Das allein ist also kein klarer Faktor für oder gegen Angular JS oder React.

Angular vs. React: Welches Framework darf es sein?

Als Plus kann man Googles Updatepolitik führen: regelmäßig, alle 6 Monate, gibt es Updates für Angular. React bekommt auch Updates, aber unregelmäßig.

In unseren Kundenprojekten beraten wir die Klienten zu Beginn umfänglich, aber ganz allgemein läuft es darauf hinaus: Angular ist besser geeignet für größere Projekte, welche einen hohen Umfang an Features haben sollen. Hier ist die Time-to-Market durch den hohen integrierten Funktionsumfang einfach viel kürzer. Natürlich sind Communitylösungen zwar oft kreativ, brauchen aber viel Vor- und Nacharbeit und spezielle Tests.

React ist besser für schlanke, sehr spezifische Projekte geeignet, oder für Programmierer*innen, die keine neue Sprache lernen möchten und gerne an Lösungen basteln. Maßgeschneidert ist hier das Schlüsselwort.

Viele Worte sind dazu gesagt (nicht nur von uns), aber schlussendlich lässt sich sagen, dass beide Frameworks das gleiche können – nur der Weg zum Ziel ist unterschiedlich. Schaut genau auf die Bedürfnisse des Projekts und auf Eure Skills und Talente, dann wird sich schnell zeigen, welcher Weg für jedes Projekt der richtige ist.

Viel Erfolg!

 

Ab heute arbeiten wir agil! Alles easy, oder was?

Wenn man an das Thema agile Methoden denkt, fallen vielen Leuten als erstes die Worte Scrum, Kanaban oder auch Design Thinking ein. Bücher, Artikel und Blogposts haben uns die verschiedenen Facetten der einzelnen Rahmenwerke in den schillerndsten Farben bereits dargestellt. Braucht es denn dann also überhaupt noch einen neuen Post über dieses Thema?

Wir denken – auf jeden Fall!

Agiles Arbeiten in einem diversen Team

Wir bei ecomXperts arbeiten agil. Was bedeutet das für uns genau? Eine Schulung, und alles läuft auf einmal leichter? Nicht ganz. Was uns auf unserer Wandlung zur agilen Arbeitsweise geholfen hat, waren nicht noch mehr Beispiele, Anregungen und Möglichkeiten, z. B. Scrum in ein komplett neues und agil-fremdes Team zu integrieren.

Vielmehr war es der Wunsch, unser Team aus erfahrenen und junioren Kolleginnen und Kollegen auf einen gemeinsamen Erfolgskurs zu bringen. Mit viel Geduld und Kommunikation entstand ein eigenes, internes agiles Team.

Unser beratender Psychologe Dr. Uwe Röther meint, „Das Team ist nicht nur multikulturell und bilingual, sondern auch an verschiedenen Standorten verteilt. Die Agilität bot daher einen sehr guten Weg, zusammen Regeln zu erarbeiten unter welchen das Team zusammen arbeiten möchte aber auch muss.“

Die ersten Schritte ins agile Arbeiten

Ab Tag eins floss also neben der Entwicklungsarbeit auch Agilität in den Arbeitsalltag ein. Mit wiederkehrenden Ereignissen, Kanban-Boards, kurzen Dienstwegen und offener Kommunikation konnten wir somit schnell eine Arbeitsatmosphäre schaffen, die das Arbeiten leichter und erfolgreicher macht!

„Wichtig war und ist alle Standorte zusammen zu ziehen, als Teil einer teambildenden Maßnahme. Eine Option vor Corona war, gemeinsame Happening Abende zu veranstalten, um auch über Themen fernab der Arbeit zu sprechen. Die Brücken zwischen den Menschen müssen gebaut werden, um die Connections auch auf anderen Ebenen zu stärken. Mit Corona ist es notwendig geworden, dies virtuell zu ermöglichen.“ – Dr. Uwe Röther, Psychologe.

Mit dem Einsatz von agilen Methoden für unsere internen Entwicklungen, beim Kunden und im alltäglichen Arbeitsleben haben wir eine Kultur geschaffen, in der jede*r selbstbestimmt und selbstorganisiert seine und ihre Aufgaben erledigt.

Auf den ersten Blick klingt das wie die ideale und perfekte agile Welt, die wir (nur?) aus Büchern und Berichten anderer kennen. Doch auch wir stehen täglich vor der Herausforderung uns daran zu erinnern, dass sich die „perfekte“ Ausführung von Scrum oder Design Thinking auch nach den tatsächlichen Begebenheiten richten muss.

Agiles Arbeiten hat Grenzen

Nicht nur bei Kunden, die wenige Berührungspunkte und Wissen in diesem Bereich mitbringen, muss man den Spagat zwischen interner, agiler Welt und „klassischen“ Projekten meistern. Auch die erste Zeit innerhalb unserer Organisation war eine Herausforderung. In kleinen Schritten mussten wir lernen, Begeisterung zu schaffen für neue Herangehensweisen, das Evaluieren von Themen und Rahmenwerken, die für uns in Frage kommen und das Setzen von Zielen.

Unsere ersten Iterationen waren somit geprägt von Scrum Events, einem stets aktuellen Board – sichtbar für alle – und 4 Wochen Sprints zur Umsetzung von Aufgaben jeglicher Art. Mittlerweile nutzen wir Boards mehr und mehr für Feedback zu Aufgaben, Topic-Tracking sowie zur klassischen Softwareentwicklung. Wir haben für uns gemerkt, dass Agilität im Alltag gut zu uns passt und uns dazu motiviert noch einen Schritt weiter in unserer täglichen Arbeit zu gehen.

Wie sieht es bei Euch aus? Arbeitet Ihr schon agil oder lieber in Wasserfallprojekten? Was wünschen Eure Kunden? Falls Ihr Fragen, Anregungen oder Erfahrungen mit uns teilen wollt, meldet Euch gerne via LinkedIn oder auch Email.

Für kleine und große Teams, die den Wunsch nach agiler Arbeitsweise haben, bieten wir maßgeschneiderte Workshops an! Egal ob Du nur in das Thema reinschnuppern möchtest oder deine Organisation in dieser Richtung weiterentwickeln willst, melde dich gern über einen unserer Kanäle!

 

Brauche ich eine Webseite, eine App oder sollte ich auf eine PWA setzen?

Vor einigen Jahren war es normal, dass Unternehmen eine Webseite und eine native App entwickelten, um optimal am Markt präsent zu sein. Das ist nun nicht mehr nötig, denn die PWA stellt viele App-Funktionen über eine URL zur Verfügung.

Morgens in der U-Bahn ist es allgegenwärtig – der Blick aufs Handy hat die unhandliche Tageszeitung längst abgelöst. Aber nicht nur News werden „on the fly“ konsumiert, denn Konsumenten werden ständig von Anzeigen, Influencern oder einem Newsletter in Webshops oder Webseiten geleitet, auf denen die jüngsten Angebote zum Kauf einladen.

Aber – sind es denn wirklich Webseiten? In der U-Bahn kann man davon ausgehen, dass eine klassische Webseite entweder ganz unerreichbar wird oder Ladezeiten hat, die die idealen 3 Sekunden weit überschreitet. Die Absprungrate schnellt ins uferlose. Da tut sich die Frage auf: Geht das nicht besser?

Was ist eine PWA?

Klar! Mit einer PWA! Eine PWA ist ganz vereinfacht gesagt eine Webseite die sich anfühlt wie eine App. Als „Progressive Web App“ ist sie ein Hybrid, der als größten Pluspunkt die volle Funktionsfähigkeit auch bei instabiler oder ausgefallener Netzverbindung garantiert.

Sie ist für mobile Endgeräte wie Smartphones und Tablets optimiert und umgeht das aufwändige Überzeugen der User, eine App herunterzuladen und regelmäßig upzudaten. Dadurch, dass die Inhalte einer PWA nicht in einer nativen Anwendung „versteckt“ sind, können zudem Suchmaschinen ganz einfach auf die Inhalte zugreifen.

Vorteile einer PWA

Läuft eine Webseite auf einer PWA-Technologie, kann sie direkt über eine Suchergebnisseite angesteuert werden. Als Nutzer einer PWA kann man sich diese als „Verknüpfung“ auf dem Startbildschirm hinzuzufügen und fertig. Kein App-Store, kein Download, keine Updates nötig.

Carsten Polack, unser Experte für Web-Abwendungen ist sich sicher: „Klassische Webseiten werden mehr und mehr von neuen Technologien abgelöst. Das mobile Internet ist heute allgegenwärtig. Eine PWA bietet viel mehr als es eine Webseite kann. Nutzer profitieren von der fast unbegrenzten Erreichbarkeit und neuen Funktionen. Ein Kamerazugriff erlaubt das Hochladen von Fotos, zum Beispiel.“

PWAs bieten auch deutliche Vorzüge in der Entwicklung. Viele Funktionen riefen noch vor nicht allzu langer Zeit nach nativen Apps, doch hier muss für jedes Betriebssystem eine eigene App gebaut werden – mit eigenen Update-zyklen für jede unterstützte Version und natürlich separaten Gebühren für die Platzierung in App-Stores.

„Nicht zu verachten ist auch der Sicherheitsaspekt“, ergänzt Carsten. „https ist der neuste Standard der Websicherheit. Zur Kommunikation zwischen Webclient und Webserver ist bei PWAs dieses Protokoll vorgeschrieben!“

Grenzen einer PWA

Noch kann eine PWA nicht alles bieten, was eine native App kann. Spezielle Funktionen, noch bessere Ladezeiten und optimale Ressourcennutzung des Handys machen native Apps immer noch zum Besten, was das mobile Internet leisten kann. PWAs können zumeist vor allem auf Kontakte, Kalender, die Kamera oder Bluetooth zugreifen. Auch wenn eine PWA keine betriebssystemseitigen Updates braucht, so steigt doch der Aufwand zur Unterstützung von vielen verschiedenen Browsern.

So wie man mit den treffenden SEA-Kampagnen seine Webseite an die Spitze von Suchergebnisseiten setzen kann, so kann man eine native App in den relevanten Kategorien der App-Stores mit Anzeigen zuoberst platzieren. Verglichen mit den Kosten für SEA kommt man in App-Stores vergleichsweise günstig davon. Da Nutzer gar nicht wissen, dass eine PWA verwendet wurde, werden sie in einer Suche im App-Store natürlich nicht fündig.

Also ist eine native App doch eigentlich die bessere Lösung?

Carsten meint, nein. „Wie stellt man denn sicher, dass eine eigens entwickelte App auch genutzt wird? Nach einer Studie von App Annie verbringen User ganze 43 Tage pro Jahr in irgendwelchen Apps. Im Schnitt sind auf deutschen Smartphones etwa 80 Apps installiert – wirklich genutzt werden aber nur 40! Ob da die eigene App für die eigene Nische wirklich dabei ist?“

Eine fachkundige Beratung unter Beachtung aller Geschäftsinteressen kann Klarheit schaffen, ob eine App, eine Webseite oder eine PWA der optimale Weg ist, die eigene Zielgruppe zu erreichen. Melden Sie sich einfach bei uns, wenn Sie diesbezüglich Fragen haben.