Digital Productivity im Development

Heute will ich euch ein paar Tools vorstellen, die ich in meiner Arbeit als Entwickler einsetze: UXPin, Eclipse, GitHub, Source Tree und einige mehr …

Autor Mirko Eberlein
Datum 21.09.2017
Lesezeit 10 Minuten

Heute will ich euch ein paar Tools vorstellen, die ich in meiner Arbeit als Entwickler täglich einsetze. Gehen wir erst einmal von der Ausgangslage aus. Was macht ein Entwickler den lieben langen Tag? Die meisten Menschen denken, dass wir den ganzen Tag auf www.stackoverflow.com herumlümmeln und ansonsten nur Kaffee trinken und Witze erzählen. Dem ist – obwohl ich ziemlich viele Witze erzähle – nicht so.

In meiner Position als Senior-Entwickler habe ich ein umfangreiches Aufgabengebiet. Ich muss natürlich programmieren, aber auch Aufwände schätzen, mit Kunden Software analysieren und besprechen, Zeit in Rechnung stellen und vieles mehr. Das sind eine Menge Aufgaben und um diese zu bewältigen, verwenden wir in unserer Firma sehr viele Tools.

Ich werde folgend die einzelnen Aufgabenbereiche erläutern und dazu die bei uns im Unternehmen verwendeten Tools beschreiben. Fangen wir mal einfach an.

Aufgabenerfassung mit Jira

Wie erfassen wir Aufgaben und behalten die Übersicht in unseren Projekten? Wir verwenden dafür Jira. Jira erlaubt es uns, das gesamte Projektmanagement in einem Tool abzuwickeln. Wir können Aufgaben erstellen und Zeiten auf einzelne Tasks rapportieren. Dabei können wir Jira für neue Projekte verwenden oder auch für Bestandskunden, um Bugs und Erweiterungen zu erfassen. Zusätzlich haben wir eigene Instanzen für bestimmte Projekte, in denen der Kunde mit uns auf der Plattform kooperiert. Er kann Bugs melden und sofort Kommentare von den Entwicklern lesen und darauf reagieren. Kleinere Änderungswünsche können direkt geschätzt und durch den Kunden bestätigt werden. Dadurch entfällt der oft mühselige Weg über Mittelsmänner oder Mails. Durch die «rapportier»- Funktion ist es auch vorzüglich zur Kostenkontrolle geeignet.

Kommen wir nun zum Start eines neuen Projekts.

Zuerst kommt eine Anfrage, die vom Sales-Team bearbeitet wird. Meist kommen noch einige Treffen mit dem Kunden dazu, an denen auch ich teilnehmen darf. Hat der Kunde sich für uns entschieden, geht es in die Konzeptionsphase.

Prototyping mit Uxpin und Pidoco

In der Konzeptionsphase verwenden wir derzeit zwei Tools. Meist ist es so, dass Entwickler und Kunde eine unterschiedliche Vorstellung des fertigen Programms haben. Eine einfache Möglichkeit, für Klarheit zu sorgen, sind Prototypen. Dafür verwenden wir entweder www.uxpin.com oder www.pidoco.com. Beides sind Tools, mit denen man sehr gut und schnell klickbare Prototypen erstellen kann. Hierbei geht es nicht nur um das Design, sondern primär um die Bedienung.

Ist das UI (User Interface) so, wie es sich der Kunde vorstellt? Sind die Abläufe logisch und verständlich?

Oft sieht der Kunde schon in der Prototyp-Phase Dinge, an die er vorher nicht gedacht hat. Mit dem Erstellen von Prototypen kann man sich sehr viel Zeit und Ärger ersparen. Die Möglichkeit, etwas zu entwickeln, was so nicht verlangt worden ist, oder was nicht dem entspricht, was der Kunde sich wünscht, ist fast ausgeschlossen. Probleme in den Prozessabläufen werden ebenfalls sichtbar. Ausserdem hat man durch Prototypen die Möglichkeit, Vorschläge zur Programmverbesserung besser zu präsentieren.

Tipp: Achten Sie bereits bei Prototypen auf eine saubere Optik!

Meine Erfahrung hat gezeigt, dass bereits in dieser Phase das Auge immer mitschaut. bzw. mitentscheidet. Das heisst, es ist wichtig, auch in der Prototypen-Phase Wert auf eine saubere Optik zu legen. Wenn dem Kunden etwas optisch nicht gefällt, lehnt er es meist schon ab, ohne die genaue Funktion zu kennen. Ebenso ist es mit schon fertigen Programmteilen – präsentieren Sie Fachabteilungen oder Kadern nicht-gestylte Programmteile, so kann die Funktionalität noch so perfekt sein, Sie werden den Kunden nie zufriedenstellen können.

Prototyp Screen UXPin

UXPin digitale produktivitäts-tool für developer

Protptyp Screen Pidoco

Pidoco digitale produktivitäts-tool für developer

Beide Programme bieten die direkte Kollaboration mit dem Kunden. Das heisst, Kunden können Kommentare im Prototypen hinterlassen und so den Prototypen gemeinsam entwickeln. Da die Mitarbeiter, die an den Prototypen arbeiten, meist aus dem Fachbereich sind, ist die Akzeptanz des Produkts in der Regel auch höher.

Kommen wir nun zu meinen Hauptgebiet, der Entwicklung

Zuerst geht es um das Entwicklungswerkzeug. Wir programmieren den Grossteil unserer Aufträge in Java. Dafür verwenden wir Eclipse. Es gibt noch zwei andere grosse Player für Java-Entwicklung: Netbeans und IntelliJ. Welche IDE Sie verwenden, bleibt Ihnen überlassen. Alle drei bieten umfangreiche Unterstützung in der Entwicklung, egal, ob es um das Aufsetzen eines Projekts oder das Integrieren von Maven oder Gradle geht. Auch haben Sie die Möglichkeit, eigene Plugins zu schreiben.

Tipp: Arbeiten Sie mit identischen Versionen

Arbeitet mehr als eine Person an einem Projekt, so empfiehlt es sich, dass alle Entwickler die gleiche IDE in der identischen Version verwenden. Unterschiedliche Versionen oder gar IDEs können zu Problemen und Fehlern führen, die nicht offensichtlich sind. So suchen Sie eventuell sehr lange nach einem Fehler, der einfach zu verhindern gewesen wäre. Es gibt nicht die beste IDE. Finden Sie eine IDE, die Ihnen Spass macht und erlernen Sie den Umgang damit. Es wird mit Sicherheit nicht das letzte Entwicklungswerkzeug sein.

Als Nächstes betrachten wir die Versionskontrolle

Wir setzen bei der Versionskontrolle voll auf GIT. Wir verwenden als Repository Stores Git Hub, Bitbucket, Amazon CodeCommit und einen eigenen Git-Server. Um auf die Git Repositories zuzugreifen, verwende ich noch das Programm Source Tree. Source Tree stellt meine aktuellen Projekte in einer guten grafischen Übersicht dar und vereinfacht mir so den Umgang mit meinen verwendeten Repositories.

Beispiel: Source Tree Amazon Code Commit – Lambda Service

digitale produktivitäts-tool für developer

Source Tree ist kostenlos verfügbar unter www.sourcetreeapp.com

Nun geht es um Continuous Delivery

Hier verwenden wir einen Jenkins Server oder bei AWS-Projekten die AWS Code Pipeline. Beide sind umfangreich konfigurierbar. Wir haben zum Beispiel ein sehr grosses Kundenprojekt in den USA. Wenn wir nun in den Development-Zweig Code committen, so wird dieser automatisch auf dem Testserver deployet. Wenn wir in Produktion committen, so deployen wir zu mit dem Kunden festgelegten Wartungsfenstern. Auch dies geschieht automatisiert. Bei dem Kunden verwenden wir Jenkins. Die Code Pipeline von AWS funktioniert auf die gleiche Art und Weise.

Zum Testen unserer Applikation verwenden wir neben Unit Tests auch JMeter. Damit erstellen wir meist Stresstests, um grosse Last auf dem Server zu simulieren. JMeter ist ein Apache-Projekt und kann unter jmeter.apache.org heruntergeladen werden.

Weitere Tools

Nun stelle ich noch einige zusätzliche Tools vor, die ich immer wieder gern verwende.

Browser-Kompatibilität

Fangen wir an mit HTML- und CSS-Entwicklung. Hier greife ich gerne auf http://caniuse.com/ zurück. Dort kann ich sehen, welcher Browser in welcher Version HTML-Tags oder CSS-Funktionen unterstützt. Dies ist vor allem wichtig, wenn der Kunde  ältere Browser-Versionen im Einsatz hat.

Quellcode-Validierung

Als Nächstes komme ich zum Validieren von Daten. Hier verwende ich für HTML und XHTML die Seite validator.w3.org, um die Korrektheit meines Quellcodes zu überprüfen. Um JSON-Dateien auf Fehler zu überprüfen, setze ich meist jsonlint.com ein. Sind die Daten sensibel, überprüfe ich sie lokal im Notepad ++. In der Welt von Microservices wird sehr viel mit Restservices gearbeitet. Bei grossen Projekten mit vielen Restservices verwenden wir für die Dokumentation meist Swagger. Swagger bietet sowohl die Möglichkeit der Dokumentation als auch das Testen von Webservices.

Swagger Screen

swagger - digitale produktivitäts-tool für developer

Als Alternative verwende ich, wenn ich nur mal schnell einen Webservice testen möchte,  gerne auch das Google Chrome Plugin Postman. Dies AddOn bietet die Möglichkeit zum Einrichten von Tests für diverse Restservices.

Postman Screen

postman - digitale produktivitäts-tool für developer

 

Es gibt sehr viele Tools und Webseiten, die das Leben des Entwicklers erleichtern können. Sie müssen die verschiedenen Tools testen und für sich die richtigen finden. Wichtig ist nur, dass Sie Tools verwenden.

Tipp: Das Internet ist dein Freund und Helfer

Zum Abschluss stelle ich noch das letzte Tool vor. Es ist der Browser. Egal, auf was für Fehler Sie beim Programmieren stossen, suchen Sie danach im Internet. Es gibt fast immer jemanden, der diesen Fehler auch schon mal hatte und die Lösung kennt. Finden Sie nichts, fragen Sie. Sehen Sie Fragen und kennen die Antwort? Antworten Sie.

Dies ist ein Thema, über das man noch sehr viel mehr schreiben könnte. Wenn Sie etwas genauer wissen wollen, hinterlassen Sie einen Kommentar, ich freue mich auf Ihre Inputs!


Über den Autor

Mirko Eberlein

Mirko Eberlein ist Senior Developer bei der Webgate Consulting AG und Trainer im Bereich Webentwicklung bei Digicomp. Er ist seit 17 Jahren im IT-Umfeld tätig und sich über die Jahre Wissen über verschiedene Programmiersprachen angeeignet. Er versucht sich stets neue Techniken und Trends anzusehen.