Das Semester ist noch nicht zu Ende, aber trotzdem wird es langsam Zeit, dass ich über die Erfahrungen der Projektstudie Softwareentwicklung berichte. In der letzten Veranstaltung hatten wir uns in einem großen Kreis zusammen gesetzt, um über die Projektstudie zu reflektieren.

Zunächst möchte ich mich auf diesem Wege noch einmal bei allen Beteiligten bedanken. Es ist schwer, Feedback zu geben, wenn Noten noch nicht vergeben sind. Ich danke für Ihr Vertrauen, so offen für Sie relevante Punkte anzusprechen. Und noch dazu bei jemanden, den Sie erst vor einem Semester grob kennen gelernt haben.

Danke schön!

So, was hatte ich auf unserer Sammeltafel notiert (meine Anmerkungen in kursiv)?

Zunächst das, was als positiv empfunden wurde.

1. Firmenprojekte

Auch dieses Semester wurden zwei der fünf Themen von externen Firmen gestellt. Diesmal war sogar SAP Consulting mit dabei. Die andere Firma war (leider) nicht ganz so präsent. Trotzdem ist es gut, praxisnahe und -relevante Projekte durchzuführen, besonders wenn die Ergebnisse später auch produktiv eingesetzt werden.

Dies sehe ich auch so. Ich freue mich, dass wir die Strukturen haben, relativ unkompliziert Projektstudien mit externen Firmen zu planen und umzusetzen. Für das nächste Semester ist wieder etwas in Planung. :-)

2. Räumlichkeiten und Werkzeuge

Der reservierte Gruppenarbeitsraum Y002 wurde als sehr hilfreich empfunden. Genügend Platz, mehrere Weißwandtafeln, Steckdosen für die eigenen Notebooks unterstützten die Arbeit. Auch wenn es ruhig mehr Steckdosen sein dürften ;-)

Als Werkzeug war besonders Dropbox hilfreich. Es bietet sehr gute Möglichkeiten für den Austausch von Dateien, auch mit externen Kunden. Den einen oder anderen hat die Backup-Funktionalität sehr geholfen.

Das Wiki hat Ihnen als Wissensbasis geholfen, da auch frühere Semester hier ihre Erfahrungen dokumentiert hatten.

Die Verfügbarkeit des Gruppenarbeitsraum wird auf jeden Fall beibehalten. Ich versuche im nächsten Semester mögliche Störungen durch andere Veranstaltungen weiter zu verringern

Den Einsatz von Dropbox sehe ich mit gemischten Gefühlen. Es hat Sie auch dazu verführt, das Werkzeug zur Versionsverwaltung (Subversion) eher zu wenig einzusetzen. Ich nehme mit, expliziter festzulegen, was in die Dropbox gehört, was in das Werkzeug zur Versionsverwaltung und was in das Wiki.

Siehe auch Punkt 7 aus dem letzten Semester.

3. Statusberichte

Der Zwang zu wöchentlichen Statusberichten hat Ihnen geholfen, das Ziel nicht aus dem Auge zu verlieren.

Und ich hatte zunächst gedacht, Sie würden den Zwang als zu restriktiv ansehen. So kann man sich täuschen.


Jetzt zu den Punkten, die Sie als verbesserungswürdig ansehen.

4. Teambuilding

Sie haben einen Workshop zur Verbesserung der Teamfähigkeit angeregt. Die Teams waren ja, bis auf eine Ausnahme, im wahrsten Sinne des Wortes, zusammengewürfelt (auch wenn es kein realer Würfel war, sondern nur ein Zufallszahlengenerator). Viele Teammitglieder kannten sich vorher höchstens vom Sehen, die Gruppe musste sich zum Team zusammenraufen.

Ich gebe zu, so richtig habe ich darüber noch nicht nachgedacht. Zum einen sollen Sie genau diese Erfahrung machen: mit relativ Fremden zusammen arbeiten und nicht nur eine Gruppe, sondern ein Team sein. Ein Workshop könnte möglicherweise das Bewusstsein für “Gruppe vs. Team” schärfen, aber ob ein “Teamunfähiger” dadurch “teamfähig” wird bezweifle ich.

Der Studiengang hat in diesem Semester einen ähnlich gelagerten Workshop für die Erstsemester durchgeführt. Ich bin gespannt, welche längerfristigen Ergebnisse hier zu erwarten sind.

5. Mehr Retrosprektiven

Es wurde von Ihnen als gut angesehen, dass wir die Feedbackrunde zum Ende der Veranstaltung durchgeführt haben. Diese sollte aus Ihrer Sicht häufiger durchgeführt werden. Als Anregung an zukünftige Projektteams sollten Retrospektiven auch teamintern durchgeführt werden.

Die Anregung nehme ich gerne mit. Ich werde im nächsten Semester eine weitere Feedbackrunde für die Mitte des Semesters einplanen. Teaminterne Retrospektiven sollte m.E. moderiert werden. Vielleicht kann dies der studentische Coach übernehmen.


Als weder rein positiv, noch rein verbesserungswürdig haben Sie folgende Punkte angesprochen:

6. Pair Programming

Pair programming hat vielen geholfen, sich tiefer in das jeweilige Gebiet einzuarbeiten. Problematisch wird gesehen, dass im Werkzeug zur Versionsverwaltung nur ein Benutzer als Bearbeiter gespeichert wird.

Ja, ich nutze die Informationen aus dem Werkzeug zur Versionsverwaltung, um abzuschätzen, wer wieviel an der Entwicklungsarbeit beteiligt war. Da immer nur einer als Bearbeiter angegeben werden kann, sollten Sie sich entsprechend beim Einchecken abwechseln. Und wenn Sie zusätzlich dokumentieren, wann Sie mit wem Pair programming betrieben haben, kann ich dies berücksichtigen.

Also: keine Angst vor dem Pair programming

7. Risikomanagement

Sie bemerkten, dass es Ihnen geholfen hat, eine initiale Risikoanalyse durchzuführen. Diese sollte aber im Laufe des Projektes immer wieder durchgeführt werden, da sich die anfänglichen Annahmen immer mal wieder als falsch heraus stellen.

Ja. Das nennt man dann Risikomanagement ;-). Ich nehme das einmal als Botschaft an Ihre Nachfolger.

8. Zeit- / Aufgabenbewusstsein

Hier gab es nach Ihrer Auskunft erhebliche Unterschiede zwischen einzelnen Teammitgliedern. Einige sahen es eher “locker”, andere sehr penibel. Dies gilt es im Team zu harmonisieren.

Dies ist sicher ein Punkt zur Teambildung. Ist von mir so gewollt, das sollen Sie lernen. Manche können das besser als andere. Aber so ist das Projektleben ;-). Auch dies nehme ich als Anregung an Ihre Nachfolger im kommenden Semester. Evtl. kann auch hier der studentische Coach unterstützen, z.B. in den teaminternen Retrospektiven.


So, habe ich noch etwas vergessen? Ich hoffe mal nicht und freue mich, Sie dann im nächsten Semester in Projektmanagement 3 zu sehen, wenn Sie nicht das Proxasissemester absolvieren. Falls ich etwas vergessen habe, einfach eine E-Mail an mich. Oder hinterlassen Sie einen Kommentar zu diesem Blogeintrag.

, , ,

Seit einiger Zeit begleitet mich ein Zitat zum Thema Führung, dass Antoine de Saint-Exupéry zugeschrieben wird:

Wenn Du ein Schiff bauen willst, so trommle nicht Männer zusammen, um Holz zu beschaffen, Werkzeuge vorzubereiten, Aufgaben zu vergeben und die Arbeit einzuteilen, sondern lehre die Männer die Sehnsucht nach dem weiten endlosen Meer.

Heute habe ich in einem sehr interessanten Buch ein Zitat von Plutarch gelesen, das mich sicher auch einige Zeit in meiner Arbeit als Lehrender begleiten wird:

Der Geist ist nicht wie ein Gefäß, das gefüllt werden soll, sondern wie Holz, das lediglich entzündet werden will.

Wenn das keine Handlungsanweisung für Lehrende (und Lernende!) ist.

Das Zitat in einem größeren Kontext erhellt (!) sicher noch mehr:

Wir müssen uns – nachdem wir die grundlegenden Aspekte begriffen haben – (gegenseitig) dazu ermuntern, in uns selbst alles andere miteinander in Verbindung zu setzen, unsere Erinnerung zu nutzen, um unser originäres Denken zu lenken, und das, was ein Anderer sagt, als Ausgangspunkt anzuerkennen, als Saatkorn, das genährt und aufgezogen werden will. Den die richtige Analogie füe den Geist ist nicht etwa das Gefäß, das gefüllt werden muss, sondern Holz, das entzündet werden will – sonst nichts -, und dann spornt es einen zu Originalität an und flößt einem die Sehnsucht nach Wahrheit ein.

Angenommen, jemand ginge los, um seine Nachbarn um Feuer zu bitten; er fände dort eine zuverlässige Flamme vor und bliebe einfach dort, um sich fortwährend zu wärmen. Dies unterscheidet sich in nichts von einem Anderen, der jemanden aufsucht, um etwas von dessen Vernunft mitzubekommen, und nicht begreift, dass er seine eigene Flamme, seinen eigenen Intellekt, entzünden muss; aber er ist zufrieden damit, vom Vortrag verzaubert dort zu sitzen, und die Worte lösen lediglich assoziative Denkvorgänge aus und bringen quasi nur seine Wangen zum Erröten und Glut in seine Glieder. Aber er hat im warmen Schein der Philosophie die feuchte Düsterheit im Inneren seines Geistes nicht vertrieben oder zerstreut.

Wir Lehrenden dürfen nicht einfach nur Fakten, Fakten, Fakten präsentieren. Sicherlich haben diese einen Wert, wenn es darum geht, Grundlegendes aus einem Fach als Starthilfe weiter zu geben. Aber dann muss der Funke überspringen. Wir Lehrende müssen die Flamme unseres Wissens weiterreichen, nicht nur mit warmen Worten wärmen.

Wir Lernende dürfen uns nicht damit zufrieden geben, dass ein Anderer uns schon mit dem richtigen Wissen versorgen wird. Wir müssen selbst lernen, das kann der Lehrende nicht für uns tun. In der deutschen Sprache gibt es aus gutem Grund keine wirkliche Passivform zu “Lernen”. “Ich wurde gelernt” klingt jedem grausam in den Ohren.

Her mit dem Feuer, ich brenne darauf zu lernen und zu lehren ;-)

, , ,

Der eine oder andere hat es schon via Twitter mitbekommen: ich bin stolzer Besitzer eines Mac. Nach 17 Jahren wieder … Ich werde später darüber berichten.

Vieles muss ich mir wieder aneignen, manches auch neu lernen. Damit ich es nicht so schnell vergesse, wie man unter OSX von einer CD ein ISO-Image erzeugt, hier meine Anleitung (DVD habe ich noch nicht getestet):

  1. CD einlegen
  2. Festplatten-Dienstprogramm starten
  3. CD auswählen
  4. Auf “Neues Image” klicken
  5. Name und Verzeichnis wählen (ja, die Endung .dmg ist in Ordnung)
  6. Als Image-Format “lesen” wählen, keine Verschlüsselung
  7. Und los gehts
  8. Damit wird noch kein ISO-Image erstellt, dass kommt jetzt mit dem nächsten Schritt
  9. Terminal öffnen, und zum Verzeichnis des DMG-Images wechseln
  10. Folgendes eingeben: hdiutil convert <dmg-image> -format UDTO -o <iso-image>
  11. Dies erzeugt eine Datei <iso-image>.cdr
  12. Endung .cdr einfach entfernen

Fertig.

, , , ,

In der c’t-Ausgabe 23/2009 gibt es einen Artikel mit Namen Elefantengedächnis, der beschreibt, wie man die Twitter-Timeline nebst Links und Bilder archivieren kann. Zwei Gedanken gingen mir nacheinander durch den Kopf. Erstens: “Hätte ich doch etwas gewartet, da hätte mir dann jemand Arbeit abgenommen”. Zweitens: “Zum Glück habe ich vorher angefangen und meine eigenen Erfahrungen gesammelt”.

Im Unterschied zu Twacbak ist Twitterbak mit Hilfe von Perl und PHP implementiert. Der Perl-Code dient dazu Twitter regelmäßig per API abzufragen und die Ergebnisse abzuspeichern. Mit PHP wird ein web-basierter Dienst implementiert, um die Ergebnisse anzuzeigen und zu durchsuchen. Schwerpunkt von Twitterbak ist das Archivieren der eigenen Tweets.

Ist Twitterbak eine Konkurrenz zu Twacbak?

Auf jeden Fall. Eine gute dazu.

Das Profil von Twitterbak ist klar: Datensicherung. Wohin die Reise mit Twacbak hingehen wird, ist mir dagegen noch nicht klar.

Was gibt es an Ähnlichkeiten? Beide wollen die Ergebnisse von Twitter-Aktivitäten längerfristig sichern, beide nutzen dazu SQLite als interne Datenbank. Beide sichern die eigenen Tweets, die direkten Nachrichten und die sog. Mentions, d.h. Tweets, in denen der eigene Account erwähnt wird. Beide sollen periodisch im Hintergrund, z.B. als Cron-Job, ablaufen.

Was kann Twacbak darüber hinaus? Twacbak kann auch die gesamte Timeline sichern, d.h. alle Tweets aller Account, denen man selbst folgt. Es werden die Favoriten gesichert und, ganz wichtig, alle Friends und Follower. Ich weiß, wovon ich spreche. Die Liste derjenigen denen man folgt ist ein fast so wertvolles Asset, wie die eigenen Tweets. Nebenher speichert Twacbak die Friend/Follow-Historie, denn es gibt immer wieder welche, die einem abwechselnd folgen und wieder nicht folgen. Damit ist Twacbak nicht nur ein Werkzeug zum Sichern der Twitter-Aktivitäten, sondern unterstützt diese auch. Mit Twacbak können sebst auch Tweets gesendet werden, Re-Tweets auf Basis von Schlüsselworten werden unterstützt, auch das Folgen per Kommandozeile geht.

Viele der anderen Unterschiede sind Geschmackssache. Ob ich nun das Ganze über eine Konfigurationsdatei steuere oder ob die Daten in der Datenbank selbst abgelegt werden: jeder wird für beides Vor- und Nachteile finden. Ditto für Änderungen am Quellcode selbst und einige Befehlsoptionen mehr gegenüber der Wahl für eine kleine Skriptsprache. Letztens Endes Firlefanz für einen Vergleich.

Natürlich kann das eine oder andere auch schnell von Twitterbak implementiert werden. Auch die größere Fehlertoleranz, wenn Twitter mal wieder nicht verfügbar ist. Darauf freue ich mich.

Ich habe für Twacbak die Anregung aufgenommen, die kurzen URL zu ermitteln, die sich hinter den Twitter-typischen Short-URL’s (z.B. via bit.ly) verbergen. Das gleiche gilt für Bilder. Nebenbei, dank der Python-Bibliotheken (“Batteries included“) geht das Ganze leichter und weniger fehleranfällig von der Hand. (Die Spitze musste sein, ich nehm das aber nicht zu ernst ;-) )

Über den Artikel habe ich mich sehr gefreut. Bestätigt er doch, wie sinnvoll es ist, selbst für die Sicherung der eigenen Daten zu sorgen und sich nicht immer nur irgendwelchen obskuren Web-Diensten anzuvertrauen. Ich werde die Entwicklung von Twacbak im Rahmen meines knappen Zeitbudgets vorantreiben und immer mal nach nebenan zur Konkurrenz schielen.

Die belebt nämlich auch den eigenen Geist.

, , , , ,

Lange habe ich mich schon um die Anforderungen zu Twacbak herumgedrückt. Im
Kopf waren Sie schon, aber nicht zu Papier. Und, als weitere Ausrede, musste
ich erst einmal ausprobieren, was die Twitter-API so alles hergibt. Damit bin ich nun soweit fertig, einen ersten Prototyp habe ich auch schon.

Also, was sind (meine) Anforderungen?

Funktionalität

  • Sichern aller grundlegenden Daten eines Twitter-Accounts, wie:
    • Benutzerdaten (Name, Location, eigene URL, Bio, … so wie sie im Profile / Setting angegeben werden),
    • alle eigene Tweets,
    • Favorites,
    • gesendete Nachrichten,
    • empfangene Nachrichten,
    • Liste der Friends, d.h. der Accounts, denen man folgt,
    • Liste der Follower, d.h. die Account, die einem folgen.
  • Sichern von nützlichen Zusatzinformationen:
    • Wann ist mir wer gefolgt, wann hat er mich aus seiner Liste gelöscht?
    • Wann bin ich jemanden gefolgt, wann habe ich das Verfolgen aufgegeben?
    • Was haben meine Friends so getwittert?
    • Wenn jemanden eine Antwort getwittert hat, auf welchen Tweet welchen Benutzers bezog sich diese Antwort?
  • Die gesammelten Daten sollen auf den Bildschirm / in eine Datei ausgegeben werden können.
  • Darüber hinaus sollen folgende Berichte (Bildschirm / Datei) ausgegeben werden:
    • Liste der Accounts, die kürzlich das Verfolgen eingestellt haben
    • Detailinformationen zu Accounts, z.B. wann bin ich gefolgt, wann wurde meinem Account gefolgt, wann wurde das Verfolgen eingestellt und wieder aufgenommen, …
    • Durchsuchen der Tweets nach bestimmten Begriffen.
  • Sobald von Friends Tweets mit einem definierten Hashtag erscheinen, sollen diese Retweetet werden.
  • Eigene Tweets sollen auf einem anderen Account gespiegelt werden.
  • Gespeicherte Informationen zu Accounts sollen regelmäßig aktualisiert werden, z.B. einmal pro Woche.

Technisches

  • Die Daten sollen so abgespeichert, dass diese auch separat auswertbar sind.
  • Twacbak soll regelmäßig ohne Benutzerinteraktion die Daten von Twitter einsammeln können.
  • Es soll eine Lösung für einen Account erstellt werden.  Twacbak soll nicht für beliebig viele Accounts Daten sammeln.
  • Es sollen beliebige Microbloggingdienste unterstützt werden, welche die Twitter-API bereitstellen. Neben Twitter ist dies z.B. identi.ca.
  • Twacbak soll im Normalfall einmal pro Stunde ablaufen und dabei max. 50 Aufrufe der API tätigen.
  • Die Software soll so weit es geht platformunabhängig sein. Auf jeden Fall soll die Software unter Windows und unter Linux ablaufen.

Das wären die ersten Anforderungen. Wir alle wissen ja: der Appetit kommt beim Essen. Und wenn jemand Anregungen hat, ich nehme diese gerne entgegen ;-)

, ,