buesing-coaching.de – Projektbericht

Letzte Woche habe ich mein erstes externes Projekt alleine abgeschlossen, http://buesing-coaching.de/. Hier möchte ich mitteilen, was für Herausforderung ich hatte und was ich gelernt habe.

Susanne Büsing   Coaching   Training   Susanne Büsing   Coaching   Training

 

Das Projekt:

Das Projekt selbst ist die Seite einer Kommunikationstrainerin, die hier Ihre Dienste in Ihrem Bereich anbieten und Information über sich selbst zur Verfügung stellen möchte.

Continue reading

How Mock can help you write faster tests

Today I had a pretty annoying programming problem: I had to test a function that was calling another function which took a really long time, “csp_solver”.

def wrapper_fn(one, two=None):
    if not two:
        return csp_solver(one=one)

So at first I wrote

from unittest import TestCase


class TestWrapperFn(TestCase):
    def test_csp_solver_is_called(self):
        result = wrapper_fn(one=1)
        self.assertEqual(result, 2)

The problem itself was solvable but the annoying thing was that every time I changed one line I had to rerun the whole thing and that tool forever.

csp_solver is a very slow external library. I already wrote a lot of tests for the underlying function so today I just had to make sure the calling function worked.
To do that I remembered “unittest.mock”. With mocks I can temporarily override functions that I don’t need right now and test the environment.

I just want to test that csp_solver is called during the operation and with the correct parameters so it can be patch for our scenario here:

from unittest import TestCase
from mock import patch


class TestWrapperFn(TestCase):
    @patch('csp_solver')
    def test_csp_solver_is_called(self, csp_solver_mock):
        self.assertFalse(csp_solver_mock.called)
        csp_solver_mock.return_value = 2
        result = wrapper_fn(one=1)
        self.assertEqual(result, 2)
        self.assertTrue(csp_solver_mock.called)

This small trick allowed me to improve test execution speed significantly which allowed me to focus on the problem not debugging it, great! Hope this trick saves you some time 🙂

Trip Update. Juni

Einladung von Benutzern: Verbesserter Prozess, direkte Auswahl von existierenden Benutzern und vereinfachte der Ansprache von neuen Benutzern

Das Einladen von bestehenden und neuen in Gruppen von Trip App ist einfacher denn je. Unter “Mitglieder und Info” sind folgende Aktionen möglich:

  • Durch die Eingabe des Namens oder E-Mail Adresse bestehende Mitglieder zu einer Gruppe hinzugefügt werden. Diese sind direkt ansprechbar und werden über diese Einladung via E-Mail benachrichtigt.
    inv_1
  • Wenn durch die Suche kein bestehender Benutzer gefunden worden ist, kann durch Eingabe einer E-Mail Adresse ein neuer Benutzer eingeladen werden. Dieser Einladung kann optional ein individueller Text hinzugefügt werden.


Die neuen Mitglieder der Gruppe können direkt nach der Einladung via E-Mail angesprochen werden. Die Benutzer können per E-Mail direkt antworten.
inv_4

Neues Feature: Organisationen

Eine Organisation ermöglicht die Gruppierung von Benutzern und Gruppen.

  • Du kannst eine Gruppe innerhalb einer Organisation erstellen.
    inv_5
  • Organisationen können Benutzer hinzugefügt werden, so dass diese die Organisationen und deren Gruppen (auf die sie bereits Zugriff haben) sehen können.
  • Benutzern einer Organisation können zu Admins gemacht werden, danach können diese auch Gruppen und Benutzer zur Organisation hinzufügen.
    inv_6

Es ist angedacht in einer der nächsten Iterationen das Rechtekonzept um Organisationen zu erweitern. So das z.B. Gruppen für alle Mitglieder einer Organisation zugänglich sind.

Geschwindigkeitsverbesserung nicht nur für Poweruser

Für Poweruser (mehr wie 50 Gruppen) haben wir die nötigen Anfragen optimiert, damit ist Trip App bereit für den ersten Benutzer mit 1.000 Gruppenmitgliedschaften.

Design: Temporäre Änderungen
Parallel zu den skizzierten Verbesserungen und Optimierungen arbeiten wir mit Hochdruck an der nächsten Iteration der Benutzeroberfläche – es wird “more sexy” so viel sei schon mal verraten.

Feedback zur neuen Funktion erwünscht
Wir freuen uns über euer Feedback, vor allem zur überarbeiteten Funktion “Benutzer einladen”.

Außerdem sind die neue Shortcuts online:

  • F (Feed) für den Wechsel zur Neuigkeiten-Seite
  • M (Members) führ den Wechsel zur Alle-Personen-Seite
  • G (Groups) für den Wechsel zur Alle-Gruppen-Seite

Framework für die Einordnung von Software im Bereich Zusammenarbeit und Wissensmanagement

Probleme und Erfahrungen im Arbeitsalltag von nwebs

Wir arbeiten schon seit längeren in Projekten virtuell zusammen. Die grundlegende Charakteristika unserer Zusammenarbeit ist hierbei häufig sehr ähnlich und lässt sich durch die folgenden Punkte umschreiben:

1. örtliche und zeitlich verteilte Zus

lokal getrennt, zu unterschiedlichen Zeitpunkten, bei sich ändernde Teamzusammensetzungen, mehreren Projekten gleichzeitig mit spezifischen Zielen, organisationsübergreifend mit Kunden zusammen und mobil mit Hilfe von Smartphones.

Als Unterstützung haben verschiedene Werkzeuge ausprobiert: E-Mail, E-Mail und E-Mails, gemeinsame Laufwerke, Wiki-Systeme, Ticket-Systeme und Projekt-Management-Systeme.  Es hat aber irgendwie nicht gut funktioniert und gefühlt hat auch immer bei jeder Lösung etwas gefehlt. Im Laufe der Zeit haben wir uns immer tiefgehender mit dem Thema beschäftigt und aus unseren Überlegungen und Erfahrung heraus hat sich ein Framework für funktionierende Zusammenarbeit und Wissensmanagement in Gruppen und Teams entwickelt. Wir glauben, dass für eine erfolgreiche Zusammenarbeit im Team bestimmte Grundfunktionalitäten der folgenden fünf Dimensionen notwendig sind (s.h. Tabelle).

Nr. Dimension Beschreibung
1 Collaboration Möglichkeit gemeinsam zu denken, gemeinsam Inhalte und Dateien zu erstellen, gemeinsam Dokumente auszutauschen, sich über Termine abstimmen zu können oder die Möglichkeit Entscheidungsprozesse, etc. abzubilden.
2 Projektmanagement: Möglichkeit von der einfachen Verwaltung von Aufgaben, über die einfache Planung und Verwaltung von Projekten bis hin zur komplexen Zeit-, Struktur- und Ressourcenplanung von Projekten.
3 Kommunikation: Möglichkeit von einfachen Kommentaren und privaten Nachrichten, über Benachrichtigung und E-Mails sowie Chats bis hin zum Austausch über Video- und Telefonkonferenzen.
4 Social Network: Zugriff auf das Profil meiner Teamkollegen. Aufbau eines persönliches Netzwerks mit meinen Kollegen und Partnern. Bewertungsfunktionen für Inhalte und Kommentare. Möglichkeit die Aktivitäten/Neuigkeiten meiner Kollegen zu folgen.
5 Individuelles Wissensmanagement: Möglichkeit von der Speicherung und Versionierung von Informationen, über die Strukturierung und Verknüpfung von Informationen sowie Suchfunktionalitäten bis hin zu Methoden des automatischen Erschließens von impliziten Wissen.

Jeder Dimension haben wir Funktionen zugeordnet, die nach ihrer Komplexität geordnet sind. Am Anfang einfache grundlegende Funktionalitäten und am Ende komplexe und umfangreiche Expertenfunktionen (vgl. Abbildung). Unserer Meinung nach kann Wissensmanagement in der Zusammenarbeit nur funktionieren, wenn relevante Funktionen aller 5 Dimensionen verücksichtigt werden.

### GRAFIK ###

 

 

Unserer Auffassung nach kann Wissensmanagement in der Zusammenarbeit nur funktionieren, wenn alle 5 Dimensionen berücksichtigt werden, wobei die 4 Dimensionen als Enabler für die Dimension des Wissensmanagements anzusehen sind.

Was ist eure Meinung? Findet ihr euch in diesem Framework wieder?


 

Bisherige Softwarelösungen und der aktuelle Hype von neuen Lösungen im Bereich Social Software vergessen oft einzelne Dimensionen und zwingen die Benutzer dazu, weitere Systeme einzusetzen und verhindern integratives Wissensmanagement. Der Einsatz einer Vielzahl von Einzellösungen schafft einen erheblichen zusätzlichen IT-Aufwand und Kostenfaktor für die Integration der Einzellösungen. In der Praxis benötigen der Großteil der Benutzer nur einen Teil der in einer Dimension angeboten Funktionen. Deshalb entwickeln wir Trip nach folgendem Leitgedanken: 80% der Nutzer (Teams) benötigen nur 20% der Funktionalität von bestehen Anwendungen um 80% ihrer Arbeit zu erledigen. Wir bilden mit Trip genau diese 20% ab.[P1]Werden mehrere Lösungen in einem Unternehmen verwendet, werden automatisch Ineffizienzen in Kauf genommen. Z.B. wird die Kombination von Dropbox als Dateiverwaltung und WikiWiki fürs Wissensmanagement von manchen Teams verwendet. Das führt zu einer Trennung der Dateien und Inhalten und bedeutet Mehraufwand für die Benutzer.

[P1]Message muss sein: Einzellösungen = Mehraufwand für Integration, Probleme in der Interaktion, Barrieren für aktives Wissensmanagement =>deshalb integrative Gesamtlösung, spart Kosten für Integration und ermöglich barrierefreies Wissensmanagement.

  • Eigene Erfahrung (10 Zeilen)
  • Grafik reinhauen
  • Dimensionen erklären
  • Abschließend Zusammenfassen: Genau die Fünf Dimensionen benötige für funktionirendes Wissensmanagement und Zusammenarbeit

 


Sprintabschluss und Start der Beta Phase

In den letzten Wochen hat sich einiges getan. Wir haben viel entwicklt, designt, disktuiert, etc. und einiges gemacht.

Sprint Abschluss

Am Freitag hat der Sprint Abschluss stattgefunden. Das Entwicklungsteam hat das Ergebnis des letzten Sprints vorgestellt. Es waren einige Gäste geladen … Bier und Sandwiches im Anschluss … Gleich die ersten Tests und Feedback … Teamabschluss im Besitos … (nur 3 bis 4 vier Sätze)

FOTO 1 (kommt noch)

Konferenz Kassel.

Montag/Dienstag in Kassel auf der Konfernez für Start-Up-Center. Workshop Trip vorgestellt. Stand mit Trip gehabt … (nur 3 bis 4 vier Sätze)

FOTO 1 (jone Fragen)

Start der Beta Phase

Ihr könnt euch jetzt auf der Webseite für die geschlossene Beta Phase registrieren. Wir werden nach und nach mehr Teams einladen und die Nutzerschaft aufbauen. … (nur 3 bis 4 vier Sätze)

SCREEN 1 (von Janina)

SCREEN 2 (von Janina)

Kurzer Überblick über Vorgehensmodell Scrum

Zwischen durch etwas zum knackige und kurzweilige Theorie zum Vorgehensmodell Scrum, welches wir bei der Entwicklung von Trip einsetzen.

Scrum so kurz wie möglich erklärt vom Team it-agile

Stefan Hagen hat dazu folgende nicht ganz so kurze Präsentation von Jurgen Apello vorgestellt http://pm-blog.com/2009/12/27/scrum-verstehen/

Alles neu macht der Mai – oder Sprints zur stabilen Betaversion

Der Mai ist seit einer Woche passé – Zeit zurück zu blicken.

  • Technik und Benutzeroberfläche stabil:
    Im April und Mai haben wir mit zwei Sprints zum einen die Technik hinter Trip weiter ausgebaut und gefestigt und zum anderen die Oberfläche einen wichtigen Schritt voran gebracht. Beides zusammen ist nun soweit das wir es gerne interessierten Kunden zeigen und für den konkreten Anwendungsfall anpassen.
  • Continue reading