Suche
Artikel

Was ist das größte Problem für Programmierer? Gib mir einen Namen!

Was ist die schwierigste Aufgabe eines Programmierers? Wer die Antwort auf diese Frage in komplizierten Algorithmen oder verzwickten Software-Architekturen sucht, der gehört zu einer Minderheit. In einer Umfrage auf Quora haben sich nämlich 49% der Teilnehmer für die Option “Das Benennen von Dingen” als ihre schwierigste Aufgabe entschieden.

Pizza, Bier & Speedtesting: Willkommen beim Usability Testessen!

Bei der Produktentwicklung spielt die Usability eine immer wichtigere Rolle. Zum einen sind die Anforderungen an die Benutzerfreundlichkeit von Software auch für den Einsatz im beruflichen Umfeld deutlich gestiegen. Zum anderen zeigen Marktentwicklungen, dass diejenigen Anbieter, die anwenderorientiertes Usability-Wissen in ihren Produkten berücksichtigen, eine hohe Kundenzufriedenheit erzielen und besonders erfolgreich sind. Der Frage, wie die Benutzerfreundlichkeit in konkreten Projekten verbessert werden kann, spürten am 7. Mai die Teilnehmer am Frankfurter “Usability-Testessen” nach.

IDEs in der Cloud: “Es ist Zeit für eine Konsolidierung!” [Mike Milinkovich]

Unter dem Dach der Eclipse Foundation haben die Unternehmen Codenvy, IBM, Pivotal und SAP Ende 2014 eine Initiative für Cloud-basierte Entwicklungswerkzeuge gegründet. Über Ausrichtung und Zielsetzung der Initiative unterhielten wir uns auf der EclipseCon Europe mit Eclipse-Foundation-Direktor Mike Milinkovich. Neben Details zum Top-Level-Projekt Eclipse Cloud Development (ECD) verrät uns Mike auch seine Vision für die Softwareentwicklung in der Cloud.

Testen mit Selenium

Das Erstellen funktionaler Oberflächentests gehört in Entwicklerteams erfahrungsgemäß zu den weniger beliebten Aufgaben. Mit Selenium Builder existiert ein Werkzeug, mit dem sich diese Aufgaben einfach und ohne tiefere Kenntnisse einer Programmiersprache durchführen lassen.

Wenn Scopes fremdgehen: Mehr Spaß mit CDI-Scopes

Eine klassische Webarchitektur besteht mindestens aus einer Serviceschicht, die in CDI @ApplicationScoped ist, und einer darüberliegenden Controllerschicht, deren Beans je nach Anwendungsfall @RequestScoped, @ConversationScoped oder @SessionScoped sind und die Services injiziert bekommen. So weit, so normal. Dank des CDI-Proxy-Mechanismus ist aber auch der umgekehrte Weg möglich, also die Injection einer @RequestScoped, @ConversationScoped oder @SessionScoped Bean in eine @ApplicationScoped Bean (also z. B. in den Service). Auf diese Weise lässt sich z. B. ein @RequestScoped EntityManager, der gerade angemeldete Benutzer oder der aktuelle Mandant überall injizieren, wo sie benötigt werden – jedenfalls in der klassischen Webanwendung. Sobald man aber asynchron unterwegs ist, ergeben sich einige Schwierigkeiten, die wir in dieser Kolumne näher beleuchten und umschiffen wollen.

Die Zwiebelarchitektur und ihre Vorzüge

Zwiebeln schneiden brennt in den Augen, nicht aber in der Softwarearchitektur. Ganz im Gegenteil. Die Zwiebelarchitektur (Onion Architecture), eingeführt durch Jeffrey Palermo, stellt die weitbekannte Layer-Architektur (Layered Architecture) auf den Kopf. Lernen Sie die Zwiebelarchitektur und ihre Vorteile in diesem Artikel an einem praktischen Beispiel kennen. Kombiniert mit der Strukturierung Ihres Codes nach Features wird Ihre Architektur nach diesem Muster einfacher zu verstehen, zu ändern und zu erweitern sein.

OSGi enRoute: Ein neues Framework für OSGi-Anwendungen

Als wir im Jahr 1998 mit den Arbeiten an den OSGi-Spezifikationen begannen, hatten wir die Gelegenheit, ein Weltklasseframework für kleine Netzwerkgateways zu schaffen – das aktuelle Raspberry Pi ist im Vergleich dazu extrem leistungsfähig. Heute, sechszehn Jahre später, ist OSGi die führende Modularitätslösung für Java-Anwendungen auf dem Markt. Es ist eine Technologie, die wir für unabdingbar für die Entwicklung anspruchsvoller Java-Anwendungen halten. Dennoch zeigen diverse Blogs, dass einige falsche Annahmen über OSGi im Umlauf sind.

5 Dinge, die einen guten Entwickler ausmachen

Programmieren ist nicht ein nur ein Job – Programmieren ist eine Kunst. So sieht das zumindest Matt Weisfeld. Für den Entwickler, der gleichzeitig Universitätsprofessor ist, ist das Schreiben von Software ein kreativer Prozess wie Musikmachen – demzufolge würde es auch ähnlichen Regeln unterliegen und vergleichbare Denkprozesse ansprechen.

Buchtipp: Basistraining Vektorgrafik

Zur Zeit von Palm OS war die Welt in Ordnung: Programmsymbole mussten in einer oder zwei Auflösungen vorliegen. Die rasante Weiterentwicklung der Informatik sorgt dafür, dass Assets heute für eine Vielzahl verschiedener Bildschirme tauglich sein müssen.

Next Generation QA

Die Entwicklung und der Betrieb von Software haben sich in den vergangenen Jahren deutlich verändert. Agile Vorgehensweisen, Test-driven Development, Continuous Integration und DevOps sind erwachsen geworden und werden in immer mehr Unternehmen eingesetzt. Wie positioniert sich aber die Qualitätssicherung (QA) in diesem stark veränderten Umfeld?

Beyond Agile: Antifragilität in der Softwareentwicklung

In Softwareprojekten kommt es immer wieder zu Ereignissen, die nicht vorhersehbar sind. Manchmal sind deren Auswirkungen so drastisch, dass sie dem Typ Ereignis entsprechen, das seit Nassim Nicholas Taleb als Schwarzer Schwan bezeichnet wird (siehe: Taleb, Nassim N.: „Der Schwarze Schwan“). Um solche Schwarzen Schwäne als Grundlage von Verbesserung zu nutzen, muss ein System eine besondere Eigenschaft haben: Es muss antifragil sein (siehe: Taleb, Nassim N.: „Antifragilität“). Erste Ideen, wie die Bereiche Softwarearchitektur und Projektmanagement von Antifragilität profitieren können, will dieser Artikel zeigen.

Buchtipp: Java 8 – Die Neuerungen

Kaum ist Java 8 verfügbar, schon hat Michael Inden sein Buch über die Neuerungen dieser Version fertiggestellt. Dazu zählen natürlich Lambdas und Streams, die dem Entwickler endlich eine Programmierung im funktionalen Stil erlauben – oder einfach nur den Code kompakter und lesbarer zu schreiben – vorausgesetzt, man hat sich an die Syntax gewöhnt. Programmierer, die auch in C# zu Hause sind, kennen und schätzen das Konzept schon lange.

JMockit: Einfach. Alles. Mocken

Herkömmliche Mocking-Frameworks schränken die Möglichkeiten des Entwicklers ein: Statische oder finale Methoden und direkte Konstruktoraufrufe werden vermieden oder führen zu ungünstigen Tests, weil sie nicht ohne Weiteres gemockt werden können. Erweiterungen wie PowerMock lösen das Problem wenig elegant. Abhilfe schafft das mächtige Mocking-Framework JMockit.

Ein Big-Data-Anwendungsfall im Bereich der Schwarmintelligenz

Großereignisse werden gerne genutzt, um bestimmte Marken oder neue Produkte intensiv zu bewerben. Diese Chance wollten auch die Autoren dieses Beitrags mit der Fußballweltmeisterschaft 2014 in Brasilien wahrnehmen, um die Vorteile von Big Data für geschäftliche Innovationen an einem konkreten Einsatzbeispiel zu demonstrieren. Ein passender Zeitpunkt: Denn aufgrund der Negativschlagzeilen zur NSA-Affäre gerieten die positiven Aspekte von Big-Data-Lösungen damals extrem ins Hintertreffen.

Herausforderungen bei der Einführung von Lean-Ansätzen

In diesem Artikel wird anhand von Experteninterviews die Entwicklung von Lean-Management-Methoden im Schweizer Telekommunikationsunternehmen Swisscom untersucht. Neben der geschichtlichen Betrachtung zeigt der Beitrag auf, wie sich der Konzern heute für das Thema engagiert. Ein besonderer Fokus wird auf die kulturellen Unterschiede zwischen der japanischen und der mitteleuropäischen Arbeitskultur gelegt. Abschließend wird die Frage beleuchtet, welche Herangehensweisen eine breite Akzeptanz bei den Mitarbeitenden fördern können und wie Ängsten vorzubeugen ist.

Microservices: Agilität mit Architektur skalieren

Softwarearchitektur beschreibt die Aufteilung von Softwareprojekten in Module – aber die Architektur hat nicht nur Auswirkungen auf die Struktur der Software, sondern auch auf die Organisation der Projekte. Microservices machen sich das zu Nutze und sind so eine neue Hoffnung für produktive und nachhaltige Softwareentwicklung – gerade auch bei großen Teams.

Lazy Loading im Kontext von REST und HATEOAS

Im Artikel “Weckruf der Moderne” habe ich eine RESTful-Servicearchitektur für die Hamburger Sparkasse vorgestellt. Im folgenden Artikel geht es um ein wichtiges Detail dieser Architektur: Wie können im Kontext von REST und HATEOAS Referenzen auf Geschäftsobjekte dargestellt, übertragen und nachgeladen werden?

Warum Projekte tatsächlich scheitern

Erfolgreiche IT-Projekte zu absolvieren ist keine Selbstverständlichkeit. Immer wieder müssen Projektlaufzeiten verlängert werden und mehr Geld als ursprünglich geplant hinein gepumpt werden, damit ein Projekt überhaupt zu einem Ende kommt. Und selbst dann ist das Ergebnis im Vergleich zu den ersten Erwartungen sehr ernüchternd. Nur Veränderungen an der richtigen Stelle des Entwicklungsprozesses können mitunter wahre Wunder bewirken. Allerdings wird diese richtige Stelle nicht immer erkannt, sondern versucht, einen oder mehrere Schuldige für den Misserfolg zu finden. Wir möchten in diesem Artikel zeigen, dass gut gewählte Investitionen das Erreichen der Projektziele vereinfachen können und somit die Zahl der erfolgreich abgeschlossenen Projekte gesteigert werden kann.

Aus der Java-Trickkiste: Hotspot-Schalter

Die meisten Java-Entwickler wissen, wie man bei einer JVM die maximale Heap-Größe setzt oder – zumindest vor Java 8 – den Speicher für die Permanent Generation vergrößert. Aber Hotspot hat eine Vielzahl weiterer Einstellmöglichkeiten, und um die geht es diesen Monat.

Buchtipp: Vaadin

Die Webentwicklung ist nicht jedermanns Sache: JavaScript, CSS usw. haben die eine oder andere Eigenheit, die auch erfahrene Programmierer zu Wutanfällen reizt. Vaadin erlaubt die Entwicklung von Webapplikationen mit normalem Java. Es ist ein klassisches Client-Server-Framework. Der am Rechner des Benutzers laufende Browser wird mit einer Art Runtime ausgestattet, die die vom Server gelieferten Befehle abarbeitet und ihre Resultate grafisch darstellt.