Chris' IT Guide to The Galaxy

Der Blog für Professionelle IT, Projektmanagement und Anhänger der digitalen Bohème

7. August 2014
von CJeske
Keine Kommentare

Bernd Geropp hat in seiner  Podcastreihe „Führung auf den Punkt gebracht“ eine Folge zum Thema Projektmanagement veröffentlicht.

Als regelmäßiger Zuhörer seines Podcasts kann ich diesen nur empfehlen und diese Folge mit einem Interview mit Stefan Hagen ganz besonders.

FPG058 – Projekte erfolgreich managen und führen! Bei welchen Projekten sind agile Ansätze sinnvoll? Interview mit Stefan Hagen

 

15. Januar 2014
von CJeske
Keine Kommentare

Refactoring in der agilen Softwareentwicklung – Aufräumen muss sein!

In der agilen Softwareentwicklung leiden viele Programme unter der Quick&Dirty Methode. Ein Stakeholder schreit und das gewünschte Programm oder Funktion muss schnellstmöglich umgesetzt werden. Oft bleiben diese Programme  oder Funktionen länger im Einsatz als gedacht und eine spätere Pflege wird erschwert oder ist unmöglich. Zusätzlich leiden solche Programme unter verschiedensten Symptomen, wie Geschwindigkeitsprobleme oder unerklärliche Ergebnisse.  Somit bleibt ein Refactoring, also eine Strukturverbesserung und eine klare Kommentierung des Programms oder Algorithmus, unter Beibehaltung der gewünschten Funktion, nicht aus, um ein zukunftssicheres Produkt zu erstellen.
Refactoring gibt es in zwei Varianten. Einmal kann man die grundlegende Architektur eines Programmes überdenken und zum anderen kann man den Quellcode optimieren.
Beim Architektur Refactoring stellt man sich grundlegend die Fragen, ob man die richtige Struktur für ein Programm oder Funktion gewählt hat, um die Anforderungen bestmöglich zu erfüllen. Hier sollten Dinge besprochen werden, wie Schnittstellenmöglichkeit, Technologie und Interoperabilität. Erstelle ich eine Anwendung als RichClient oder unter dem Paradigma von SOA. Je nach Bedarfsfall und Anwendung kann sich dies auch im Laufe der Zeit ändern. Somit ist für ein Programm mit längerem Lebenszyklus ein Architectur Refactoring zu empfehlen.
Das Code Refactoring sollte im agilen Prozess stetiger Begleiter sein, weswegen man auch meist von einem kontinuierlichen Refactoring spricht. Am Ende jedes Sprints steht ein potenziell auslieferbares Inkrement mit festgelegten Funktionen. Diese Funktionen müssen während des Sprints auch den Prozess des Code Refactoring durchlaufen. Dabei wird der Code auf Lesbarkeit, Übersichtlichkeit, Verständlichkeit, Erweiterbarkeit, Testbarkeit und Vermeidung   von Redundanz geprüft.
Die Vorteile eines kontinuierlichen Refactorings spiegeln sich im Gesetzt der großen Zahlen wieder. In jedem Sprint ein wenig Zeit dafür zu verwenden ist wesentlich einfacher und zeitlich weniger aufwendig als im nach hinein tausende Codezeilen zu bearbeiten.
Refactoring ist somit ein wichtiger Bestandteil eines Entwicklungsprozesses, um ein zukunftsicheres und pflegbares Softwareprodukt herszustellen.

Weiterführende Links zum Thema:
Martin Fowler: Refactoring. Wie Sie das Design vorhandener Software verbessern. Addison-Wesley Verlag, ISBN 3-8273-1630-8
heise developer Podcast Architektur Refactoring http://www.heise.de/developer/artikel/Episode-8-Architektur-Refactoring-353295.html

24. Dezember 2013
von CJeske
Keine Kommentare

Frohe Weihnachten

Ich wünsche frohe Weihnachten und einen guten Start ins Jahr 2014.

Zusammenkommen ist ein Beginn,Zusammenbleiben ist ein Fortschritt, Zusammenarbeiten führt zum Erfolg.

Henry Ford

In diesem Sinne freue ich mich schon auf das kommende Jahr. Für 2014 sind schon verschiedene Neuerungen geplant. Neben diversen Beiträgen ist eine Erweiterung der Guide-Sektion, um Regular Expressions und ein Scrum Artefakt Guide in Arbeit.

Best regards

Christian Jeske