Einblicke, Gedanken, Ideen, Veranstaltungen unserer Kollegen, die Europace entwickeln

github

Cleaning up TeamCity build configurations

How to clean up TeamCity build configuration In this blog post I will describe how I went from roughly 150 build configuration, which were copy-pasted from each other, to all of them using a single template and only specifying the differences in each build configuration. TeamCity Kotlin DSL feature was used in order to simplify this normally unbelievably tedious task. The problem We run contract tests on TeamCity. With a big number of microservices, we had an even bigger number of contract tests, each with their own build configuration.

github

Reproducible Assets for CloudFormation Stacks

Reproducible Assets for CloudFormation Stacks When CloudFormation is used to create the infrastructure or application it is important to take a look at the artifacts that are generated and deployed. When it comes to artifacts and especially Java artifacts (jar or zip files) there are some important requirements that have to be followed. Otherwise, the deployment might take longer than required, or in cases where the CDK Pipeline is used to deploy the application the pipeline can go into an infinite loop updating itself over and over again.

github

Github reusable workflows and how to verify them

Github reusable workflows and how to verify them In december 2022 GitHub added the ability to share workflows between private repositories, opening the doors for Enterprises to make use of this feature. In this post I will describe how I implemented this in my APISMART Team and how I developed a system to verify changes to the reusable workflow. Basic knowledge of GitHub Actions is assumed. A working example can be found here: reusable-workflows-with-ci and reusable-workflows-sample-project

github

Github actions and output variables

Sections What are output variables Creating an output Get output values between steps Get output values between jobs Get output variables between workflows Output variables can be powerful and frustrating at the same time. This simple how to, can save you ages of try and error. What are output variables Output variables are like return values of a step which can be used in all down streams like jobs, , reusable workflows and more.

Remote-First mit InnerSource
innersource

Remote-First mit InnerSource

Im Bereich von Open Source Projekten ist es bereits seit Jahrzehnten üblich, im Unternehmensbereich seit einigen Jahren mehr und mehr verbreitet - mit der Pandemie wurde es plötzlich in der Breite zum Alltag: Remote First. Vieles ist anders, manches neu - aber in vielen Aspekten kann man bei der Umstellung von erfolgreichen Open Source Projekten lernen. Einen ersten Einblick in Best Practices gibt die Augustausgabe des Java Magazins. Mit dabei: Patterns und Erkenntnisse, die uns bei Europace in der Entwicklung geholfen haben, Projekte auf remote-first umzustellen - und im gleichen Atemzug Silos abzubauen und Teams näher zusammenzurücken.

Schmetterlinge in einem Technologieunternehmen
agil

Schmetterlinge in einem Technologieunternehmen

Susanne Schwarzer, Lead Link People & Network, Europace AG _TL;DR: _“Die größte innere Revolution, die wir starten können, ist die eigene Schöpferkraft wieder anzuerkennen.” (L.M.Seiler)__ Gemeinsam Wachstumspfade betreten Teil 1: Vom Fehlerzoom zur Schöpferkraft Wir sind Europace. Europace, ein Technologieunternehmen, heute würde man sagen ein “Fintech”, das über lange Jahre fest im Markt etabliert ist. UND wir sind auf dem Weg. Auch auf dem, ein wirklich selbstorganisiertes Unternehmen zu werden, das sich seiner Leistungskraft bewusst ist und das den Markt neu gestalten wird.

Make Visual Studio Code Awesome
visual-studio-code

Make Visual Studio Code Awesome

Letzte Woche fand die JSNation-Konferenz statt. Einer der Speaker war Caleb Porzio, der Entwickler von Alpine.js. Ich war beeindruckt von seiner effizienten und fokussierten Arbeitsweise mit Visual Studio Code während seiner Präsentation. Falls ihr eure Arbeit mit dem Tool verbessern wollt, kann ich euch sehr das von Caleb zusätzlich getriebene Projekt https://makevscodeawesome.com/ ans Herz legen. Aktuell bekommt ihr beim Subscriben regelmäßig eine Mail mit vielen guten Hinweisen, wie ihr Visual Studio Code übersichtlicher macht und euren Workflow optimieren könnt.

Alles bleibt anders
munter

Alles bleibt anders

TL;DR Mein Nachname ist jetzt Münter. Sonst ändert sich nichts. “Wie? Seit 11 Jahren verheiratet und jetzt änderst du deinen Nachnamen? Geht das denn? Warum machst du das? Und wieso du den Namen von Caro und nicht andersherum?” Nun. Wir sind Eltern geworden. Spät und nach langer Zeit. Und jetzt sind wir zu Dritt. Und das ist natürlich erst mal großartig. Faszinierend, verbunden und das große Wunder, dass so viele schon kennen.

Mock Dependencies in Unit-Tests mit TypeScript
typescript

Mock Dependencies in Unit-Tests mit TypeScript

In unserer Angular Anwendung KreditSmart nutzen wir zum Testen Karma, Jasmine angereichert mit Chai und Sinon. In vielen Komponenten- und Service-Tests versuchen wir die Abhängigkeiten zu mocken bzw. zu stubben. Das kann schon mal einige extra Zeilen Quellcode mit sich bringen. Beim Zugriff auf die Stubs möchten wir zudem gerne Codevervollständigung seitens der IDE oder des Editors beim Zugriff und Typsicherheit haben. Der Stub soll die gleichen Methoden wie der gemockte Service haben.

InnerSource Commons Summit

InnerSource Commons Summit

(German version below) It was right at the beginning of the Corona crisis in Europe - a day after Easter to be precise - that the InnerSource Summit EU was scheduled to take place in Madrid. Pretty early on we realized that it was unlikely that the summit would be like any other summit. So a decision as made, to move it to a virtual event. Long story very short: The event was very well attended, talks were awesome - in particular attendee interaction during breakout sessions was a great addition.

I love Free Software Day
open-source

I love Free Software Day

I love Free Software day 2020 (German version below) Simply saying thank you - something we often forget in the day to day flood of tasks, accountabilities and responsibilities. Today the Free Software Foundation Europe is celebrating the “I love free software day” to express gratitude to those who are underpinning a lot of today’s businesses by developing Free and Open Source Software. Much as last year we would like to join the celebration and say thank you to the developers backing the software that makes our platform perform well on a daily basis.

Using templates to drive standards
innersource

Using templates to drive standards

(German version below) Imagine the following situation: Some team has found a best practice for solving an issue - e.g. they’ve identified that in their projects they are using the same setup over and over again. It would make sense to not only share that best practice with others but establish a standardized way of working around it. But what if others aren’t yet encountering this issue? How should they judge whether the suggested standard is a good idea or whether having a standard around it makes any sense at all?

FOSDEM 2020
fosdem

FOSDEM 2020

Knapp 450 Stunden - die Zeit die es bräuchte, um alle Vorträge der FOSDEM 2020 die letztes Wochenende in Brüssel stattfand, anzuschauen. Von Legal and Policy, über Container und Security, Datenbanken, Netzwerk, Java, Go, Quantum Computing, Continuous Integration bis hin zu Embedded/ Automobile und Open Source Design reichte die Themenbreite. Dieses Jahr hat die FOSDEM gezeigt, dass nicht nur technische Themen für den Bereich Open Source entscheidend sind. Im Community and Ethics Main Track hat Danese Cooper gezeigt, welche Schritte notwendig sind, um auf kommunaler Ebene für die Adaption von Freier und Open Source Software zu sorgen.

Europace's journey to InnerSource
innersource

Europace's journey to InnerSource

Europace is a network-centric organization within a network of organizations (Hypoport). It uses the self-organization framework Holacracy as its operating system—loosely coupled, autonomous teams are working together for a common purpose. But with autonomy also comes a trend towards self-sufficiency. In the years after starting with self-organization we experienced a lot of “reinventing the wheel” instead of company-wide collaboration. In order to find a way out of this dilemma we looked at the open source world, especially on how collaboration works in such a distributed world.

Lazy consensus vs explicit voting
innersource

Lazy consensus vs explicit voting

Imagine the following situation: You would like to drive a change in the gh#innersource repository. You already have commit access. Typically you’d make the change, post it as a pull request and wait until someone has time to review and approve. (German version below) There is another way that we typically choose when the change is relatively uncontroversial: In the original pull request, indicate that the model for the change is a lazy consensus model where the pull request is kept open for a defined number of days - and if nobody objects, it will get merged after this period is passed.

Issue Use Cases
agile

Issue Use Cases

(German translation below) … for asking questions In addition to tracking decisions in the making issues are being used for those who would like to ask InnerSource related questions. Asking them in the issue tracker instead of in 1-on-1 settings has three advantages: There’s more than one knowledgeable individual that can answer the question. Others who may have the same question later on (or even now, in case they are afraid to ask the question) see that there are others who openly learn something new.

Using issues for brainstorming
innersource

Using issues for brainstorming

Imagine the following situation: You’ve seen a certain discussion pop up multiple times and would like to draw the lessons learned together - but in a way that leaves space for others to provide their knowledge and experience. One setup that turned out to be effective for this type of situation in gh#innersource was the following workflow: Open an issue, post the problem statement at the very top and invite people to discuss steps towards a solution of the stated problem.

Meetup organisation
innersource

Meetup organisation

For the introduction of InnerSource at Europace we relied on gathering a group of people interested in the topic. While most of the discussion is designed to be remote-first with all issues being discussed in an asynchronous way we also set up an internal monthly InnerSource meetup. That meeting is open to each and everyone for attending. Meeting dates, location, and agenda is posted in advance: In a GitHub issue dedicated to the particular meeting in the gh#innersource project, On the Slack channel with the same name as the GitHub project (slack#innersource), As a calendar invite to those attending regularly and to those who participated the last time.

InnerSource: Adding base documentation
innersource

InnerSource: Adding base documentation

Starting the InnerSource initiative we needed a place to collect documentation as well as a place for operational coordination. We decided to dogfood suggested tooling and created a GitHub repository. Going forward, I will refer to it as gh#innersource here. Before publicly discussing gh#innersource as a project, a certain amount of base documentation was being created. As a baseline this meant creating an initial README.md. This document serves as an entry point for newcomers to the project.

Voting in new Trusted Committers
innersource

Voting in new Trusted Committers

Trusted committers are the ones responsible not only for software development but also for mentoring, for pulling new people into the project, for helping and supporting downstream users with the goal of adding them to the Trusted Committer team. But how do you go about adding new Trusted Committers? The way this works in the InnerSource project at Europace is that for people showing obvious commitment, one of the existing Trusted Committers will step forward, nominating them as a potential new Trusted Committer - giving a short explanation of why.

Running an InnerSource initiative
innersource

Running an InnerSource initiative

Leading by example - how we introduced InnerSource and coordinated adoption of InnerSource best practices inside of Europace. In Adopting InnerSource we described how we were following what Vijay Gurbani (Vijay K. Gurbani, Anita Garvert, and James D. Herbsleb, “Managing a Corporate Open Source SoftwareAsset,” Communications of the ACM 53, no. 2 (2010) 155–159.) describes as an infrastructure based model of introducing InnerSource to a new organisation. What does that mean?

Remote-Work - everything is possible
remotework

Remote-Work - everything is possible

Seit Juni 2018 bin ich Softwareentwicklerin in der PrivatKreditUnit von Europace. Nach ein paar Jahren Englandaufenthalt bin ich 2018 zurückgekommen. Da ich aus privaten Gründen regelmäßig in England sein wollte, war für mich wichtig, flexibel zu Hause oder im Büro arbeiten zu können. Da war die PKU von Europace perfekt für mich. Hier wurde mir gesagt, dass es super flexibel ist und ich im Prinzip so oft und so lange von zu Hause arbeiten kann, wie ich will.

  • Ruth Motza
    Ruth Motza
Protip - multiple Configurations mit einem Klick starten in IDEA
intellijidea

Protip - multiple Configurations mit einem Klick starten in IDEA

Wir entwickeln immer weniger monolithische Applikation und versuchen Verantwortungen in einzelnen Services umzusetzen. Diese Services müssen jedoch immer noch miteinander kommunizieren. Auch in der lokalen Entwicklung bin ich immer mal wieder auf diese Kommunikation angewiesen, um neue Features integrativ nachzuverfolgen. Diese wegzumocken reicht dann nicht. Bisher musste ich sämtliche involvierten Projekte in meiner Entwicklungsumgebung IntelliJ IDEA öffnen und dann jeweils eine vorgefertigte Run-Configuration (oder manchmal auch mehrere) starten. Das war ein ganz schönes Jonglieren mit IDEA Instanzen und bedurfte vieler Klicks zum Starten der einzelnen Configurations.

innersource

InnerSource für alle - Europace goes GitHub Enterprise Cloud

Europace und andere Gesellschaften aus dem Hypoport-Netzwerk setzen schon länger auf die Vorteile von InnerSource mit GitHub als Plattform. Um in dem schnell wachsenden Verbund von Unternehmen diese offene Form der Zusammenarbeit auch in Zukunft zu gewährleisten, nutzt Hypoport jetzt GitHub Enterprise Cloud. So haben die autonomen Teams und Gesellschaften von Hypoport die Möglichkeit ihren Code in eigenen GitHub-Organisationen zu verwalten, ohne den Zugang zu den Repositories der anderen Teams zu verlieren.

Protip zum schnellen Formatieren von Code in IDEA
intellijidea

Protip zum schnellen Formatieren von Code in IDEA

Jeder kennt vermutlich die Autoformat-Funktion in IntelliJ IDEA. Damit lässt sich jeglicher Content entsprechend einrücken und umbrechen, damit dieser einem gewohnten Standard entspricht. Möchte man aber etwa JSON aus dem Browser oder andere Codeschnipsel mal eben irgendwo übersichtlich anzeigen, so war mit bisher der Weg in IDEA zu umständlich. Eine Datei erstellen, entsprechende Dialoge zu Versionsverwaltung und Typ beantworten und dann noch darauf achten, dass ich die Datei nicht doch mit einchecke - es fühlte sich einfach nicht bequem an.

I love Free Software Day 2019

I love Free Software Day 2019

Benjamin Weigel: “Eleganz entsteht nicht durch clever genutzte Workarounds, sondern durch richtig verwendete Features. Wenn es das Feature noch nicht gibt und der Bedarf da ist, dann baut man es eben.” Konkret zum Beispiel in den Projekten Cython und serverless-python-requirements. Auch bei Europace setzen wir bei der Entwicklung unserer Plattform für Baufinanzierungen und nahestehenden Finanzprodukten auf eine Reihe von Open Source Projekten. Über einige Einsatzgebiete, Tools, und unsere Erfahrungen damit berichten wir hier im Tech Blog.

konferenz

FOSDEM 2019

Wettervorhersage Brüssel: Heiter bis sonnig, erst ab Wochenende Abkühlung, Schneeregen, Wind - passend zur FOSDEM, die jährlich Anfang Februar an der ULB stattfindet. Wie jedes Jahr verteilen sich mehrere hundert Vorträge auf ein Wochenende. Dazu unzählige Möglichkeiten, sich einerseits direkt vor Ort mit Aktiven aus der Open Source Szene zu treffen, aber auch in Form von Meetups, social Events, Pre- und Post-Konferenzen. Ich persönlich habe mich dieses Jahr auf die Themen Legal, Policy sowie Community mit einem kleinen Abstecher zu Freunden im HPC, Big Data and Data Science Dev Room konzentriert.

Behind my personal scenes
berlin

Behind my personal scenes

Sharing is caring. Sagt man. Ich bin skeptisch. Aber wenn Kollegen um Veröffentlichung bitten. Also gut. Hier meine bisher interne Geschichte vom Hinfallen und Wiederaufstehen. 03.09.2018 Hinfallen Warum der Männerspagat sich – zumindest bei mir selbst – nicht durchgesetzt hat. Wir sind nun wirklich in Berlin angekommen. Nach nur 9 Monaten Immobiliensuche sind wir letztes Wochenende in unsere neue Wohnung eingezogen. Und wie das so ist, gibt es dann natürlich viel zu tun und aufzubauen.

WAS ICH SEHE, WENN ICH AUF EUROPACE SCHAUE
berlin

WAS ICH SEHE, WENN ICH AUF EUROPACE SCHAUE

Unternehmen 4.0 - 2018, Vieles in Bewegung Veränderung. Im letzten Quartel 2017 haben wir angefangen mit Objectives and Key Results zu arbeiten. Wir haben gelernt, es als Instrument einzusetzen, das uns hilft, da anzukommen, wo wir hinwollen. Anfang 2018 haben wir als neues Betriebssystem für die EUROPACE AG Holokratie „by the book“ ausgerufen. Gleichzeitig war die Zeit der Performance Dialoge und damit verbunden in vielen Teams jede Menge Fragen, Unsicherheiten, nicht überall und immer Begeisterung.

Get Better Content With Google.com

Get Better Content With Google.com

The problem You are located outside the US and like to use google.com? You use google.com/ncr and wonder why you are still on your local Google site? The solution Visiting https://www.google.com/preferences and changing your region settings to United States will do the trick. Why is this useful? Get better tech content! In Tech it is common to search for other people thoughts, knowledge, experiences. Often you find better content. NFL scores, NBA scores, NHL scores ;) Just search for nfl scores and you get this: Awesome!

  • leif
    leif
Meinung, Informationsbeitrag und Einwand bei Meetings in der Selbstorganisation
selbstorganisation

Meinung, Informationsbeitrag und Einwand bei Meetings in der Selbstorganisation

Meetings. Ob im Rahmen von Selbstorganisation oder im normalen Arbeitsalltag, entlang holakratischer oder soziokratischer Prozesse - in jedem Meeting begegnen sich Menschen die etwas gemeinsam haben. Es soll ein Problem diskutiert werden, eine Lösung ausgearbeitet oder eine Entscheidung getroffen werden. Der eigentliche Meetingzweck ist hoffentlich für jeden Teilnehmer bekannt und im Idealfall teilen alle Teilnehmer dasselbe Verständnis über diesen Zweck. In der Theorie wird das Erfüllen dieses Zwecks, das Erreichen des Ziels durch Faktoren wie:

Europace InnerSource Prinzipien
konferenz

Europace InnerSource Prinzipien

Entscheidungen für alle zugänglich treffen, Transparenz auch in einer wachsenden Organisation schaffen, Autonomie und Kollaboration in Balance bringen, Teams und Verantwortung organisch wachsen lassen: InnerSource kann ein Mittel sein, Teams in wachsenden Organisationen bei der Zusammenarbeit zu unterstützen, und helfen Silos abzubauen. Die Kollaborationsmuster sind so alt wie die OpenSource Bewegung selbst: “Open source focuses on the practical consequences enabled by these licenses: surprisingly effective collaboration on software development.” (opensource.com). Das sind dieses Jahr 20 Jahre.

Top 6 Blogging Tips From A Pro

Top 6 Blogging Tips From A Pro

In the first 8 seconds, you as a reader decide to stay or leave. Hopefully, you stay ;) If you apply the following blogging tips I received today from the pro-blogger Anne from mediasteak your reader will be thankful. Who Is Your Audience? Think about the people who should read your post. Creepy. I’m thinking about you right now;) I think you like catching up on my points quickly. I think you blogged a couple of times and you are looking for ways to improve your writing and your reach.

  • leif
    leif
Why you should work for us

Why you should work for us

This article was originally published on my private blog, where I avoided mentioning the name of my employer (EUROPACE) to keep the message more focussed. Whenever you read “the company” below, you know which company I’m acutally referring to! I want to tell you about my current employer (a Berlin-based company) and why it’s very unusual as well as being an excellent place to work. I’ve been there for around 1.

Lessons learnt - Github Review Workflow
innersource

Lessons learnt - Github Review Workflow

In den letzten Wochen haben wir etwas genauer auf unsere Github Workflows geschaut. Dabei sind uns einige Patterns aufgefallen, die in vielen Projekten die Zusammenarbeit einfacher gemacht haben, die wir hier teilen wollen. Reviews, Pairing, Sparring Partner Konvention vs. Empfehlung Manche Teams haben zwar informell die Konvention, dass aller Quellcode nach dem vier-Augen-Prinzip entweder im Pair entwickelt wird oder durch ein Review läuft, brechen aber in der Praxis in Einzelfällen mit dieser Konvention.

AgileLeanEurope 2018
konferenz

AgileLeanEurope 2018

Hin und wieder treibt mich etwas an und ich verspüre den großen Drang auf eine Konferenz zu gehen. Einfach mal einen gewissen Kontextwechsel, neuen Input sammeln, Neues dazulernen und sich mit Leuten austauschen. So zog es mich letzte Woche auf die AgileLeanEurope (ALE) Unconference in Zürich und ich möchte gerne ein paar meiner Erkenntnisse teilen. Open Space Die Konferenz wurde als OpenSpace organisiert, was für mich eine neue und sehr spannende Erfahrung war.

...Mein erstes Mal - 4 Tage@Europace...
praktikum

...Mein erstes Mal - 4 Tage@Europace...

Unter dem Slogan „Zukunft@Europace“ absolvierte ich mein Kurzpraktikum bei der Europace AG. Für vier Tage durfte ich mir ein Bild vom System, den Abläufen innerhalb des Systems und besonders von den Menschen, die dort tätig sind, machen. Ich hatte keine konkreten Vorstellungen von dem, was auf mich zu kommen wird. Im Thema der Softwareentwicklung stecke ich nun auch nicht wirklich drin, sodass ich womöglich nicht viel der Inhalte zu hundert Prozent verstehe.

  • Phil Leuci
FrOSCon 2018

FrOSCon 2018

Am 25./26. August fand an der Hochschule Bonn-Rhein-Sieg in Sankt Augustin die 13. Ausgabe der Free and Open Source Conference statt. Europace war im Vortragsprogramm mit einem Beitrag zum Thema “InnerSource: Open Source collaboration patterns beyond public FOSS projects” dabei, in dem wir unsere Erfahrungen mit InnerSource geteilt haben. Lesson learnt im Rahmen der Fragen im Anschluss an die offizielle Q&A Session: Betrachtet man die Konzepte von InnerSource für ein international zergliedertes Unternehmen, kann es aufgrund interner Verrechnungsprozesse oder steuerrechtlicher Gegebenheiten einfacher sein, ein Projekt direkt als Open Source Projekt zu führen.

InnerSource - nicht nur für Entwickler
innersource

InnerSource - nicht nur für Entwickler

Wir haben im April über unsere ersten Schritte in Richtung InnerSource berichtet. Diesmal wollen wir einen Einblick in die Fortschritte in den letzten Monaten geben. Wir haben im Rahmen eines Epics, an dem Vertreter von zwei unserer Units gearbeitet haben, unsere gemeinsame Arbeitsweise weiterentwickeln können. Im Rahmen einer anschließenden Retrospektive haben wir die folgenden Erfahrungen notiert: Besonders Änderungen, von denen viele Stakeholder betroffen sind (prominentes Beispiel hier sind Änderungen an zentralen Schnittstellen) dauern bei einer rein asynchronen Arbeitsweise sehr lange.

Ohne Kultur ist Holakratie halt auch doof
europace

Ohne Kultur ist Holakratie halt auch doof

Vier inspirierende und intensive Tage Holacracy Practitioner Training in Zürich - mit Dwarfs & Giants Vier Tage - meine vier Key Learnings Ohne Kultur ist Holakratie halt auch doof! Tag 1: Sieben Menschen aus verschiedenen Unternehmen gemeinsam in einer Testfirma. Interessant. Unterschiedliche Erfahrungen, Haltungen und Unternehmenskulturen machen sehr deutlich: klare Accountabilities und Rollen helfen und doch wird bei - sagen wir - herausfordernder Kultur der Zusammenarbeit an vielen Stellen Reibung entstehen.

#arbeitanders
arbeitanders

#arbeitanders

Be.Relevant Am 13.05.2018 in der Welt am Sonntag: „Wenn Yong-Kyu Lee in Südkorea Geld überweist, ist das natürlich in zwei Minuten beim Empfänger. Wenn er die Wohnung aufschließt, tut er das selbstverständlich mit seinem Fingerabdruck. Und wenn er irgendwo bezahlen will, zückt er dafür sein Handy – was sonst? Doch der international erfolgreiche Pianist lebt auch in Deutschland, das inzwischen seine Heimat geworden ist. Hier muss er ständig einen Bund klimpernder Schlüssel mit sich herumtragen, dazu eine Geldbörse mit vielen schweren Münzen, und alles geschieht unendlich viel langsamer, nicht nur bei der Banküberweisung.

International Sociocracy Online Conference - all talks are now online!
sociocracy

International Sociocracy Online Conference - all talks are now online!

Michael Geiß and I were flashed when we saw over 170 people in one zoom room. Wow. It was exciting to give our talk that way, thanks Sociocracy For All for this opportunity. All talks are now online and are roughly 15 min short. Please take a look at these great resources and appetizers! Here is our talk sociocracy in an agile world (~12min). Our unit is ~30 people strong and is using sociocracy, while our company (~150 people) around us is using holacracy.

Self Organization - Do's and Don'ts
sociocracy

Self Organization - Do's and Don'ts

Our unit was established in summer 2015 and is a merger from three different teams. Right from the start (with little to no knowledge of holacracy and sociocracy) we used circles and consent (IDM). This combination results in circles that are primarily formed around competences and a decision process that nobody liked. Early in 2017, we started to learn more about sociocracy with an initial workshop from Bernhard Bockelbrink from S3 and with the help and consulting from Ted Rau from SoFA.

  • leif
    leif
Post Mortem zum KreditSmart Incident vom 20.02.2018
post-mortem

Post Mortem zum KreditSmart Incident vom 20.02.2018

Am Dienstag, dem 20. Februar 2018 kam es in der Zeit von 13 bis 17 Uhr zu einem mehrstündigen Ausfall von KreditSmart und dem Vorgangsmanagement. Wir möchten hier kurz schildern, wie es dazu kam und wie wir eine Lösung erarbeitet haben. Verlauf Bereits kurz vor 12 Uhr springt unser Monitoring an und meldet sämtliche Services im Umfeld von KreditSmart und dem Vorgangsmanagement als nicht erreichbar. Das ist nicht nur unüblich, sondern auch schwer vorstellbar.

Europace ist startklar für Holakratie
selbstorganisation

Europace ist startklar für Holakratie

TL;DR Die initiale Rahmenstruktur von Europace steht. Für die EUROPACE Plattformentwicklung gibt es einen verbindenden Kreis “Produktentwicklung”. Jeder Kreis bei Europace soll nach Regeln der Holakratie arbeiten - das sind unsere initialen gemeinsamen Spielregeln bei Europace. Dort, wo sie nicht passen, werden wir sie anpassen. Verantwortlich für den Change ist der #ep_orga Circle, der aus Vertretern der Units besteht. Er begleitet die Teams und Kollegen bei der Einführung von Holakratie. Die initiale Kreisstruktur von Europace ist startklar Europace wird holakratisch — eine wichtige Entscheidung für unser Unternehmen.

Erfahrungen mit GitHub Pull Requests
github

Erfahrungen mit GitHub Pull Requests

Unser Team besteht aktuell aus 9 Entwicklern. Einige davon arbeiten dauerhaft im Home Office, aber auch die restlichen nehmen sich regelmäßig die Freiheit, von zu Hause zu arbeiten. Code Reviews wurden immer weniger aufgrund der verteilten Arbeit und der steigenden Breite an Arbeitsthemen. Um sowohl die Code Qualität wieder etwas zu verbessern als auch mehr Wissensaustausch in fachlichen und technischen Themen zu fördern, haben wir uns entschieden vermehrt auf GitHub Pull-Requests (PR) zu setzen.

Post Mortem zum KreditSmart Incident vom 07.02.2018
post-mortem

Post Mortem zum KreditSmart Incident vom 07.02.2018

Am 07.02.2018 war KreditSmart für viele Vermittler nur eingeschränkt benutzbar. Anfragen waren sporadisch sehr langsam oder funktionierten gar nicht. Unser Team bei EUROPACE erhielt entsprechende Hinweise durch Zendesk. Insgesamt dauerte der Incident ca. 4 Stunden, bis KreditSmart wieder wie gewohnt funktionierte. Wie kam es dazu und was werden wir zukünftig tun, um solche Unannehmlichkeiten für unsere Nutzer zu vermeiden? Vermehrte Hinweise auf Probleme Am Vormittag um ca. 11 Uhr bemerkten einige unserer Mitarbeiter und unsere Nutzer, dass KreditSmart langsamer als gewohnt arbeitete.

"Open Source is just about the source, or isn't it?" - Vortrag beim DataWorks Summit Berlin

Vom 16. bis 19. April kommt der DataWorks Summit nach Berlin: Organisiert von Hortonworks Inc. bringt die Konferenz zwei Tage Vorträge u.a. zu den Themen Apache Spark, Hadoop, NiFi, Data Science nach Berlin. Viele der vorgestellten Projekte sind bei der Apache Software Foundation angesiedelt, dies hat Auswirkungen darauf wie Beteiligte an diesen Projekten zusammenarbeiten - weit über den reinen Quellcode hinaus. Aus diesem Grund gab es bei den Organisatoren den Wunsch, einen Vortrag ins Programm aufzunehmen zum Themengebiet “Apache Way” - was heißt es, als Projekt von der Apache Software Foundation gehostet zu werden.

FOSDEM - 2018
foss

FOSDEM - 2018

Zu voll, zu viele Schlangen, zu wenig Platz - viele freundliche Leute, Belgische Waffeln, Eis, ein ASF Dinner mit den Apache Weisen und einigen neuen Gesichtern, alle paar Schritte gute Freunde treffen die man sonst oft jahrelang nur online sieht, viel zu viele gute Vorträge, um sie alle zu sehen und aufzunehmen: Meine persönliche Zusammenfassung der diesjährigen FOSDEM. Meines Wissens ist die FOSDEM das größte Treffen von Leuten im Umfeld Freier Software das in Europa stattfindet.

sociocracy in an agile world - our talk at the International Sociocracy Online Conference - May 1st
soziokratie

sociocracy in an agile world - our talk at the International Sociocracy Online Conference - May 1st

Michael Geiß and me are talking about sociocracy in an agile world at the International Sociocracy Online Conference. We’ll talk about how we formed a cross-functional unit out of 3 teams. Instead of autocracy or anarchy we use sociocracy to foster alignment and autonomy, while taking our long time agile software development practices into account. Besides our talk there are at lot of other interesting talks, like What does S3 bring to Sociocracy?

  • leif
    leif
Europace wird holakratisch

Europace wird holakratisch

Management 1.0 is dead Ein Unternehmen hat einen Zweck. Einen Purpose. Ein Ziel, dass es antreibt und alle Teile eines Unternehmens eint. Im Management 1.0 wurde dieser Zweck von einigen, wenigen Menschen definiert. Klassische Hierarchie, klassische Führung, klassisches “oben/unten”. Selbstorganisation heißt, sich selbst steuernde, selbst regulierende und autonome Systeme zu schaffen. Das ist keine Anarchie. Im Gegenteil: Selbstorganisation ist die einzige Chance, wie Entscheidungen wirklich dort getroffen werden können, wo die besten Informationen vorliegen.

Unsere neue Unit lotst Verbraucher durch den Finanzierungsdschungel
recruiting

Unsere neue Unit lotst Verbraucher durch den Finanzierungsdschungel

„Wer beschäftigt sich bei uns eigentlich mit dem Verbraucher?“ Sich diese Frage zu stellen ist gut, sie beantworten zu können noch besser. Unsere Antwort ist eine ganz neue Unit, weil wir davon überzeugt sind, dass ein unbedingter Fokus auf die Consumer Experience zu besseren Produkten führt. Aber was kann man sich unter dieser neuen Fokussierung vorstellen? „Den Verbraucher mehr in den Mittelpunkt rücken!“, „Den Verbraucher in die Beratung einbeziehen!” – In einer Organisation, die wie Europace keine unmittelbaren Berührungspunkte mit dem Endkunden hat, ist das leichter gesagt als getan.

Die Kreise mit Leben füllen - Nominierung und Driver Mapping
soziokratie

Die Kreise mit Leben füllen - Nominierung und Driver Mapping

Unsere initialen Erfahrungen beim Einführen von Soziakratie führten dazu, dass in jedem Kreis ein Circle Coordinator (CC) gewählt wurde und abschließend der General Circle entstand. Dieser bekam den zuvor definierten Auftrag die Domänen und Treiber für unsere Kreisorganisation zu definieren bzw. dies in die Unterkreise mitzugeben. Im Folgenden möchte ich auf den Ablauf und auf unsere Erfahrungen mit diesen beiden wichtigen Schritten zu unserer Selbstorganisation eingehen. Wir nominieren die Circle Coordinators Bottom-Up Der Circle Coordinator ist für die Organisation und den operationalen Betrieb eines Kreises verantwortlich.

Incident bei KreditSmart - ein Blick hinter die Kulissen
post-mortem

Incident bei KreditSmart - ein Blick hinter die Kulissen

TL;DR Er kommt meist überraschend, führt zu sprunghaftem Ansteigen des Adrenalinspiegels und alle Beteiligten sind froh, wenn er vorüber ist - der Incident. Wie wir bei EUROPACE mit ihm umgehen und wie wir aus ihm lernen. Houston - wir haben ein Problem Am 21.11.2017 war KreditSmart (ein Teilsystem der EUROPACE-Plattform) für etwa 2 Stunden nur sehr eingeschränkt benutzbar. Eine der Kernfunktionalitäten - die Ermittlung von Privatkreditangeboten - war für mehrere tausend Vermittler nicht verfügbar.

open-source

Of hammers and screwdrivers: When not to use Hystrix

tl;dr Check if the power of Hystrix ( or any other tool ) fits your requirements. If it feels some kind of weird - it probably is. the players Hystrix and its friends ( like Eureka & Co. ) are part of the shiny new world of ‘companies hand out their great tools for free!’. And indeed they are - not only because they are production tested real world tools but also due to the effort the community puts into documentation and community management - thanks :) On the other hand one always should keep in mind: Those tools are not only made by but as well made for that very company.

So praktisch ist Slack!
pku

So praktisch ist Slack!

Im Vergleich zur Nutzung von Email für die interne Kommunikation hat Slack einige wesentliche Vorteile. Slack ermöglicht eine offene und transparente Kommunikation Statt über große Verteilerlisten alle möglicherweise Interessierten anzuschreiben, oder seine Informationen nur mit wenigen vermeintlich relevanten zu teilen, kann sich in Slack jeder proaktiv Informationen holen und sich einbringen. Pull statt Push. Das Email-Kommunikationsmuster sieht vor zu antworten. Zumindest denken wir das alle. Also fleissig antworten, oben, unten, im Text, und wenn wir offline sind, darf natürlich die out-of-office Antwort nicht fehlen.

  • leif
    leif
Selbstorganisation - Do’s and Don’ts
selbstorganisation

Selbstorganisation - Do’s and Don’ts

Die Privatkredit Unit (PKU) wurde Mitte 2015 aus drei Bereichen gegründet und nutzt seitdem Kreise und Konsent. Anfang 2017 haben wir begonnen uns in Soziokratie (und S3) einzuarbeiten und sind dabei unsere Organisation darauf umzustellen. Bei der Selbstorganisation sowohl im Kontext der PKU als auch außerhalb haben wir unterschiedliche Verhalten und Probleme wahrgenommen und Erfahrungen gesammelt. Einige dieser wollen wir hier nochmals kurz verdeutlichen und zusammenfassen, um die anschließenden Empfehlungen besser nachvollziehen zu können.

  • leif
    leif
open-source

Open Source – Warum eigentlich selbst aktiv veröffentlichen?

67% – laut der 2016 von Blackduck Software und North Bridge veröffentlichen „Future of Open Source“-Umfrage ist dies der Prozentsatz der befragten Unternehmen, die ihre Mitarbeiter ermutigen sich an Open-Source-Projekten aktiv zu beteiligen. Ein Drittel der befragten Unternehmen beschäftigen Mitarbeiter, die ihre Arbeitszeit ausschließlich in Open-Source-Projekte investieren. Die Gründe sich an OSS-Projekten zu beteiligen sind vielfältig. Konkrete Zahlen nennt die bereits angesprochene Umfrage: 67% beteiligen sich, um Bugs und Probleme zu beheben.

Soziokratie zur Stärkung der Selbstorganisation und Autonomie - ein Erfahrungsbericht
soziokratie

Soziokratie zur Stärkung der Selbstorganisation und Autonomie - ein Erfahrungsbericht

Unser Ziel ist es, eine funktionierende Selbstorganisation im Team zu etablieren. Vor kurzem haben wir unsere Organisationform hinterfragt und mittels der Soziokratie unserem Ziel entsprechend angepasst. Die dabei gemachten Erfahrungen, möchte ich an dieser Stelle gerne teilen. Vor etwas 2 Jahren haben wir eine vollfunktionale Unit gegründet, die sich dem Thema Privatkredit widmet und vom Vertrieb, über die Produktentwicklung bis zum eigenem Betrieb reicht. Dazu haben wir Kollegen aus 2 agile Entwicklungsteams zusammengebracht und das Key Accounting integriert.

refactoring

Konsolidierung von Businesslogik mit Hilfe von ATDD und Feature Toggle

Wie viele andere Unternehmen, stehen auch wir immer wieder veraltetem Code gegenüber. Die Marktplatz-Unit der EUROPACE AG verantwortet u.a. die Webanwendung zur Beratung und Vermittlung einer Baufinanzierung, BaufiSmart. Viele Prozesse sind in diesem Produkt enthalten, so wie die Abbildung der Provisionen des Vermittlers am jeweiligen Ergebnis, um im Falle eines Antrags daraus die entsprechenden Zahlungsforderungen im Backendsystem zu erzeugen. Anwendungsfall Wie bei allen lebenden Softwareprodukten, verändern sich Anforderungen oder Sachverhalte. Das macht die Evolution der Software aus.

Contract Testing in Practice
contract-test

Contract Testing in Practice

Mit dem Einsatz von Micro Services gewinnt die Kommunikation über Schnittstellen an Bedeutung. In den letzten Jahren hat sich dabei der Einsatz von lose gekoppelten Technologien gegenüber binär gekoppelten Technologien durchgesetzt. Es stellt sich jedoch die Frage, wie die Kompatibilität der Schnittstellen getestet und sichergestellt werden kann. Für das Testen von lose gekoppelten Schnittstellen wurden folgende Ziele ausgerufen: Unabhängige Entwicklung von Client und Server Client und Server sollen sich unabhängig voneinander entwickeln können, solange die Änderungen weiterhin kompatibel sind, d.

pku

Protip zur Verwaltung mehrerer IDEA Fenster

Bei der täglichen Arbeit sind schnell mal mehrere Projekte und somit mehrere IntelliJ IDEA Fenster geöffnet. Beim Wechsel zwischen den einzelnen Fenstern wird dann jeweils der Titel bestehend aus Dateiname, Projektname und Projektpfad angezeigt: MyClass.java - myPro...deaProject/arbeit/myProject. Durch dessen Länge ist der Titel zudem noch gekürzt. Wird jedes Projekt auf einem separaten Desktop platziert, so wird hier der gleiche schwer zu lesende Titel dargestellt. Dies erschwert uns als Entwickler das Auffinden eines konkreten Fensters sehr.

API First mit Swagger und SpringFox

Auf der EUROPACE Plattform setzen wir schon seit langem APIs ein, um die verschiedenen Module und Services miteinander kommunizieren zu lassen. Einige APIs können bereits öffentlich verwendet werden, wie PEX (HTTP/JSON) oder BEX (SOAP/XML). Genauere Informationen können in unserem GitHub-Projekt eingeholt werden. Wir, Peter Sauer und Daniel Ranke, sind Entwickler des Marktplatzes für Immobilienfinanzierung und möchten unsere Erkenntnisse bei der Entwicklung einer neuen API (Vorgänge und Anträge aus BaufiSmart auslesen) teilen.

Innovative team management techniques meetup @ Europace - Wrap up

Hallo zusammen, eine ausführliche Zusammenfassung des Meetups gibt es von Isabel im Achnee Blog . Der Vortrag von Leif ist online auf Vimeo sowie die Slides hier: Achnee Meetup: Warum wir denken, dass ein flexibles und verteiltes Arbeitsmodell immer wichtiger wird von EUROPACE auf Vimeo. Der Vortrag von Björn ist ebenfalls online auf Vimeo sowie den Slides hier: Achnee Meetup: Gehaltsfindung in der Gruppe - ein Experiment von EUROPACE auf Vimeo.

Innovative team management techniques meetup @ Europace

Hallo zusammen, die Europace AG plant gemeinsam mit Async Cat Herding am 28. Februar 2017 einen Nachmittag rund um das Thema innovativer Team Management Methoden. Das Ganze findet bei der Europace AG in der Klosterstraße 71 in Mitte statt. Euch erwarten spannende Vorträge (in deutscher Sprache) plus die Möglichkeit euch zu vernetzen und auszutauschen. Details wie Vorträge und Speaker finden sich im achnee-blog - einen direkten Link zur kostenlosen Anmeldung gibt es aber auch hier.

Exploration Day Dezember 2016 bei Hypoport

Mitte Dezember fand bei Hypoport wieder ein Exploration Day statt, zu dem alle Kollegen herzlich eingeladen waren. Eine Woche zuvor konnten beim eday-Lunch Ideen ausgetauscht werden und die Teams sich finden. Insgesamt nutzten acht Teams die Gelegenheit dem Arbeitsalltag zu entfliehen und sich neuen Ideen, Gedanken und Experimenten zu widmen. Gleich drei Teams haben sich mit der Bot-Programmierung beschäftigt. Andere Themen waren ein Lernspiel, eine App zur Speisekartenauswahl für die Mittagspause, das Refactoring auf Java Lambdas, eine automatische Übersichtserstellung aller Services und eine auf Prometheus basierende Health-Anzeige in der Taskleiste.

  • leif
    leif
docker

Blue/Green Deployment with Docker InfraKit

We’re a big fan of everything related to continuous deployment. There’s one aspect to tackle when continuously delivering new releases to our clients: we don’t want their connections to break during a deployment, because they might just be in the process of editing a form - with their customers sitting right beside them. Instead of the increased risk to have an unavailable backend, we want our clients to not even notice any change.

8 IntelliJ-Shortcuts - kennst du all diese nützlichen Helfer?

Zum professionellen Entwickeln von Software gehört heutzutage eine gute IDE einfach dazu. Und so richtig flott geht das Programmieren natürlich, wenn man die Shortcuts beherrscht. Hier sind ein paar unserer (hidden) Champions von IntelliJ: 8. Move Line Up/Down (Alt + Shift + Cursor Up/Down) Ordnungsfanatiker in aller Welt kennen sie: Statt Zeile markieren, ausschneiden und wieder einfügen - einfach verschieben. https://www.jetbrains.com/help/idea/2016.2/adding-deleting-and-moving-code-elements.html 7. Sublime style multi select (Alt + Shift + Mouse Click) Dieser kleine Helfer kann in den unterschiedlichsten Situationen richtig viel Zeit sparen: Zum Beispiel beim Anpassen von Testdaten oder ähnlichen Code-Mustern.

Achtsamkeit – Wenn wir Gefühle nicht mehr ignorieren

Unser Agile Coach Oliver Pägelow hat einen interessanten Artikel zum Thema Achtsamkeit geschrieben: Achtsamkeit wird oft als spirituell verstanden und Meditation wird einer Wohlfühlfraktion zugeschrieben, die nicht hart arbeiten muss. In diesem Beitrag beleuchte ich die Bedeutung von Achtsamkeit für den Erfolg einer Firma in der heutigen Zeit und beschreibe, warum Google und SAP diesem Thema einen besonders hohen Stellenwert zuschreiben. Begeisterte und erfolgreiche Menschen sind die Basis für eine erfolgreiche Firma.

  • leif
    leif
Create Your Own Twitter Follow Button
pku

Create Your Own Twitter Follow Button

If you want to embed a Twitter Follow Button in your website you can use their Generator. It has limited configuration options. To style it your way you just need to know that a follow me is triggered by calling the link <a href="https://twitter.com/intent/follow?screen_name=leifhanack">Follow me</a> where screen_name is the twitter account name. Either with or without leading @. I like this solutions because it is plain and simple. No need to include their javascript.

  • leif
    leif

Peer Feedback beim Alternative Leadership & Team Organization Meetup

Vor einiger Zeit schrieb mich Matthias Beikert von den SI-Labs an und fragte, ob ich vielleicht Lust hätte etwas über Peer Feedback bei seinem Alternative Leadership & Team Organization Meetup zu teilen. Das Meetup selbst ist mir schon in der Vergangenheit aufgefallen, denn es bot stets ein spannendes Themenspektrum. Daher habe ich auch gern zugesagt. Bereits während meines Vortrages hat sich ein angeregter Austausch mit den TeilnehmerInnen ergeben. Es zeigte sich dabei einmal mehr, dass eine offene Feedbackkultur von vielen TeilnehmerInnen als wichtiges Handlungsfeld gesehen wird.

Leadership Days bei Hypoport
management

Leadership Days bei Hypoport

Führung betrifft jeden. Denn jeder muss und soll in seinem Kontext täglich eigenständig Entscheidungen treffen, bei denen er nicht extra eine Führungskraft braucht. Das ist jedenfalls unsere Philosophie. Deshalb haben wir Ende 2015 das erste Mal zu den Hypoport Leaderhip Days (LSDs) unter dem Motto „Zusammen Führen“ eingeladen. Das Thema Führung ist zu wichtig, als dass sich nur disziplinarische Führungskräfte darüber unterhalten Teilnehmen konnten alle KollegInnen, die an den Themen moderne Führung und (Selbst-) Organisation interessiert sind – unabhängig von ihrer jeweiligen Rolle in der Organisation.

R User Group: Method Comparison Studies (MCS) by Kevin O'Brien at Hypoport (17.12.2015)

Schedule Doors open at 19:00 After short introductions and „Open Mic Session“ the main event starts at 19:30. Abstract Kevin O’Brien (University of Limerick, Ireland) talks about Method Comparison Studies with R : A whistlestop tour of methods and techniques for one of the most commonly encountered problems in sciences. Bio Kevin O’Brien is a teaching fellow and PhD candidate in the University of Limerick, Ireland. His research interests pertain to statistical methods for medical and clinical applications.

  • jhanack
Selbstorganisation ist sooo toll!

Selbstorganisation ist sooo toll!

Ich werde in letzter Zeit oft gefragt, was ich denn von dieser Selbstorganisation halte und so muss ich mich hier mal zu Wort melden. Ich finde Selbstorganisation total klasse, vor allem für Führungskräfte! Aber auch alle anderen Gruppen in einem Unternehmen haben was davon. Zwar nicht das, wofür die Selbstorganisation angetreten ist, aber das macht nichts. Der Reihe nach: Führungskräfte finden Selbstorganisation toll, weil sie dann endlich Ihre größtes Problem los sind: Ihre Mitarbeiter.

  • evilcoach
elastic

GOTO Night: Data Modeling for Elasticsearch at Hypoport Oct. 22

Hypoport invites you to an interesting GOTO Night with Florian Hopf on behalf of GOTO Berlin. The session will start at 7PM on October 22, 2015 at Hypoport headquarter Klosterstr. 71, 10179 Berlin. Please come by and give us a visit. Food and Drinks will complement the session. Abstract One of the factors for the huge success of Elasticsearch is that it is really easy to get started with. Format your data in JSON, push it to Elasticsearch and instantly you have a full blown search server available.

  • leif
    leif
bugs

JavaScript Forensics by Todd Gardner at Hypoport (Sep. 24th !!!)

Todd Gardner of TrackJS will be at Hypoport THIS Thursday Sep. 24th. Abstract Something terrible happened here. Traces of errors litter the floor; memory leaking from cracks in the ceiling. Someone lost their object context in the corner. Everything reeks of jank. In this session, a JavaScript error tracking expert breaks down a series of common and complex crimes against web applications. You’ll leave the session armed with techniques and tools to detect, diagnose, and fix your JavaScript web applications.

  • leif
    leif
"Entscheidungsfindung in der Gruppe" erntet große Resonanz bei der IS24 Pecha Kucha Night
management

"Entscheidungsfindung in der Gruppe" erntet große Resonanz bei der IS24 Pecha Kucha Night

Kennst du das auch? Wenn es darum geht, gute Entscheidungen in der Gruppe zu treffen wird es manchmal ziemlich kompliziert. Während einige Kollegen Feuer und Flamme für den Vorschlag sind, sehen andere schon Risiken oder Verbesserungspotential und schon wird lustig debattiert, anstatt effizient zu entscheiden. Wir haben das in diversen Situationen erlebt. Versteht mich nicht falsch: natürlich sollen alle diese Rückmeldungen aus der Gruppe berücksichtigt werden. Die Frage ist vielmehr, wie wir Gruppenentscheide systematisch verbessern können um gemeinsam effiziente Entscheidungen zu treffen.

Verteilte Verantwortung mittels soziokratischen Mitteln wahrnehmen
empowerment

Verteilte Verantwortung mittels soziokratischen Mitteln wahrnehmen

Warum Ich bin Führungskraft und war Head Architekt in einem unser agilen Entwicklungsteams. Der Gedanke, dass eine Person fest die Rolle Head Architekt inne hat ist meiner Vorstellung nach nicht mehr zeitgemäß. Laut unserer damaligen Definition sollte sie hauptsächlich die technische und fachliche Konsistenz der Anwendungsarchitektur und die Einhaltung von Qualitätsstandards sicherstellen sowie technische Ideen und Innovationen steuern. Zusätzlich war sie für den teamübergreifenden Austausch verantwortlich. Um diesen Anforderungen gerecht zu werden, entschied ich mich schon früh die Verantwortung mit dem Team zu teilen.

  • leif
    leif
learning

Microgames for Wetware Developers by Julia Dellnitz & Stefan Zörner

Hypoport invites you to an interesting GOTO Night with Julia Dellnitz & Stefan Zörner on behalf of GOTO Berlin. The session will start at 7PM on July 2, 2015 at our headquarter Klosterstr. 71, 10179 Berlin. Please come by and give them a visit. Food and Drinks will complement the session. Abstract Microgames are small decoupled learning entities about a specific topic such as software architecture. They help teams and companies to get up to speed in a specific field and can easily be integrated in their daily practices.

  • leif
    leif
ansible

Continuous Deployment with Gradle and Docker - Production Deploy

This is the final part of the article series about our continuous deployment pipeline. The previous articles showed you how we build and publish our Spring Boot based application, perform AngularJS end-to-end tests with Protractor, and how we perform contract tests to external services as consumer and provider as well. What’s missing are the description of how we package our application in Docker images, and how we distribute and deploy them to our production servers.

continuous-deployment

Continuous Deployment with Gradle and Docker - Contract Tests

In part four of our series about our continuous deployment pipeline you’ll learn about how we perform contract tests to ensure our service stays compatible with other service producers and our consumers as well. Please read the introductury post to learn about the other articles and the overall context of our deployment pipeline. This article contains both an introduction to contract testing, and our individual implementation of contract testers. If you’re new to the contract testing concept, just read on.

Peer Feedback as topic at the Berlin Culture Hacking Meetup

Since I postet my first articles on Peer Feedback in 2014, I noticed that people want to learn more about this approach. When I had a workshop with Olaf last year, we talked about sharing my thoughts on this topic with the Berlin Culture Hacking MeetUp. This was the starting point for inviting the culture hackers to Hypoport and hosting the event. So last friday I took the opportunity to present Peer Feedback to the community.

devops

GOTO Night at Hypoport: From the Monolith to Microservices - Randy Shoup

Hypoport is happy to host an interesting GOTO Night with Randy Shoup talking about „From the Monolith to Microservices“. On behalf of GOTO Berlin and Microservices Meetup Berlin we welcome you at Hypoport. Venue: Hypoport, Klosterstr. 71, 10179 Berlin Date: April 20, 2015 Entrance: 18:30 / 6:30PM Talk: 19:00 / 7PM „From the Monolith to Microservices: Lessons from Google and eBay“ by Randy Shoup Abstract: Most large-scale web companies have evolved their system architecture from a monolithic application and monolithic database to a set of loosely coupled microservices.

  • leif
    leif
Alignment durch Konsens
entscheidungen

Alignment durch Konsens

Entscheidungen im klassischen hierarchischen Umfeld zu treffen, ist einfach und effizient. Die Führungskraft entscheidet im besten Wissen für das Team, damit es sich auf die Umsetzung konzentrieren kann. Bei Entscheidungen im agilen Kontext mit selbstorganisierten Teams reden alle neuerdings immer von „Alignment and Autonomy“. Also sowas wie eine gemeinsame Ausrichtung unter gleichzeitiger Wahrung der Entscheidungsautonomie in den Teams. Wie soll die Führung denn nun eine Ausrichtung vorgeben ohne zu genau den Weg und die Lösung vorzugeben?

  • evilcoach
angularjs

Continuous Deployment with Gradle and Docker – Part 3

This is the third part in our series about our deployment of a JVM and AngularJS based application using Gradle as build tool and Docker as deployment vehicle. You’ll find the overview on all posts in the introductury post. As seen in the overview, our next step in the deployment pipeline performs so called e2e tests. The common Gradle project setup has already been described in part 2, so we can start with the Gradle script for the e2e test submodule.

cloud

Docker Meetup at Hypoport with "Why you'll love managing containers with Docker" & "Docker on AWS" on Jan, 19th

Docker Berlin is back! You can now follow us on Twitter too @DockerBerlin To init and containerize this new year properly we have two great speakers lined-up at Hypoport on Jan, 19th. Johannes Ziemke [Docker Inc.] and Sascha Möllering [ZANOX.de AG] Managing containers with Docker…and why you’ll love it – Johannes Ziemke What are the challenges of today’s infrastructures, why containers are the right building blocks and Docker the right tool to manage those.

  • leif
    leif
continuous-integration

Nie wieder Monolithen! Micro Services in der Praxis.

Bei der Hypoport AG haben wir bereits drei verschiedene Modularisierungsinkarnationen erlebt. Jede Inkarnation brachte uns näher an das Ideal einer flexiblen, wartbaren Architektur. Und dennoch stellten wir nach wenigen Jahren der Produktweiterentwicklung wieder fest: Die Anwendung ist voll von unbeabsichtigter Komplexität, Innovationen sind nur schwer möglich und die Umsetzung von Funktionalität dauerte kontinuierlich länger. Der Micro-Service-Architekturstil verheißt durch die Zerlegung eines Systems in kleine, unabhängige Services nachhaltige Besserung. Wir haben’s ausprobiert und sind begeistert.

  • ghostadmin
Mein Fazit von der manage agile 2014 in Berlin
agil

Mein Fazit von der manage agile 2014 in Berlin

Letzte Woche fand die Konferenz manage agile vom 27.-30.10.2014 in Berlin statt. Am Montag gab es Ganztagesworkshops, am Dienstag und Mittwoch dann Frontalvorträge und am Donnerstag Halbtagesworkshops. Ich habe mangels für mich interessanter Themen den Montag ausgelassen und bin am Dienstag eingestiegen. Bei mir sind ein paar Aussagen hängengeblieben, die ich mehr oder weniger in allen von mir besuchten Vorträgen (17 Stück!) gehört habe. Am eindrücklichsten war die Aussage, dass die Jobbeschreibung für Manager neu geschrieben werden muss.

angularjs

Continuous Deployment with Gradle and Docker - Part 2

After a quite long holiday break we now continue our series about the Continuous Deployment Pipeline with Gradle and Docker. This post is about the first step where our build chain creates the Spring Boot packages and publishes them to our Nexus repository manager. As shown in the high-level overview below, it is only a quite small part of the complete pipeline: Gradle and Spring Boot provide you a very convenient build and plugin system and work out of the box for standard builds.

docker

Docker Global Hack Day #2 - Berlin Edition at Hypoport

We are proud to announce that we are part of the Docker Global Hack Day #2. Join other members of the Docker community to hack on Docker projects using the next big Docker release! You’re all invited to Hypoport HQ in Berlin for a hacking session while sharing a meal/drink with fellow Dockers. This hackathon is your last chance to win a ticket to the sold out DockerCon Europe. Please register using our meetup event page.

  • leif
    leif
Wie halte ich ein System möglichst stabil?

Wie halte ich ein System möglichst stabil?

Veränderungen sind blöd! Nicht nur, dass sie irgendwie wehtun und stören… sie fressen Energie und dazu verhindern sie auch noch das Funktionieren! Es ist doch allgemein anerkannt, dass Systeme, die sich verändern, nicht auch noch gleichzeitig funktionieren können. Veränderungen kosten also auch noch richtig Geld, weil sie Phasen des Nicht-Funktionierens hervorrufen. Und das gilt für alle Systeme! Für Organisationen und sogar für SIE als Person. Nicht gut! Hier nun also mein ultimativer Ratgeber, mit dem sie Veränderungen am besten schon im Keim ersticken und so ihr System, für das es sich lohnt zu kämpfen, möglichst lange stabil halten können:

  • evilcoach
angularjs

How to open async calls in a new tab instead of new window within an AngularJS app

I recently wanted to generate a PDF on users demand and show it in a new browser tab. Sounds trivial, at first not for me 🙂 I tried it with different „solutions“ and on my way my google search result got better and better. With „open window new tab without popup blocker async“ I finally found in this thread a nice and easy solution. The trick is to remember the reference to the new window and change the location of that window when your asynchron call completes.

  • leif
    leif
alias

managing multiple ssh keys

Recently I wanted to connect to some remote server using different ssh keys. With the right ~/.ssh/config file this is easy and comfortable. Easy IdentityFile ~/.ssh/%h/%r/id_rsa IdentityFile ~/.ssh/%h/id_rsa IdentityFile ~/.ssh/id_rsa %h and %r are placeholder for host and remote-user. ssh foo@bar will first check if ~/.ssh/bar/foo/id_rsa exists, next ~/.ssh/bar/id_rsa and finally ~/.ssh/id_rsa. Comfortable Host github HostName 123.45.678.90 User myuser IdentityFile ~/.ssh/123.45.678.90/id_rsa Instead of ssh myuser@123.45.678.90 the above config allows you to simply type

  • leif
    leif
Mein Leben als Agile Coach

Mein Leben als Agile Coach

…oder die Erfindung des Push/Pull-Prinzips Seit 3,5 Monaten bin ich nun als vollzeit/festangestellter Agile Coach in Berlin unterwegs. Für mich ist das ein toller Job und die Firmenkultur tut ihr übriges dazu. Der Wechsel vom Berater und selbstständigem Coach zu diesem Job hat Änderungen mit sich gebracht, die ich so auch wollte, in ihrer Wirkung aber unterschätzt hatte. Vorher mal kurz ein paar Worte zu meinem Selbstverständnis als (Agile) Coach. Ich überzeuge Leute nicht, dass sie mich brauchen.

angularjs

A Continuous Deployment Pipeline with Gradle and Docker

This series of posts will show you some aspects of our continuous deployment pipeline for one of our products. It is built, tested and deployed to our servers by using Gradle, while the application itself runs inside Docker containers. We want to show you how we use Gradle to implement a complete pipeline with minimal dependency on command line tools. We’ll also describe how to perform rollouts to production without the need for shell scripts or even remote shell access, by using the Docker remote API.

buildsystem

Hans Dockter mit The Future of Gradle - The Ultimate Build System bei uns am 7.7. um 18 Uhr

Gemeinsam mit der Java Usergroup Berlin-Brandenburg präsentieren wir am 7. Juli den Vortrag von Hans Dockter The Future of Gradle – The Ultimate Build System. Einlaß ist um 18:00 Uhr. Der Vortrag beginnt um 18:30 Uhr. Vortrag: The Future of Gradle – The Ultimate Build System We are convinced that Gradle is already the best available enterprise build system. Yet we are far from done. We have finally the R&D bandwidth to deeply improve Gradle in the areas where it lacks.

  • leif
    leif
cacert

Vortrag "Java 8 Streams" & CAcert Signing Party am 04.06.2014

Für uns bei Hypoport hat der Schutz von persönlichen Daten einen hohen Stellenwert. Als Betreiber eines Finanzmarktplatzes haben wir viel mit personenbezogenen Daten zu tun und sind deshalb verpflichtet, diese Daten zu schützen. Dazu nutzen wir Verschlüsselungs- und Zugangsbeschränkungen. Bei Verschlüsselungsalgorithmen oder bei Authentifizierungsverfahren kommen neben Passwörtern (‚Shared Secrets‘) häufig digitale Zertifikate zum Einsatz. Als Entwickler nutze ich digitale Zertifikate in unterschiedlichen Formaten. Angefangen von RSA‑Keys für die SSH-Authentifizierung, über X.

Peer Feedback - Reality Check

Kürzlich habe ich euch unseren Ansatz zum Peer Feedback vorgestellt. Wie jede Idee muss sich auch das Peer Feedback in der Praxis bewähren. Deshalb haben wir ein halbes Jahr nach der Einführung unsere KollegInnen nach ihren Erfahrungen mit der Methode befragt. Das Ergebnis möchte ich dir nun vorstellen. Bekannt? Wir haben seinerzeit einen kleinen Fragebogen entworfen und unsere Peers um Rückmeldungen gebeten. Zunächst wollten wir wissen, inwieweit die Peer Feedback – Methode bekannt ist.

Dozer Plugin für IntelliJ IDEA

In einigen Projekten nutzen wir intensiv das Mapping Framework Dozer. Vor knapp 4 Jahren wurde ein Plugin für IntelliJ IDEA entwickelt, das uns beim Mappen stark unterstützt. Es bietet Code Completion und Error Highlighting in den XML-Mappingdateien von Dozer an. Mit der Nutzung von IDEA 13 war es nötig, das Plugin an die neue Version der Entwicklungsumgebung anzupassen. Im Zuge der Anpassung haben wir beschlossen, das Plugin zu veröffentlichen und den Quelltext unter eine Open Source Lizenz zu stellen.

  • serbert26
Ready for Peer Feedback?

Ready for Peer Feedback?

Im agilen Umfeld zählt der Flow. Dies gilt unserer Ansicht nach in besonderem Maße für unsere Kommunikation und führte uns daher zu nachstehenden Fragestellungen. Wie steht es um den wirksamen Austausch der Menschen in deinem Team? Wodurch wird aufrichtiges Feedback begünstigt? Wie kann Feedback zwischen Kollegen möglichst gut fließen und was bewirkt es? Wir haben uns diesen Fragen gewidmet und im Ergebnis unsere Kommunikationskultur ergänzt. Und wir stellen es euch vor: Peer Feedback.

berlin

Fotos von der Java 8-Party in Berlin

Wie bereits im IT-Blog angekündigt fand am letzten Donnerstag (20.03.2014) die Java 8-Party in Berlin in Zusammenarbeit mit dem Java Magazin bei Hypoport statt. Zur gleichen Zeit wurde auch die Java 8-Veröffentlichung in München gefeiert. Die Veranstaltung in Berlin eröffneten Java-Magazin-Chefredakteur Sebastian Meyen und Jörg Müller. Als Experten vor Ort waren die Oracle-Java-Experten Wolfgang Weigend, Dalibor Topic und Paul Sandoz, die mit ihren Talks das Publikum begeisterten. Im Anschluss daran spielte die Band Shearer und rundete den Abend musikalisch ab.

build-tools

Running Multiple Local Tomcats with Cargo and Gradle

We are currently using Cargo in combination with Gradle to implement consumer based tests for one of our projects. In order to do so, we created a Gradle script to deploy a service web app into a Tomcat container via Cargo and pass its URL to our consumer test suite. As long as we run the build script locally, everything works fine. But we noticed that it failed every once in a while when running on certain build agents in our TeamCity build pipeline.

docker

How to make Puppet and Facter work on Docker enabled hosts

Docker provides a lightweight virtual environment by using Linux containers (LXC). We are establishing Docker in one of our projects to implement continuous delivery. For host management we use Puppet, which itself relies on some facts provided by their tool Facter. Our Puppet modules make use of the ipaddress fact, determined by a built-in Facter script. We regard the ipaddress as the public IP address of the host. As described at gesellix.

apache

Apache RewriteRule - Rewriting URLs With Already Encoded QueryStrings

Recently we renamed a URL which was publically available. The system uses Apache httpd, so it was quiet easy to create a RewriteRule: RewriteRule ^/oldname/(.*) /newname/$1 [R,L] Unfortunately that didn’t work as expected. A URL like myserver/oldname?myprop=name with spaces will be encoded to myserver/oldname?myprop=name%20with%20spaces. With the above RewriteRule the rewritten URL will be myserver/oldname?myprop=name%2520with%2520spaces. It got encoded two times!. To fix this, you need the right keywords and Google. Searching for mod_rewrite url encode revealed that adding the NE flag (for No Encoding) does the trick:

  • leif
    leif
Das Java Magazin veranstaltet in Kooperation mit Hypoport eine „Java 8 Party“ in Berlin
berlin

Das Java Magazin veranstaltet in Kooperation mit Hypoport eine „Java 8 Party“ in Berlin

Am 18. März wird das Programm Java 8 final erscheinen, der Höhepunkt in der Java-Welt 2014. Dies nimmt das Java Magazin zum Anlass, um zusammen mit uns im Rahmen einer „Java 8 Party“ am 20. März 2014 in unseren Räumen in Berlin die Veröffentlichung zu feiern. Parallel wird es eine Veranstaltung in München geben, die im Holiday Inn Munich – City Centre stattfinden wird (auch eine Liveschalte zwischen den beiden Parties ist geplant).

Use MockInjector and package protected scope for dependencies to reduce boilerplate code

We have been bored to write so much boilerplate code for mocking dependencies in our unit tests. That’s why we have written MockInjector to automatically inject all mocks into our class under test. Think of this class: class MyClass { @Inject Foo foo; @Inject Bar foo; void doSomething() { foo.doSomething(); bar.doAnything(); } } If you want to test doSomething(), you need mock Foo and Bar. The traditional way to do this with Mockito is:

angularjs

AngularJS 1.2 update hints

As you might have noticed, AngularJS 1.2.2 1.2.3 has been released lately, without dedicated announcement. Our update from an AngularJS 1.2-rc2 has been quite smooth, only two hints might be noteable in addition to the official migration guide. With the current version the AngularJS team has fixed some issues regarding the isolate scope as described in the changelog for the 1.2.0 release or at the relevant GitHub issues #1924 and #2500.

angularjs

Passing Functions to AngularJS Directives

I recently built a custom directive that needed to call a function in its parent scope and pass some interal variables back as arguments. To be more specific: an editable label – a simple text that turns into an input field when it’s clicked and turns back into plain text, when the focus leaves the input field. On top of that, I needed it to invoke a callback function, if – and only if – the value of the input field has actually been changed.

angularjs

Ordered Initialization of an AngularJS Application with Asynchronous Data Using Promises

AngularJS helps with loading your app through dependency injection based on ordered class instantiation. Nevertheless, you sometimes need to know whether any pending request or function call has been finished in order to initialize your controllers, $scope or services. This article describes our solution to split the application lifecycle into several phases, namely „instantiation“, „initialization“ and „running“. You can find the downloadable code at GitHub, a working demo is available at jsfiddle.

classnotfoundexception

using a nested model for your custom gradle task or plugin

You probably know about using Annotation Types for your custom Gradle plugin input values: class MyTask extends DefaultTask { @Input String aSimpleProperty @InputFile File anInputFile @Input @Optional String[] optionalProperty @OutputFile File anOutputFile @TaskAction def performTask() { // … } } Using complex task input When using a more complex input model, you can try something like this: class TaskConfiguration { String aSimpleProperty File anInputFile String[] optionalProperty } class MyTask extends DefaultTask { @Input TaskConfiguration myConfiguration @OutputFile File anOutputFile @TaskAction def performTask() { // … } } After running that task Gradle will try to serialize your TaskConfiguration, but will fail due to the missing Serializable interface declaration.

angularjs

How to cause IE 8 to redraw pseudo elements on class change

Yesterday I spent the entire day trying to narrow down a nasty CSS bug that only surfaced in Internet Explorer 8. Everyones favourite browser didn’t redraw a pseudo element created via :before when its style got changed by adding or removing a class via JavaScript. It was a custom checkbox element with a JavaScript click handler that simply toggled a class on every click. Getting to the bottom of it Here is a jsFiddle with a trimmed down version of said checkbox.

angular-scenario

An AngularJS Test Pyramid

As a team with a strong taste for automated testing we focused from the beginning on how to test our Angular app. In this post we want to describe our different types of tests and how they form a Test Pyramid. Level 4: Selenium Tests. Level 3: E2E (Scenario) Tests. Level 2: Directive Tests. Level 1: Unit Tests. For each kind of test, we will explain the following aspects: Purpose: What’s the idea behind this type of tests.

  • andihypo
angular-scenario

Introduction to an Angular Scenario DSL for Remote Node Backend Configuration

This post was written by Andreas Marek (@andimarek) and Daniel Bechler (@SQiShER). In this article we’d like to introduce you to a library called node-config-ngscenario-dsl, which is our solution for advanced E2E testing with AngularJS and Node. This article may be interesting for you, if you are looking for a way to configure your Node backend right from your E2E tests. We are currently developing our first project with AngularJS. It’s a new module in a larger application and consists of an AngularJS frontend and a Java backend.

  • andihypo

Wohin des Wegs? Fachkarriere bei Hypoport

von Ralf A. Wir ITler lieben ja Iterationen und agiles Vorgehen bei dem das nächste Ziel im Fokus steht. Bei uns steht mit den jährlichen Development Dialogen eine weitere Iteration für die Entwicklung der eigenen Karriere an – meine fünfte Iteration bei Hypoport. Aber wie sieht das nächste Ziel für mich aus? Wohin geht mein Weg bei Hypoport? Bei diesen Gesprächen wird mit der Führungskraft über die eigene Entwicklung im Unternehmen gesprochen – begleitet von Human Resources (HR).

continuous-integration

TeamCity Performance Tuning

TeamCity Performance Tuning Kurzinfo zu den Ergebnissen aus unserer Analyse und zur neuen Systemarchitektur Continuous Integration (CI) Server und ihre angeschlossenen Systeme bilden oft den Kern von Softwareproduktionsumgebungen. Die Steuerung der Buildprozesse, die Prüfung der Checkins, Start und Auswertung der Testverfahren zählen zu den wichtigsten Aufgaben. Mit JetBrains TeamCity als CI-Server hatte sich folgende Struktur in unserer Entwicklungsabteilung etabliert. Mit der ständigen Zunahme an Projekten und Aufgaben die der CI-Server übernahm, sank auch systematisch seine Performance.

couchdb

Lokaler NPM-Registry Mirror mit regelmäßiger Synchronisation

Im Rahmen der Entwicklung eines unserer Frontends verwenden wir node.js. Node.js erlaubt Paketmanagement mit Hilfe des Node Package Managers (NPM), der ähnlich wie Maven eine global verfügbare Registry verwendet. Einrichten einer lokalen NPM-Registry Die NPM-Registry wird auf einem nicht immer stabil erreichbarem Host bereitgestellt. Um die Latenz beim Abruf der aktuellen Paketinformationen zu vermeiden und um Downtimes möglichst gut kompensieren zu können, kann man einen Mirror der NPM-Registry im lokalen Netz bereitstellen.

continuous-delivery

Developing with TeamCity 7.1: from remote run to feature branches - Pavel Sher and Dmitry Neverov at Hypoport on Feb 18th

Gemeinsam mit der Java Usergroup Berlin-Brandenburg präsentieren wir am 18. Februar den Vortrag von Pavel Sher und Dmitry Neverov Developing with TeamCity 7.1: from remote run to feature branches. Einlaß und Zeit für Networking startet ab 18:30 Uhr. Der Vortrag beginnt um 19:00 Uhr. Abstract Continuous integration tools play important role in software development these days. In an ideal world every commit in version control system must be checked by running a build on it, builds must be fast and broken builds must be fixed quickly.

  • leif
    leif
java

Update zur JavaOne und zu EE 7

Am 29.11. waren Wolfgang Weigend und Peter Doschkinow von Oracle im Rahmen einer JUG Veranstaltung bei uns. Sie haben Neues von der JavaOne und zu Java EE 7 berichtet. In den Folien von Wolfgang finden sich Details zum Java Community Process, zum Status von Java 7 und zur Roadmap von Java 8+. Peters Folien führen unter anderem aus, warum der Fokus von Java EE 7 geändert wurde. Der Schwerpunkt hat sich von PaaS in Richtung HTML5 Features verschoben.

stoos

RE:LEAD Meetup des #Stoos-Netzwerks bei HYPOPORT

TL;DR: monatliches Treffen des Berliner Stoos-Netzwerks findet im Oktober 2012 bei HYPOPORT statt. Termin: 16.10.2012, 19:00 Uhr. Anmeldung über Amiando-Webseite. Das Stoos-Netzwerk ist eine Gruppe von Menschen, deren Ziel sich vielleicht mit „besseres Management für die Menschen in den Organisationen“ paraphrasieren läßt. Die Motivation und das Selbstverständnis dieser Gruppe sind Gegenstand des Stoos Communiquets: „Wenn wir heute über Führung in Organisationen nachdenken, stimmen uns viele Entwicklungen äußerst nachdenklich. Wir erkennen das Festhalten an der linear-mechanistischen Denkweise, beobachten wie Organisationen den Fokus auf Aktienkurse anstatt auf begeisterte Kunden legen und sehen Wissensarbeiter, deren Meinungen von ihren Vorgesetzten ignoriert werden.

  • ghostadmin
gpars

Dierk König spricht bei uns über GPars

Gemeinsam mit der Java User Group Berlin-Brandenburg präsentieren wir am 16.10.2012 einen Vortrag von Dierk König zum Thema: „GPars – Parallele Programmierung für Dich und mich“ Seit jeher bietet die Java platform gute Unterstützung für die nebenläufige Programmierung. Die Bordmittel für multithreading und Synchronisation haben aber ihre Tücken. Dierk König stellt daher zusätzliche Konzepte für den vereinfachten Umgang mit Nebenläufigkeit vor: fork/join, map/reduce, Aktoren, Agenten und Datenflüsse. Der Beispielcode wird mit GPars vorgeführt, Groovys Standardbibliothek für Nebenläufigkeit.

dumbster

Verwendung eines SMTP-Servers in Unit-Tests

Im Rahmen von Unit-Tests möchte man die Anbindung externer Systeme vermeiden um Stabilität der Tests zu gewährleisten. Leider hat man genau dann Probleme, wenn man gerade diese Anbindung oder die Integration mit externen Systemen testen möchte. Für solche Unit-Test mit integrativem Charakter kann man Mocks verwenden, die recht spezifisch für den jeweiligen Anwendungsfall selbst implementiert werden. Wenn es allerdings an die Implementierung eines Mail-Server Mocks geht, ist der Aufwand der Eigenimplementierung oft nicht mehr gerechtfertigt.

agil

Agile Prozesse spielerisch erleben

Wir veranstalten seit 2008 regelmäßig alle fünf Wochen einen Hypoport internen IT Wissenstag. Dieser bietet uns die Möglichkeit uns über existierende wichtige Themen nicht nur Team-, sondern auch Geschäftsfeld-übergreifend auszutauschen. Die Inhalte werden von den Mitarbeitern bestimmt und organisiert und umfassen das gesamte Spektrum von fachlichen und technischen Themen. Wir wollen damit kommende Probleme innovativ lösen, eingetretene Pfade verlassen und attraktivere Produkte entwickeln. Spielerisch lernen Eine wichtige Voraussetzung für Kommunikation und Zusammenarbeit ist das Verständnis für agile Prozesse.

automatisches-tests

Unit- und Integration-Test eines MicroService mit Maven

Was ist ein MicroService? In unserem Kontext ist es ein (kleines) Modul der Gesamtanwendung, welches seinen Dienst als Webapplikation (.war) anbietet. Das konkrete Schnittstellen-Protokoll ist für diesen Artikel nicht entscheidend. Möglich ist klassisch SOAP, REST aber auch Spring HttpInvoker. Ein MicroService ist eine gute Möglichkeit Sollbruchstellen in die Gesamtanwendung einzubauen. Nun zum eigentlichen Thema: Wie teste ich einen solchen Service? Im Grunde wie immer, d.h. viele Unit-Tests und ein paar ausgewählte Integration-Tests.

  • leif
    leif
pku

Ready ... Steady ... Sprint!

Bevor das Scrum Team mit seiner Arbeit beginnt, steht die Analyse des umzusetzenden Themas an. Für diese Analyse sollte sich das Team aus Product Owner und Business Analyst eigene Qualitätsansprüche festlegen, um vollständige Stories zu erhalten. Ein Erfahrungsbericht. Ich habe gerade einen Tag Scrum Zeremonien hinter mir. Als Product Owner ist die Estimation Session im Planning immer der anstrengendste Teil des Tages – und der kommt direkt nach dem Mittagessen. Fünfzehn User Stories habe ich gemeinsam mit dem Business Analysten dem Team vorgestellt, drei davon „durfte“ ich gleich wieder einpacken.

  • smrosek
architecture

Oliver Gierke von SpringSource kommt am 14. Juni 2012 nach Berlin

Gemeinsam mit der Java Usergroup Berlin-Brandenburg präsentieren wir am 14. Juni den Vortrag von Oliver Gierke Huch, wo ist meine Architektur hin?. Einlaß und Zeit für Networking startet ab 18:30 Uhr. Der Vortrag beginnt um 19:00 Uhr. Vortrag Wenn Applikationen über eine bestimme Größe oder einen bestimmten Zeitraum hinaus wachsen wird Modularität ein Kernaspekt für Wartbarkeit. Designentscheidungen die getroffen wurden sind kaum noch im Code wiederzufinden, Abhängigkeiten zwischen einzelnen Modulen der Applikation wachsen oft wild.

  • leif
    leif
debugging

Nie mehr ohne JSON Serializer

JSON Serializer in Debugging Session verwenden Welcher Java Entwickler kennt es nicht: Nach einigen konzentrierten Versuchen hat die Programmausführung endlich an exakt der richtigen Stelle angehalten. Alle Daten sind im kleinen Debugging Fenster erreichbar. Schade nur, das meine IDE keine Möglichkeit bietet, den riesigen Objektgraphen nach meinem relevanten Eintrag zu durchsuchen. Oder per EMail an die Fachabteilung zu verschicken. Dabei ginge das sehr einfach: Mit einem auf reflection basierenden Objekt-Serialisierer. Dieser erzeugt ohne vorherige Konfiguration aus einem beliebig tiefen Objektgraphen einen String z.

aspectj

Sonar Analyse eines Maven Projektes mit Cobertura und AspectJ

Wir verwenden unter anderem Sonar, um unsere Codequalität zu analysieren. Sonar bietet viel Spannendes. Interessant ist auch die Analyse der Testabdeckung. Hierzu kann man Cobertura verwenden. Im Zusammenspiel mit einem Projekt, welches AspectJ einsetzt kann es zu Problemen kommen, wenn man versucht das Kompilieren der Anwendung mit der Sonar-Analyse zu kombinieren. mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true Die Lösung liegt wie so oft in RTFM. Der empfohlene Weg eine Sonar-Analyse durchzuführen ist es zuerst die Anwendung zu bauen und danach die Analyse zu starten.

  • leif
    leif
hibernate

Hibernate 4 Migration

Hibernate 4 wurde schon vor einiger Zeit veröffentlicht und beinhaltet neben Unterstützung der Mandantenfähigkeit ein grundlegendes Refactoring. Im Folgenden sollen die für eine erfolgreiche Migration notwendigen Schritte zusammengefasst werden. Insbesondere Frameworks, die Hibernate kapseln, sind in dem von Hibernate bereitgestellten Migrationsleitfaden kaum betrachtet worden. 1. Hibernate-API-Changes Hibernate Type Changes Am einfachsten sind sicherlich noch die Typ-Infomationen zu migrieren. So ist statt org.hibernate.Hibernate.TEXT nun org.hibernate.type.TextType.INSTANCE zu verwenden. Das trifft analog auch auf alle anderen Datentypen zu.

Füge zusammen, was zusammen gehört!

von Jacob Fahrenkrug und Johann Schmitt Aus dem Leben des Softwareentwicklers Hannes Es ist 7:56 Uhr. Das Büro ist noch ganz ruhig. Ich gehe in die Kaffeeküche, um die erste Kanne des Tages aufzusetzen. Mit einer großen Tasse heißen Kaffees komme ich zurück in unser Büro. Von weitem kann ich durch die Glaswand den Monitor erkennen, der die aktuellen Informationen zu unserem Softwaresystem anzeigt. Als die Anzeige umschlägt sehe ich:

hibernate4

Hibernate4 verwendet jboss-logging statt slf4j. Durch die log4j Bridge leiten wir die Logs zu logback.

Bei der Migration auf Hibernate 4 haben wir festgestellt, dass Hibernate statt wie bisher slf4j nun ihre eigene Logging API jboss-logging verwendet. Glücklicherweise logt diese API standardmäßig auf log4j. Durch Einsatz der log4j-over-slf4j Bridge lenken wir die Logs wieder auf slf4j, um sie dann per logback zu loggen. Es ist wichtig bei der Nutzung dieser Bridge keine log4j.jars im Klassenpfad zu haben! Es dürfen kein direkten oder transitiven log4j.jar Abhängigkeiten mehr existieren.

  • leif
    leif
change

Kanban & Kaizen - Fallstudie

Kürzlich haben wir von unseren Erfahrungen beim Einsatz von Kanban in der Softwareentwicklung berichtet. Das Interesse daran war groß und in Gesprächen tauchte immer wieder die Frage auf, wie wir Kanban in unserer Organisation eingeführt und kultiviert haben. Deshalb möchten wir an dieser Stelle weitere Informationen zu diesem Themenkomplex bereitstellen: diesmal liegt der Schwerpunkt auf der Einführung von Kanban & Kaizen. Gemeinsam mit Loop-2 haben wir einige Eindrücke und Erfahrungen bei der Adaption von Kanban & Kaizen in unserer Organisation gesammelt, die wir mit euch teilen möchten.

agil

Kanban in der Softwareentwicklung – Praxis-Check bei Hypoport

Bei Hypoport setzen wir seit 7+ Jahren auf Prinzipien, Methoden und Werte aus dem agilen Umfeld. Dies tun wir weil wir überzeugt sind, dass mit diesen Ansätzen Softwareentwicklung am besten gelingt. Neben Scrum haben wir seit Jahren auch Erfahrungen mit Kanban in verschiedenen Teams und Produktlebenszyklen gesammelt. Dieses Praxiswissen woll(t)en wir mit anderen Interessierten teilen und so entstand die Idee zu einem Event. Gesagt getan. Hypoport und Loop-2 haben am 13.

bed

Berlin Expert Days mit 4 Vorträgen unserer Mitarbeiter

Die Berlin Expert Days 2012 haben ein sehr interessantes Programm. Neben bekannten Speakern erhalten auch weniger bekannte Speaker die Gelegenheit sich und Ihre Erfahrungen zu präsentieren. U.a. gibt es 4 Vorträge von Hypoport Mitarbeitern: Continuous Delivery in der Praxis – 7+ Lektionen von Jörg Müller Inversion of Flow von Arne Burmeister Modularisierung wagen: warum es sich lohnt, diesen Weg einzuschlagen (und wie man unterwegs überlebt) von Ansgar Konermann, Jacob Fahrenkrug MongoDB für Java Entwickler und Architekten – Schema Evolution und Maintenance: Was wurde uns am Anfang verschwiegen?

  • leif
    leif
cleancode

Chris Chedgey von Headway Structure101 kommt am 6. März 2012 nach Berlin

Gemeinsam mit der Java Usergroup Berlin-Brandenburg präsentieren wir am 6. März den Vortrag von Chris Chedgey Restructuring: Improving the modularity of an existing code-base. Einlaß und Zeit für Networking startet ab 18:30 Uhr. Der Vortrag beginnt um 19:00 Uhr. Vortrag When a code-base reaches a certain age, it starts to creak, grind, rot. It seems like everything uses everything. Developers do not understand the big picture and start duplicating or creating parallel worlds of design, making things even worse.

  • leif
    leif
certificate

Java SSL-Konfiguration mit Keystores

Hier wird das Erstellen eines lokalen Keystores mit self signed certificate für einen Tomcat und Java-Clients beschrieben. Die Inhalte sind größtenteils aus einer externen Quelle übernommen und darüber hinaus durch weitere Details ergänzt. Im Rahmen dieses Artikels werden diverse Dateien erzeugt, die für die Erzeugung eines Java-Keystores mit selbst-signierten Zertifikaten verwendet werden. Mit einem durch eine offizielle Certificate Authority (CA) signierten Zertifikat sind einige Schritte nicht notwendig. Erstellen des lokalen Keystores für den Tomcat

cleancode

@Mock unused variable mit IntelliJ IDEA kein Problem

Ich bin froh, dass IntelliJ IDEA die Standard IDE bei uns ist. Hier ein kleines Beispiel wie flexibel – manche nennen es intelligent – IntelliJ ist:) Die Inspection unused variable warnt vor unbenutzten Variablen. Nach CleanCode lösche ich solche Variablen sehr gerne sehr schnell. Problematisch wird dies wenn man z.B. @Mock von Mockito oder @Resource von Spring verwendet. Was diese Annotationen inhaltlich machen gibt es ein anderes Mal. Für jetzt ist interessant, dass eine mit @Mock annotierte Variable nicht weiter im Code verwendet wird.

  • leif
    leif
java

Eine Migration auf SLF4J und Logback lohnt sich!

Bisher haben wir (Team emma) log4j eingesetzt. Es ist meines Erachtens derzeit der Standard wenn es ums Logging in Java Anwendungen geht. Es tut was es soll und das gut. Warum also wechseln? Wie so oft sind es die Kleinigkeiten, die den Unterschied ausmachen. SLF4J Die Simple Logging Facade for Java kurz SLF4J ist eine Logging Facade für diverse Logging Frameworks, wie java.util.logging, log4j und logback. Warum der Einsatz von SLF4J sinnvoll ist wird u.

  • leif
    leif
modeling

What’s a Test? Seriously!

Well, we all know what testing means. You have created something and now you check whether or not it meets your expectations. You will find some tasks and perform them using this newly created “Something”. Then you will see and validate whether this “Something” performs well. Maybe you will find that your creation is perfectly suited to perform your tasks or maybe it has missed the goal completely; or maybe it breaks in the middle of the process or shows other defects which hinder you from performing your tasks.

  • ghostadmin
brett-schuchert

Brett Schuchert's Talk

Letzten Donnerstag hatten wir die Gelegenheit die Java-User-Group Berlin Brandenburg zu einem Talk mit Brett Schuchert einzuladen. Brett war bei uns im Rahmen eines 4-tägigen internen Kurses zu Entwicklungsprinzipien. Er hatte sich dankenswerter Weise bereit erklärt, nicht nur für uns, sondern auch öffentlich noch eine Abendveranstaltung zu machen. Als Thema wählten wir „Working effectively with Legacy Code“ (siehe Ankündigung). Das gleichnamige Buch seines Kollegen Michael Feathers ist übrigens sehr empfehlenswert.

eai

Eigener ESB, andere ESBs oder einfach Spring Integration?

Bei Hypoport haben wir seit Jahren einen selbst entwickelten ESB im Einsatz. In unserem Team haben wir wenig KnowHow diesen zu nutzen und anzupassen. Die Anbindung und Erweiterung von externen Schnittstellen fällt daher nicht leicht. Erschwerend kommt hinzu, dass die Integration Flows nicht durch unser Continuous Delivery Skript automatisiert ausgerollt werden können. Wir standen vor der Entscheidung uns intensiv in diesen ESB einzuarbeiten oder es mit einer anderen Integrationslösung zu versuchen.

  • leif
    leif
Working effectively with legacy code
brett-schuchert

Working effectively with legacy code

Die JUG Berlin-Brandenburg und die Hypoport AG laden euch herzlich am 10.11.2011 von 19 bis ca. 22 Uhr zu unserer Veranstaltung „WORKING EFFECTIVELY WITH LEGACY CODE“ mit Brett Schuchert einladen. Brett ist ein ObjectMentor, ebenso wie dies Uncle Bob (Clean Code) ist. Zum Inhalt: Michael Feathers (ebenfalls ein ObjectMentor) defines legacy code as code lacking automated checks. You cannot simply change it without risking breaking something. If the code were not yet deployed, that might not be too painful but since we are talking about legacy code, it’s probably already deployed so we have to tread carefully.

  • leif
    leif
Java User Group am 12.10. - Folien und weitere Infos
event

Java User Group am 12.10. - Folien und weitere Infos

Die Veranstaltung der Java User Group Berlin-Brandenburg am 12.10. unter dem Titel „Fighting Layout Bugs“ bescherte uns wieder ein volles Haus. Der Vortrag von Michael Tamm enthielt viele durchaus überraschende Ideen, wie man Layout Probleme automatisiert finden kann. Das Ganze lässt sich noch mal in seinen Folien nachlesen: Weitere Informationen zu Michaels Projekt finden sich unter http://fighting-layout-bugs.googlecode.com sowie http://selenium.googlecode.com. Wir hatten außerdem die Gelegenheit, im Namen der Java User Group eine Karte zur WJAX im November zu verlosen.

java

Lessons learned - Der DelegatingFilterProxy von Spring

Wenn man einen ServletFilter für die eigene Webapp baut, dann muss man drei Methoden des Interfaces implementieren: init(), doFilter() und destroy(). Der Filter wird danach in die web.xml aufgenommen und startet zusammen mit der Webapp, wobei beim Starten des Filters seine init()-Methode aufgerufen wird. So weit die Theorie. Spring ermöglicht es, Filter im ApplicationContext zu definieren und ihnen damit Zugriff auf andere Beans zu bieten. Über die Namenskonvention Filtername == BeanId wird nun nicht mehr die Filterklasse in der web.

automatisches-tests

JUG BB am 12.10. - Fighting Layout Bugs

Am Mittwoch 12.10. wird Michael Tamm bei uns in der Klosterstrasse 71 einen spannenden Vortrag zum Thema „Fighting Layout Bugs“ halten. Um was geht’s in dem Vortrag: Für die „normale“ Programmierung gibt es Unit Tests. Aber wie können automatische Tests für die Arbeit von HMTL- und CSS-Programmierern aussehen? Wie kann man sicherstellen, dass jede Webseite so aussieht, wie es sich der Designer vorgestellt hat? Wie können automatische Tests für Layoutfehler aussehen?

  • leif
    leif
bonus

Warum ein jährlicher Bonus eine schlechte Idee ist!

Ein jährlicher Bonus wird meistens an zu erreichende Ziele gebunden und variiert je nach Erreichung. In der IT ist es schwer immer SMART Ziele zu finden. Auch ist es fraglich, wie stark ein Bonus motiviert. Hierzu kann ich die sehr unterhaltsame Präsentation What Motivates You! empfehlen. Nehmen wir mal an du bekommst ein Gehalt von 1000 Gummibärchen und einen Bonus von 200 Gummibärchen am Ende eines Jahres. Welche Zahl nennst du, wenn du jetzt beim Grillen mit Freunden über dein Jahresgehalt sprichst?

  • leif
    leif
grails

Grails und seine Arbeitsverzeichnisse

Wenn man wie ich aus der Maven-Welt kommt, dann weiß man: Kompilate, generierte Resourcen und temporäre Dateien werden immer im target-Ordner des Projektverzeichnisses abgelegt; eingebundene Plugins und Dependencies liegen dagegen in einem Repository im Nutzerverzeichnis. Bei Grails ist das ein wenig anders. Dies musste ich feststellen, als ich auf unserem CI-Server Teamcity zwei Builds eines Grails-Projektes parallel angestoßen habe und diese beim Bauen des WARs scheiterten, weil sie das Staging-Verzeichnis nicht löschen konnten.