Ohne Stack Overflow arbeiten? Geht nicht. Woher sonst soll der ganze Code kopiert werden? Memes, die sich über genau diese Tatsache lustig machen, gibt es zuhauf.
Ganz so schlimm ist es zwar nicht. Trotzdem ist Stack Overflow eine derart wichtige Ressource, dass die Website einfach nicht mehr aus dem Arbeitsalltag der meisten Entwickler wegzudenken ist.
Bevor ihr dort oder in irgendeinem anderen Forum eure Frage postet, solltet ihr euch aber mit ein paar Best Practices vertraut machen – wer die beachtet, hat ganz einfach bessere Chancen auf eine zielführende Antwort.
Vorbereitung ist alles
Step 1: Recherche!
Fragen solltet ihr niemals stellen, ohne selber nach einer Lösung gesucht zu haben. Stack Overflow und andere Hilfeseiten gibt es schon lange, und es ist eher unwahrscheinlich, dass es vor euch noch nie jemanden gegeben hat, der ein ähnliches Problem hatte. Gute Anlaufstellen sind neben Stack Overflow zum Beispiel GitHub oder auch Youtube.
Pro-Tipp: Wenn ihr auf Stack Overflow auf eine zu eurem Problem passende Frage gestoßen seid – auf der Seite gibt es ein Bewertungssystem. Die Anworten zu überfliegen und erst jene mit den meisten Upvotes zu lesen und auszuprobieren, führt erfahrungsgemäß schneller zum Finden einer passenden Issue, als chronologisch vorzugehen.
Step 2: Formsache!
Ihr habt das Netz durchkämmt und seid wirklich, wirklich nicht fündig geworden? Also ehrlich ganz sicher nicht? Dann seid ihr jetzt an dem Punkt, an dem ihr eure Frage in einem Forum stellen könnt. Dafür gibt es einige formale Regeln:
Formatiert euren Code. Fragt ihr nicht bei Stack Overflow, sondern beispielsweise in einer Gruppe in einem sozialen Netzwerk, könnt ihr euren Code etwa in einen GitHub Gist packen und eurer Fragestellung einen Link beifügen. Webentwickler können hierfür auch zum Beispiel auf Codepen oder JS Bin zurückgreifen. So können andere euren Code auch gleich ausführen. Die Suche nach der Fehlerquelle wird so immens erleichtert. Wenn ihr euren Code einfach kopiert und einfügt, ohne ihn zu formatieren, erschwert ihr anderen diese Handlung unnötig. Die Folge: Andere werden weniger Lust haben, euch zu helfen.
Step 3: Ausschlussverfahren
Während eurer Recherche seid ihr mit Sicherheit auf Fragestellungen zu Problemen gestoßen, die eurem ähneln, euch aber nicht zur gewünschten Lösung geführt haben. Die solltet ihr auf jeden Fall bookmarken und später in eurem Post verlinken. Allein um klarzumachen, dass und in welcher Art und Weise sich euer Problem von bereits vorhandenen Postings unterscheidet. Sonst lauft ihr Gefahr, dass andere Nutzer der Plattform euch einfach auf genau diese Ressourcen verweisen.
Fragen
Auch für das Verfassen eurer Fragestellung gibt es Best Practices:
Der Titel
Formuliert eine aussagekräftige Überschrift. Der Titel eures Posts ist das erste, was potenzielle Helfer sehen – ist er nicht interessant genug, lesen sie auch nicht weiter. Es hilft, sich vorzustellen, dass ihr mit einem Kollegen sprecht, der eigentlich gerade auf dem Sprung ist. Ihr wollt das Problem kurz und prägnant in einer Zeile beschreiben. Verwendete API und natürlich die Fehlermeldung solltet ihr kurz aufführen, damit sich andere Nutzer einen Überblick über euer Problem verschaffen können. Wenn ihr Probleme habt, einen guten Titel für eure Fragestellung zu formulieren – schreibt ihn am Ende. Oft hilft es, das Problem erst einmal darzustellen, um sich darüber klar zu werden, wie sich eure Frage für den Titel zusammenfassen ließe.
- Schlecht: [php] session doubt
- Besser: How can I redirect users to different pages based on session data in PHP?
- Schlecht: JavaScript variable problem
- Besser: Why can I change the value of a constant in javascript?
Die Beschreibung des Problems
Das Textfeld ist dafür da, euer Problem ausführlicher zu beschreiben – nicht dafür, einfach den Code zu posten und das Ganze so stehen zu lassen. Auch wenn ihr in der Überschrift zusammengefasst habt, worum es geht – das reicht nicht. Im ersten Absatz solltet ihr eine ausführlichere Beschreibung schreiben – das ist nämlich der Teil, den Leute in den Suchergebnissen angezeigt bekommen. Je prägnanter und zielgerichteter, desto eher wird euer Post am Ende geklickt. Außerdem solltet ihr beschreiben, wie ihr auf das Problem gestoßen seid. Dazu gehört auch die Information, welche Zielsetzung der fehlerhafte Code verfolgt. Welche Hindernisse euch davon abhalten, es zu lösen und was ihr schon alles ausprobiert habt, ebenso Verweise zu ähnlichen Fragestellungen, deren Lösungsvorschläge ihr ausprobiert habt. Auch hier: Bringt eure Frage so prägnant und verständlich auf den Punkt wie möglich. Es gibt eine Menge Leute, die gewillt sind, euch zu helfen. Einen unverständlichen Text, aus dem nicht genau hervorgeht, was ihr eigentlich wissen wollt, will aber keiner lesen.
Der Code
Den betreffenden Code solltet ihr auf jeden Fall in eure Fragestellung mit aufnehmen. Unter der Beschreibung des Problems ist der geeignete Ort dafür. Auch hier gilt: so viel wie nötig, so wenig wie möglich. Niemand wird die Geduld haben, sich durch den gesamten Code eurer Anwendung zu hangeln, um herauszufinden, um welchen Teil es überhaupt geht. Postet ausreichend viel Code, damit andere euer Problem reproduzieren können. Verzichtet dabei aber auf alles Unnötige. Einen ausführlichen Guide, wie ihr dabei am Besten vorgeht, findet ihr auf Stack Overflow selbst.
Wenn ihr Code auf einer externen Seite veröffentlicht, solltet ihr nach Möglichkeit trotzdem nicht darauf verzichten, ihn auch in der Fragestellung selbst zu veröffentlichen. Ihr wollt es anderen Nutzern so einfach wie möglich machen, euch zu helfen. Und: Verzichtet auf Screenshots von Code, Fehlermeldungen oder Datensätzen. Besser: Kopiert oder tippt den betreffenden Text in die Fragestellung. Bilder solltet ihr ausschließlich für Grafiken und Dinge, die sich nicht adäquat mithilfe von Text beschreiben lassen, verwenden.
Tags
Auf Stack Overflow könnt eure Frage mit dazu passenden Tags versehen. Das können Tags für verwendete Programmiersprachen, Frameworks, API und Libraries sein. Das System in Stack Overflow verfügt über eine Auto-Suggest-Funktion. Beim Vertaggen eurer Fragestellung solltet ihr sichergehen, dass die Tags auch dafür relevant sind. Eine genauere Anleitung dazu gibt es auf Stack Overflow.
Mehr Kontext
Auch wenn Tags ein wichtiges Mittel sind, um eure Frage in den richtigen Kontext zu rücken – manchmal reichen sie nicht aus. Nach Ermessen solltet ihr weitere Informationen im Body eurer Fragestellung aufführen. Etwa, mit welcher Version der verwendeten Programmiersprache, Library oder Plattform ihr arbeitet. Eventuell sind auch das Betriebssystem, auf dem ihr arbeitet, euer Code-Editor oder der Webserver, mit dem ihr euch verbindet, relevant. Auf jeden Fall erwähnen solltet ihr Beschränkungen, denen ihr – aus welchen Gründen auch immer – unterliegt. Wenn diese Einschränkungen eher ungewöhnlicher Natur sind, lohnt es sich oft, eine kurze Begründung zu schreiben. Damit nehmt ihr zum einen weitere Fragen dazu vorweg, zum anderen liefert das Hinweise darauf, welche anderen Lösungen möglicherweise ebenfalls nicht funktionieren.
Done?!
Wenn das alles erledigt ist, könnt ihr eure Frage veröffentlichen – fast. Überprüft sie noch einmal genau. Versucht, sie mit den Augen eines Dritten zu lesen. Ergibt die Fragestellung Sinn? Geht daraus hervor, was das Problem ist? Sind alle relevanten Informationen, Ressourcen und Codebits darin aufgelistet und verfügbar? Versucht, das Problem anhand eurer Fragestellung zu reproduzieren. Wenn das alles geklappt habt, könnt ihr den Post veröffentlichen.
Nachdem ihr eure Frage veröffentlicht habt, könnt ihr zunächst nur warten, bis jemand antwortet. Wenn das nicht passiert, solltet ihr die Frage erneut überprüfen. Eventuell fehlen zum Verständnis nötige Details. Wenn dann jemand eine Antwort postet: Probiert den Vorschlag aus. Wichtig: Gebt Feedback. Hat der Vorschlag euer Problem gelöst? Wenn nicht, beschreibt – in Kürze und soweit möglich – warum nicht.
Wem das jetzt alles zu viel Aufwand ist – vielleicht kommt ihr tatsächlich schneller ans Ziel, wenn ihr euch noch einmal gründlich ans Debuggen macht.
Zum Weiterlesen:
- Dieses Spiel schickt euch über die Kommandozeile auf Verbrecherjagd
- Web-Development jetzt und später: 3 1/2 Vorhersagen, die du lesen solltest
- So schreibt ihr richtig gute Git-Commit-Messages
Was würden wir nur ohne Stack Overflow tun Hahaha