Blog
Blog

In unserem Blog stellen wir Ihnen Themen vor, die unsere Belegschaft und das Unternehmen bewegen.

Unsere Belegschaft setzt sich aus einer Menge von Menschen zusammen, die bereits viele Erfahrungen in unterschiedlichsten Branchen und Aufgabenfeldern sammeln konnten. Bei unserer tĂ€glichen Zusammenarbeit wird natĂŒrlich auch diskutiert, voneinander gelernt, Entscheidungen getroffen, großartige Dinge geschaffen aber auch Fehler gemacht. In unserem Blog möchten wir Ihnen davon erzĂ€hlen.

Vor allem aber möchten wir mit Ihnen sprechen und Ihre Meinung zu unseren BeitrĂ€gen erfahren. Wir wĂŒrden uns sehr freuen, von Ihnen zu hören.



Docbook - Dokumentieren kann auch Spaß machen

Welcher Entwickler kennt das nicht: Analyse, Architektur, Implementierung, Testen und meist nachher noch schnell alles dokumentieren. Arbeitsalltag eines Softwareentwicklers, von dem heutzutage weit mehr gefordert wird als Inselwissen. Gut aufgestellt zu sein in einem interdisziplinĂ€ren Aufgabengebiet erfordert Organisation und passende Werkzeuge. FĂŒr die meisten Aufgaben hat man sich mittlerweile eine gute Entwicklungsumgebung mit den entsprechenden Plugins, eine Testsuite und vielleicht ein Modellierungswerkzeug zurechtgelegt. Die Dokumentation: Naja, die wird am Ende meist aus zeitlichen GrĂŒnden mehr oder minder vollstĂ€ndig in ein Textverarbeitungsprogramm gepresst. Idealerweise sollte jedoch auch das Dokumentieren stĂ€ndiger Bestandteil eines kontinuierlichen Entwicklungsprozesses sein. Die Verwendung der ĂŒblichen Textverarbeitungsprogramme mag fĂŒr GeschĂ€ftsbriefe und andere Dokumente geringen Ausmaßes erste Wahl sein. Wer jedoch schon mal versucht hat damit eine 500 Seiten lange Softwaredokumentation zu bearbeiten, verschiedene BearbeitungsstĂ€nde zu versionieren oder lediglich das Dokument mit all seinen Grafiken an einen Drucker zu senden, der wĂŒnscht sich schnell ein passenderes Werkzeug dafĂŒr.

GlĂŒcklicherweise haben sich schon Anfang der 90er Jahre einige schlaue Köpfe zusammengesetzt und Docbook ins Leben gerufen. Das mittlerweile von der OASIS (Organization for the Advancement of Structured Information Standards) kontinuierlich weiterentwickelte und frei erhĂ€ltliche Dokumentationssystem ist besonders fĂŒr die Dokumentation technischer Inhalte sowohl im Hard- als auch im Softwarebereich sehr gut geeignet.

Docbook macht im Vergleich zu den ĂŒblicherweise verwendeten WYSIWYG-Werkzeugen (What You See Is What You Get) erst einmal alles anders. Es vollzieht eine klare Trennung von Inhalt und Gestaltung des Dokumentes. Eine einmal gestaltete Vorlage wird vom Endanwender nicht mehr bearbeitet, das Coporate Design und die DurchgĂ€ngigkeit in der Gestaltung des Dokumentes bleiben somit erhalten. Was fĂŒr den Anwender zuerst etwas ungewöhnlich erscheint, bietet jedoch ziemlich schnell klare Vorteile. Er kann sich jederzeit auf das Wesentliche (den Inhalt) konzentrieren und braucht sich keine Gedanken mehr ĂŒber jegliche Form der Gestaltung zu machen. Den meisten Entwicklern wird dies sehr entgegenkommen.

Die im Mittelpunkt des Systems stehende Trennung von Gestaltung und Inhalt basiert auf der Verwendung des XML-Formates, in dem sowohl Inhalt als auch die logische Dokumentenstruktur (Kapitel, AbsĂ€tze, Abbildungen etc.) definiert sind. SĂ€mtliche Definitionen der Gestaltungselemente werden erst im Prozess der Umwandlung in das gewĂŒnschte Ausgabeformat verarbeitet. Dies geschieht grĂ¶ĂŸtenteils ĂŒber jeweils eine XSL-Datei (Extensible Stylesheet Language) pro Ausgabeformat. Diese XSL-Dateien sind integraler Bestandteil des Docbook-Systems und können selbstverstĂ€ndlich individuell angepasst werden.

Docbook beherrscht mehrere Ausgabeformate, wie z.B. html, epub, pdf und rtf. Beim Build-Prozess können somit aus einem einzigen Docbook-Projekt ohne MehraufwĂ€nde mehrere Formate zuverlĂ€ssig generiert werden. Da die Quelldatei(en) mit jedem Text-Editor lesbar und editierbar sind, ergibt sich hieraus noch ein anderer, nicht zu vernachlĂ€ssigender Vorteil: Die ganze Dokumentation ist versionierbar (beispielsweise ĂŒber Werkzeuge wie SVN oder GIT) und somit kontrollierbarer und besser nachzuvollziehen. In der Praxis bedeutet dies meist einen deutlichen Zeitgewinn.

n-design hat Docbook erfolgreich in seinen Entwicklungsprozess aufgenommen. Der alltÀgliche Umgang mit dem Dokumentationssystem, positive wie auch negative Erfahrungen der Anwender und Beispiele zur Integration folgen bald an dieser Stelle.

 

Chaos bei privaten Planungen vermeiden– auf der Arbeit geht es doch auch!

Jeder kennt es bestimmt: Wenn mehrere unterschiedliche Personen an einer Sache arbeiten kann leicht Chaos entstehen, wenn die richtige Abstimmung, Organisation und Planung fehlt. Als Trauzeugin meiner Freundin bei Ihrer Hochzeit, wo viele organisatorische und planerische TĂ€tigkeiten anfielen und natĂŒrlich nicht nur ich sondern das Brautpaar selbst, ein zweiter Trauzeuge sowie die Brauteltern involviert waren, habe ich dies direkt zu spĂŒren bekommen. StĂ€ndig die gleichen Fragen und Verwirrung wie z.B. "In welcher E-Mail waren die Ideen fĂŒr die Einladungskarten", "Wo liegt die Excel Liste mit den Location Adressen", "Hast du dich schon um die GĂ€steliste gekĂŒmmert?", direkt zu Beginn der Planung waren dann an der Tagesordnung. Zudem kam erschwerend hinzu, dass nicht alle Beteiligten am gleichen Standort ansĂ€ssig waren - und nicht mal eben schnell fĂŒr die Abstimmung der Programms am Hochzeitstag vorbei schauen konnten - oder durch unterschiedliche Arbeitszeiten eine gemeinsame Uhrzeit zu finden eh unmöglich erschien. Es fehlte einfach an einer Übersicht wo Fragen wie "Welche Aufgaben stehen an?", Wer ist an welcher Aufgabe beteiligt?", "In welchem Stadium befindet sich die Aufgabe?" und "Was hat aktuell PrioritĂ€t?" beantwortet wurden.

Durch meine tĂ€gliche Projektarbeit in unserer Firma wusste ich, dass solche Fragen einfach und unkompliziert mit einer Kanban-Taskboard und in Verbindung mit Redmine visualisiert und strukturiert beantwortet werden können. Eine Kanban-Planungstafel bei mir im Wohnzimmer bis zur Hochzeit meiner Freundin aufzustellen und Redmine in einem Netzwerk fĂŒr uns Beteiligte einzurichten, stellte jedoch keine einfach umzusetzende und perfekte Lösung fĂŒr den Alltag dar.

Auf der Suche nach einem geeigneten Tool, bin ich dann schließlich auf Trello gestoßen.

Trello ist ein kostenloses webbasiertes Projektmanagement Tool, wofĂŒr auch eine App fĂŒr das Handy zur VerfĂŒgung steht. Auf einem zunĂ€chst leeren Bildschirm legt man ein sog. Board an, welches ein Projekt, in meinem Fall "Hochzeitsplanung" reprĂ€sentiert. Hierbei handelt es sich um eine Tafel, vergleichbar mit der Kanban-Planungstafel. Man kann beliebig viele dieser Boards einrichten und Mitglieder zu den Boards einladen. Innerhalb dieser Boards werden dann die anstehenden AktivitĂ€ten fĂŒr das Projekt angelegt in Form von sog. Cards, die in Listen organisiert werden. StandardmĂ€ĂŸig gibt Trello die drei Listen "To Do", "Doing" und "Done" vor. Diese kann beliebig abgeĂ€ndert und erweitert werden. Auf der RĂŒckseite der jeweiligen Card steht eine Vielzahl nĂŒtzlicher Funktionen zur VerfĂŒgung. So beschreibt ein Text die AktivitĂ€t genauer und es können unterschiedliche Elemente eingebettet werden, wie etwa Fotos, Dokumente und vieles mehr. Die einzelnen Cards lassen sich dann innerhalb der Listen hin- und herschieben und können den Personen die Zugriff auf das Board haben zugewiesen werden. Um die Dringlichkeit der einzelnen AktivitĂ€ten aufzuzeigen kann eine Date Line hinterlegt werden oder die Cards farbig markiert werden. FĂŒr die gemeinsame Planung mit zwei oder mehr Personen sind die Funktionen wie Kommentierung der Cards, Diskussionen, Checklisten und Vote-Funktion zusĂ€tzliche praktische Helfer.

Das Ganze hat fĂŒr alle Beteiligten ganz einfach und intuitiv funktioniert. Zudem konnten alle Beteiligten mit entsprechenden Zugriffsrechten jederzeit einsehen, wie der Status einzelner Aufgaben ist. Durch das gemeinsame Vorgehen im Tool Trello erwies sich das Wort Chaos im unserem Projekt „Hochzeitsplanung“ als Fremdwort.

 

Sichtbare KomplexitÀt gegen das verborgene Chaos

Ein Modul kann installiert, bereitgestellt, verwaltet, wiederverwendet und zusammengesetzt werden. Es ist eine zustandslose Software-Einheit, die eine prĂ€zise Schnittstelle bietet. So schreibt es Kirk Knoernschild in seinem Buch „Java Application Archicture“ (1), in dem er Entwurfsmuster zur ModularitĂ€t erörtert. Werden diese Eigenschaften bei der Entwicklung einer modularen Software-Architektur berĂŒcksichtigt, lĂ€sst sich ein Softwaresystem gut strukturiert gliedern.

Es bietet sich an, die Module eines Systems sowohl horizontal entlang von Architekturschichten als auch vertikal entlang von fachlichen Grenzen zu schneiden. Auf der unteren Ebene entstehen so Module fĂŒr Entity-Objekte. DarĂŒber werden Module fĂŒr den Zugriff auf die Persistenzschicht angelegt, bis am oberen Rand des Domain-Models schließlich Service-Module die Modellschicht abschließen. Ist der Client der Services eine Anwendung, so entstehen darĂŒber noch Module fĂŒr die PrĂ€sentationsschicht.

Im Sinne einer losen Kopplung werden die Module noch nach Interfaces und Implementierungen getrennt, so dass importierende Module nur AbhĂ€ngigkeiten zu den Schnittstellendefinitionen haben. Auf diese Weise kommt schon in kleineren Anwendungen oft eine betrĂ€chtliche Anzahl von Modulen zusammen. Alle diese Module mĂŒssen ihre AbhĂ€ngigkeiten untereinander in Form von Exporten und Importen inklusive Versionsangaben beschreiben. Dazu eignet sich OSGi besonders gut. Aber auch z.B. mit Maven lĂ€sst sich das Dependency Management bewerkstelligen.

Das ist komplex? Ich finde, ja! Die AbhÀngigkeiten der Module untereinander im Blick zu halten, ist nicht immer leicht.

Weiterlesen...
 

Smart Home statt Altenheim!

Smart Home statt Altenheim!
Selbst bestimmt im eigenen Zuhause alt werden, unterstĂŒtzt von Smart Home Technologien, Social Networking Funktionen und neuen Serviceangeboten.

Die große Mehrheit der Menschen wĂŒnscht sich, auch im Alter selbstĂ€ndig in den eigenen vier WĂ€nden leben zu können. Das sagen acht von zehn Befragten. Bei den ĂŒber 70-JĂ€hrigen ist dieser Anteil mit 90 Prozent sogar noch höher. Nur eine Minderheit von 6 Prozent der Bevölkerung möchte in einer speziellen Alters- oder Pflegeeinrichtung mit Rund-um-die-Uhr-Betreuung untergebracht werden. Intelligente Wohnungen können Ă€ltere Menschen beim selbst bestimmten Leben zu Hause unterstĂŒtzen!

Unsere Autos sind die Vorreiter!

Zahlreiche Assistenzsysteme arbeiten heute in unseren Autos im Hintergrund. Sie unterstĂŒtzen uns bei schlechter Sicht, helfen beim Einparken, greifen in schwierigen Verkehrssituationen ein oder nehmen uns RoutinetĂ€tigkeiten ab. Die Assistenzsysteme im Auto geben uns einen Vorgeschmack auf das, was uns zu Hause noch bevorsteht.

Technologien und Dienste, die das alltĂ€gliche Leben fĂŒr Senioren angenehmer und sicherer machen, finden in der Bevölkerung viel Zustimmung. An erster Stelle stehen Hausnotrufsysteme, ĂŒber die bei UnfĂ€llen oder Gesundheitsproblemen schnell und gezielt Hilfe gerufen werden kann, dicht gefolgt von Alarmsystemen fĂŒr den Wohnbereich, wie Rauch-, Wasser- oder Einbruchsmelder. Nahezu gleichauf liegen Tele-Monitoring-Systeme zur Überwachung von Vitaldaten in Verbindung mit medizinischen Services und Pflegemanagement.  Ein Dienst zur SturzĂŒberwachung mittels Sensor der automatisch Hilfe holt steht ebenfalls weit oben auf der Liste gewĂŒnschter Assistenzsysteme. Abgerundet wird das Ganze durch Kommunikationsfunktionen und Komfortfunktionen zur Überwachung und Steuerung von HausgerĂ€ten, Beleuchtung oder Heizung.

Weiterlesen...
 

WEB oder APP in der Unternehmensanwendung - gleiche GUI fĂŒr alle!

Der normale Desktop-PC ist tot! Dieses Schicksal wird, wenn auch mit Abstand, das Laptop in Zukunft ereilen. Heutige Unternehmen lassen sich nicht mehr in große BĂŒrokomplexe mit einer Unmenge an BĂŒrorĂ€umen eingrenzen. Die Welt wird globaler und so auch die Unternehmen und ihre GebĂ€ude. Sollte man ein Unternehmen noch auf ein GebĂ€ude oder GeschĂ€ftsstellen reduzieren? Nein, das Netzwerk zĂ€hlt! Das Netz ist (fast) ĂŒberall und so kann ein Unternehmen an jedem erdenklichen Ort sein. Mit Smart Devices kann jede Aufgabe von ĂŒberall erledigt werden. Dies stellt aber auch neue Unternehmensanwendungen vor neue Herausforderungen – Entwicklung, Verteilung und Wartung sind Themen, die in der zukĂŒnftigen Unternehmenswelt neu gelöst werden mĂŒssen.

Anforderungen an die GUI, die auf unterschiedlichen Devices gleich aussehen soll, werden oft diskutiert. Auf der anderen Seite muss man als heutiges Unternehmen auch Apps im Portfolio haben, die die eigene Unternehmensanwendung auf Smartphone und Tablet verfĂŒgbar machen. Aber Apps bedeuten wieder zusĂ€tzliche EntwicklungsaufwĂ€nde, zumal die einzelnen Betriebssysteme dieser GerĂ€te unterschiedliche Programmiersprachen erfordern. Eine fachliche Anforderung muss plötzlich als Businesslogik in verschiedenen Sprachen implementiert werden. Hier sind zusĂ€tzliche Ressourcen notwendig. Nachfolgend aber natĂŒrlich auch fĂŒr Wartungsaufgaben und ganz zu schweigen von der Einbindung weiterer GerĂ€te, die alle unterschiedliche Hardware aufweisen.

Weiterlesen...
 

Planungspoker – „Spiel & Spaß“ und man kann nur gewinnen!

n-gine ist die Bezeichnung fĂŒr das n-design eigene Vorgehensmodell in Entwicklungsprojekten. Wir nutzen dabei die Vorteile aus verschiedensten agilen Vorgehensweisen. Unser Team hat in Vorbereitung auf n-gine eine große Anzahl an Techniken/Methoden aus der agilen Welt auf ihre Tauglichkeit hin geprĂŒft, ĂŒbernommen und auch wieder verworfen. Getreu unserem Grundsatz, dass n-gine durch und von unseren Projekterfahrungen lebt. Nur einstimmig im Team als effizient und vorteilhaft beurteilte Technik/Methode, wird zu einem festen Bestandteil unseres Vorgehensmodell.

n-gine und die damit definierte Vorgehensweise hat sich im Laufe vergangener Projekt gefestigt. Auf bestimmte Methodiken und Vorgehensweisen möchten wir in unserer tĂ€glichen Entwicklungswelt einfach nicht mehr verzichten! Dazu zĂ€hlt z.B. das Planungspoker, welches aus der agilen SCRUM-Welt fĂŒr n-gine adaptiert wurde.

Weiterlesen...
 


Seite 4 von 5