Agile Roadmaps bei der Software-Entwicklung

Article in english ⤴︎

Im Großen und Ganzen benötigt jede Software eine Roadmap – eine Basis für die gezielte Weiterentwicklung und Anpassung an die Bedürfnisse der Anwender über die kommenden Jahre. Egal welche Nische eine Software dabei bedient, sie stellt für ihren Nutzerkreis immer eine Art verlässlichen Standard dar. Funktionalitäten werden deswegen eher selten abgekündigt, da dies mit einem Verlust wahrgenommen wird und damit die Akzeptanz der Anwender beeinflusst.

Die Planung und Vermarktung einer Software obliegt üblicherweise dem Produktmanager. Dieser ist der Produkt-Markt-Experte auf seinem Gebiet. Er entwickelt eine Produktstrategie – die Roadmap. Die Releases einer Software werden üblicherweise in Form eines Projektes mit Hilfe eines Projektmanagers umgesetzt. Dabei können sich Projekt- und Produktmanager gegenseitig entscheidend mit ihrer Erfahrung unterstützen.

Weiterlesen

Von der Lösung zum Problem – Beratung im Projektmanagement

This post in English

Ein immer wieder auftretendes Muster bei der Softwareentwicklung spielt sich in der Anfangsphase des Projektes ab: Der Auftraggeber (Kunde) beschreibt seine Anforderungen. So weit so klar und auch gewünscht. Allerdings fällt hierbei auf, dass die Anforderungen derart formuliert werden, dass sie einen konkreten Lösungsweg festschreiben. Dieses Vorgehen ist dem Auftraggeber schon so bekannt, normal und eingespielt, so dass es quasi als einziger Weg zum Ziel gesehen wird. Der Gedanke dahinter: Wenn nur genau genug die Lösung formuliert wird, lassen sich Termine und Kosten direkt ableiten und bei der Realisierung kann nichts mehr schief gehen.

Ist dem wirklich so?

Weiterlesen

Agile Festpreisprojekte – Risiko oder Chance?

This post in English

Auf den ersten Blick wirkt ein Agiles Festpreisprojekt wie ein unlösbarer Widerspruch. Festpreisprojekte bieten durch exakte Beschreibungen beiden Seiten Klarheit über die zu erbringenden Leistungen, Termine und Mitwirkungspflichten. Das Risiko trägt der Auftragnehmer – der Auftraggeber wiederum mitunter einen entsprechenden Aufschlag.

Der Begriff Agilität bedeutet beweglich, enthält also die Eigenschaft der Änderung. Agilität erlangt vor allem im Kontext der agilen Softwareentwicklung immer mehr Zuspruch: Weniger Bürokratie und mehr iterative Zyklen führen zu dem wirklich benötigten Ergebnis am Ende des Projektes.

Änderung im Festpreis – wie kann das gut gehen?

Weiterlesen

PostgreSQL: Partitionierung großer Tabellen – Teil 2

Neben verschiedenen Indexstrategien bietet PostgreSQL ein weiteres Feature, um mit sehr großen Datenmengen umzugehen: Das Splitten von Tabellen mit Vererbung. Dieses Aufteilen der Daten einer Tabelle auf Tochtertabellen wird bei PostgreSQL „Partitionierung“ genannt.

Im ersten Teil wurden die Vor- und Nachteile dieser Variante zur Performanzsteigerung dargestellt und die Bedingungen für einen sinnvollen Einsatz beschrieben. Der nachfolgende zweite Teil dieses Artikels beschreibt die einzelnen Konfigurationsschritte für eine funktionierende Partitionierung. Der vorgestellte Weg wurde in einer PostgreSQL Version 9.2 Datenbank produktiv eingesetzt. Ein dritter Post zeigt die Besonderheiten in einem Projekt mit Hibernate.
Weiterlesen

PostgreSQL: Partitionierung großer Tabellen – Teil 1

Neben verschiedenen Indexstrategien bietet PostgreSQL ein weiteres Feature, um mit sehr großen Datenmengen umzugehen: Das Splitten von Tabellen mit Vererbung. Dieses Aufteilen der Daten einer Tabelle auf Tochtertabellen wird bei PostgreSQL „Partitionierung“ genannt. Da das Partitionieren einer Tabelle einigen Aufwand erfordert und es auch bei der Nutzung der Tabellen Einschränkungen gibt, gilt es beim Erstellen der Partitionen auf die spezifischen Anforderungen und Einschränkungen zu achten.

Dieser erste Teil des Artikels stellt die Vor- und Nachteile, sowie die Bedingungen für einen sinnvollen Einsatz der Partitionierung zur Performanzsteigerung dar. Im zweiten Teil des Artikels beschreiben wir die einzelnen Konfigurationsschritte für eine funktionierende Partitionierung. Ein dritter Post zeigt die Besonderheiten in einem Projekt mit Hibernate.
Weiterlesen

Vaadin unter Last – Teil 3: Ergebnisse der Lasttests (Speicherverhalten)

Wir hatten im ersten Teil einen Lasttest für eine Vaadin-Anwendung aufgebaut. Im zweiten Teil hatten wir das Verhalten dieser Anwendung in Bezug auf Antwortzeit analysiert. In diesem dritten Teil analysieren wir nun Nutzung und Auslastung des Arbeitsspeichers. Auch hier werden wir die Anteile der verschiedenen Komponenten der Anwendung und die Rolle von Vaadin diskutieren.

Weiterlesen

Vaadin unter Last – Teil 2: Ergebnisse der Lasttests (Antwortzeit)

Wir haben im ersten Teil gezeigt, wie ein Lasttest für eine Vaadin-Anwendung mit dem OpenSource-Programm JMeter aufgebaut werden kann. Als Beispiel diente der Officewerker, eine Anwendung zum Office-Management in kleinen Unternehmen oder Teams. Dieser Artikel – wieder auf Basis des Officewerkers – beleuchtet nun eine konkrete Testreihe auf der Cloud-Plattform EC² (Elastic Computing Cloud) von Amazon. Der Fokus liegt dabei auf dem Antwortzeitverhalten bei immer mehr Anfragen – und den entstehenden Bottlenecks. Dabei beleuchten wir vor allem die Rolle von Vaadin.

Weiterlesen