Uploaded avatar of iHiD

Das Projekt zur automatisierten Mentoring-Unterstützung

@iHiD
vor Mehr als 7 jahre

Update: Wir freuen uns, bekannt geben zu können, dass Mozilla uns für dieses Projekt einen Open Source Support Award verliehen hat. Hier erfährst du mehr.

Dieser Blogbeitrag läutet den Start des Exercism-Projekts Automated Mentoring Support Project ein. Darin entwickeln wir ein Framework, das die Lösungen der Nutzer programmatisch analysiert, um den Feedback-Kreislauf für Lernende zu verbessern und Mentoren zu entlasten. Kurzfristig wollen wir Lösungen, die bestimmte Akzeptanzkriterien erfüllen, automatisch freigeben und Feedback zu häufig wiederkehrenden Verbesserungen geben.

Ziel dieses Beitrags ist es, das Problem zu beschreiben, das wir lösen wollen, und den groben Plan, wie wir es in den nächsten Monaten angehen. In weiteren Beiträgen gehen wir dann auf den Hintergrund des Problems und die Geschichte der automatisierten Analyse bei Exercism ein und geben mehr Details zu unserer Umsetzungsstrategie.

Warum automatisierte Mentor-Unterstützung?

Die größte Hürde für Exercism besteht darin, mit der schieren Menge umzugehen.

Unsere Freiwilligen-Mentoren sind entscheidend für den Erfolg von Exercism. Sie sichten die Lösungen der Lernenden, prüfen, ob sie die Erfolgskriterien der Übung erfüllen oder verbessert werden müssen, versetzen sich einfühlsam in den Gedankengang der Lernenden, geben ermutigendes und hilfreiches Feedback und bringen ihnen die Idiome einer Sprache näher. Heute schaffen wir es gerade so, mit der Nachfrage nach Mentoring Schritt zu halten. Wenn wir wachsen wollen, brauchen wir eine bessere Strategie als „mehr Mentoren hinzufügen“.

Bei den Kernübungen, die das Rückgrat eines Sprach-Tracks auf Exercism bilden, schätzen wir, dass etwa 25 % der Einreichungen schon beim ersten Versuch gut genug sind, um als abgeschlossen markiert zu werden. Weitere 55 % der Einreichungen haben Probleme, die in gängige Kategorien fallen und sich mit dem Kopieren und Einfügen von Feedback-Snippets betreuen lassen. Nur etwa 20 % der Lösungen erfordern einen Mentor, der erfinderisch und durchdacht feedingback gibt.

Die 80 % der Lösungen, die den Kopf eines Mentors nicht wirklich fordern, sind ein frustrierender Zeitfresser für Menschen, die bereit sind, ihre Zeit freiwillig anderen zu widmen, und sie nutzen deren Fachwissen nicht aus.

Ähnlich geht es den Lernenden: Sie warten zwischen einem Tag und einer Woche auf Feedback und können in der Zwischenzeit im Track nicht weiterkommen. Wer eine Iteration eingereicht hat, die zu den 25 % der vollkommen gültigen Lösungen gehört, für den ist diese Verzögerung besonders frustrierend. Für alle anderen ist sie bestenfalls suboptimal. Lernende verlieren wegen dieser Verzögerung oft den Schwung und werden vom Prozess frustriert.

Wenn wir ein System entwickeln, das eine Lösung automatisch analysieren und sie entweder freigeben oder vorgefertigtes Feedback zu bekannten Problemen liefern kann, können wir die Arbeitslast der Mentoren drastisch senken, indem wir die „langweiligen“ Teile eliminieren, und zugleich das Erlebnis der Lernenden deutlich verbessern. Als Bonus obendrein erhalten die Lernenden konsistenteres Feedback bei strukturellen und stilistischen Fragen, was sie in die Lage versetzt, interessantere Gespräche über die weniger eindeutigen Themen zu führen.

Wie funktioniert es?

Unser langfristiges Ziel ist es, Deep-Learning-Algorithmen zu entwickeln, die die Abstract Syntax Trees (ASTs) der fast eine Million Einreichungen analysieren können, die seit dem Start von Exercism im Jahr 2013 eingereicht wurden. Ein solches Tool könnte gängige Muster und die dazugehörigen Kommentare von Mentoren erkennen. Kurzfristig wollen wir mit statischer Analyse ermitteln, welches Feedback sich auf Basis der am häufigsten wiederkehrenden Fehler geben lässt, die Mentoren sehen.

Das Projekt gliedert sich grob in die folgenden Bereiche:

  1. Produktänderungen: Wir müssen klären, wie diese automatische Analyse mit der aktuellen Mentoring-UI zusammenpasst, wie wir dieses Feedback kommunizieren (Systemnachrichten, ein „Bot“ usw.) und das Ganze dann für die Exercism-Website umsetzen.
  2. Infrastruktur: Wir entwerfen und bauen eine Infrastruktur, die statische Analyse effizient über mehrere Sprachen hinweg ermöglicht.
  3. Prototyp für statische Analyse: Wir entwickeln einen Beispiel-Analyzer, der gute Lösungen für Ruby / Two-fer automatisch freigibt, und dokumentieren diesen Prozess, damit die breitere Community beitragen kann.

Wir wollen den ersten Prototyp bis Mitte 2019 starten. Sobald die Grundlagen stehen, wollen wir das Ganze auf andere Sprachen als Ruby und andere Übungen als Two Fer ausweiten. Auch wenn das Framework, um weitere Sprachen und Übungen in die Website zu integrieren, erst dann steht, wenn wir mit dem Prototyp vorangekommen sind: Wenn du schon jetzt Analyzer für deine Lieblingssprachen und -übungen schreiben willst, gibt es keinen Grund zu warten! Eröffne ein Issue im GitHub-Repository für dieses Projekt und erzähl uns, was du machen möchtest.

Wir freuen uns sehr darauf, mit anderen aus der Exercism-Community zusammenzuarbeiten, die statische Analyse bereits zur Unterstützung beim Mentoring einsetzen, etwa tehsphinx und bitfield, die ein Tool zur statischen Analyse für Mentoren im Go-Track entwickelt haben. Dass der Track dadurch von einem riesigen Backlog zu einem der reaktionsschnellsten Sprach-Tracks auf Exercism wurde, zeigt, wie wirkungsvoll automatisierte Mentor-Unterstützung sein kann.

In den nächsten Wochen stellen wir diese ersten wichtigen Schritte und ihre Funktionsweise genauer vor.

Wir beantworten gerne alle deine Fragen unten im Kommentarbereich! :)

7. Feb 2019 · Fandest du ihn hilfreich?