Es ist eine Sache zu sagen, dass agile Methoden in Umgebungen gut sind, in denen die Anforderungen schlecht verstanden werden, oder dass es sich um eine bedeutende Neuheit handelt. Aber sollte es angewendet werden, wenn völlige Innovation erforderlich ist? Wenn ja, wie?
Wenn das, worüber Sie nachdenken, in der Branche unbekannt ist oder gar für unmöglich gehalten wird, ist es möglicherweise schwierig, sich die User Storys und die damit verbundenen Aufgaben vorzustellen. Wäre es beispielsweise für Albert Einstein (oder einen hypothetischen Arbeitgeber, dem er berichtet) von Vorteil gewesen, die allgemeine Relativitätstheorie in Epen, Sprints und Aufgaben aufzuteilen? Wenn die Antwort "Ja" lautet, welche besonderen Vorkehrungen hätten getroffen werden müssen, damit ein agiler Ansatz mit Einsteins Weg zu revolutionären Einsichten am besten funktioniert?
Stellen Sie sich als Beispiel für eine bestimmte Software vor, dass das Jahr 2008 ist und Sie WCF verwenden möchten, um COMET- oder " Long-Polling " -Funktionen bereitzustellen . Alle Ihre Recherchen zu "Vorarbeiten" bringen nichts zum Vorschein, und Sie lesen sogar einen MSDN-Blogger, der sagt, dass dies nicht möglich ist.
Welche Anpassungen oder "Aromen" könnten in die User Stories und Aufgaben eingebracht werden, um dem Erfindungsreichtum (oder der Kühnheit?) Dieses Endeavers Rechnung zu tragen? Oder wäre es in der Tat besser, zu dem Schluss zu kommen, dass die Bemühungen (2008) so innovativ sind, dass sie am besten als ungerichtete Denkübung verbleiben?
Der Innovator, der unter zweiwöchigen Sprints operiert, möchte sicherlich nicht jedes Mal abgeschossen werden, wenn er eine Sackgasse verlässt und an einer neu entdeckten Aufgabe arbeitet, die bei der Definition des Sprints nicht in Betracht gezogen wurde. Ebenso sollte der Innovator nicht vom Management abgeschossen werden, wenn der Sprint endet und kein Arbeitscode oder Arbeitsansätze geliefert werden. Es muss eine Möglichkeit geben, den Aufwand auch unter diesen Umständen als "Erfolg" zu bezeichnen. In vielleicht einem oder drei weiteren Sprints dieser Art von "Sackgasse" könnte der Innovator endlich auf etwas stoßen, das funktioniert.
Woher weiß das agile Management, dass jeder Sprint trotz der innovativen Rückschläge "in Ordnung" war? Wie wird das so gehandhabt, dass die Burn-Down-Tabelle nicht absurd aussieht?
Antworten:
Die Titelfrage, bei der sich Innovation auf kleinere kreative Fortschritte in einem Team bezieht, das in Agile bereits gute Ergebnisse erzielt.
Die beste Antwort ist in diesem Artikel über "Gold Card Days" zusammengefasst .
Zusammenfassung (umschrieben und mit meinen eigenen Interpretationen, die möglicherweise nicht die Absichten des Autors widerspiegeln) :
Es gibt einige andere Punkte (nicht in diesem Artikel) in Bezug auf das Anwenden von "Goldkarten":
Die wesentliche Frage, bei der sich Innovation auf Forschung bezieht (Monate bis Jahre grausamer Arbeit), die das reale Risiko birgt, keine brauchbare Lösung zu finden.
Diese frühere Frage, welche extremen Programmiertechniken sind für die Verwendung in einer Forschungsumgebung geeignet? deckt einen Großteil des Grundes dieser Frage ab.
(Haftungsausschluss: Ich habe eine der Antworten auf diese Frage geschrieben, aber nicht die ausgewählte.)
Zusammenfassend lässt sich feststellen, dass Software-Forschungsarbeiten schnell durchgeführt werden können. Die Teilnehmer müssen anhand neuer Informationen Prioritäten setzen (indem sie entdeckte / erlernte Ideen aufnehmen und neue synthetisieren). Es gibt den Anschein, "langsam" zu sein, nur weil es "langsam ist, die Früchte des Erfolgs zu zeigen, und nur wenn es erfolgreich war".
Diese Frage zu Project Management Beta - Was sind die Vor- und Nachteile der Einbeziehung eines Projektmanagers in ein Forschungsteam? - deckt auch die gleichen Gründe ab.
Im Geiste ja.
Wie in der Antwort von mouviciel ausgeführt , entspricht der Geist der Softwareforschung dem Geist des Agilen Manifests. Als nächstes werde ich diskutieren, ob Hochrisikoforschung als Organisations- oder Managementmethode in Agile integriert werden kann ("Agile in der Praxis").
In der Praxis müssen Sie einige Fragen beantworten.
Diese Liste ist nicht vollständig ...
Wir müssen ein wenig zurückverfolgen, wie Agile Methodology zustande kommt.
Die agile Methodik wird normalerweise angewendet, wenn ein Sponsor des Projekts anwesend ist. Darüber hinaus ist die Bereitschaft des Sponsors, das Projekt zu finanzieren, begrenzt. Es wird erwartet, dass nach einer gewissen Zeit der Finanzierung des Projekts regelmäßig Software in brauchbarer (möglicherweise versandfähiger) Qualität geliefert wird.
Die Art der Forschungsarbeit in dieser Frage bezieht sich auf "möglicherweise nicht lösbare Bestrebungen". Mit anderen Worten, diese Art von Arbeit birgt die Gefahr, dass sie trotz aller Absichten und aller Sorgfalt der beteiligten Personen letztendlich scheitert.
Dies ist keine Checkliste im ScrumButt-Stil.
Dies ist eher eine Preflight-Checkliste, die vorhersagt, ob man besser dran ist als "Que Sera, Sera"
1. Transparenz von vorn. Wird dem Sponsor des Projekts die Wahrheit über die Risikobereitschaft des Projekts gesagt?
2. Bereitschaft des Sponsors. Ist sich der Sponsor des Risikos bewusst und bereit, die Finanzierung fortzusetzen?
Der Sponsor muss eine höhere Risikoakzeptanz aufweisen als die typischen Geschäftsprojekte oder die typischen Software / IT / Agile-Projekte. Nicht jeder Sponsor erfüllt diese Kriterien. Wenn es nicht passt, wäre es für einen Fachmann gut, sich vom Projekt zurückzuziehen.
3. Transparenz im gesamten Projekt. Wird der Sponsor regelmäßig über den tatsächlichen Stand des Projekts informiert?
Dies verhindert Versuche, Rückschläge oder drohende Fehler im Projekt zu verbergen, indem die Zeitspanne zwischen Statusaktualisierungen missbraucht wird.
4. Aktive Teilnahme des Sponsors. Ist der Sponsor daran interessiert, die winzigen Details, die Höhen und Tiefen, die Versprechen und die Grenzen jedes Versuchs zu kennen?
Das Problem bei der Software-Forschung ist, dass es viele falsche Hinweise geben kann - sowohl falsche Positive (davon auszugehen, dass ein Ansatz funktionieren würde, aber er nicht erfolgreich war) als auch falsche Negative (Behauptung, dass etwas nicht möglich ist, nur um von jemand anderem widerlegt zu werden) .
Dank agiler Projekte kann das Team (einschließlich der Sponsoren und Stakeholder) kalkulierte Risiken eingehen. "Berechnet" bedeutet, dass die Risikoträger umfassend informiert sind. Wenn der Sponsor nicht bereit ist, die genauen Details des Projekts zu erfahren, hat der Sponsor keine vollständigen Informationen, um das Risiko selbst zu berechnen (beurteilen).
Selbst wenn ein Sponsor bereit ist, das finanzielle Risiko einzugehen, wenn er nicht bereit ist, sich auch an den Entscheidungsrisiken zu beteiligen (und Konsequenzen für seine eigenen Entscheidungen akzeptiert), ist der Sponsor auch nicht für solche Forschungsprojekte mit hohem Risiko geeignet.
5. Kann das Forschungsteam ihre Fortschritte in Form von laufender Software im Gegensatz zu Präsentationsfolien zeigen (demonstrieren)?
Diese Frage eignet sich für Forschungsprojekte, bei denen erwartet wird, dass als Endergebnis Software ausgeführt wird. Präsentationsfolien könnten nützlich sein, um CS-Theorien zu erklären, aber sie könnten auch dazu missbraucht werden, Rückschläge in der Softwareimplementierung (oder das völlige Fehlen von) zu verbergen. Eine Software-Demo soll solche Missbräuche verhindern.
6. Kann das Forschungsteam ein teilweise wertvolles Softwareprodukt liefern, auch wenn der Sponsor beschließt, die Finanzierung jederzeit im Projekt einzustellen?
Diese Frage ist nur von Fall zu Fall relevant. Einige Forschungsprojekte sind inkrementell; Sie können mehrere Meilensteine und Ergebnisse aufweisen. Ein Forschungsteam muss Prioritäten setzen, um "niedrigst hängende Früchte zuerst" oder den "kostengünstigsten Ansatz zum Nachweis der Lebensfähigkeit" zu bevorzugen.
Einige Forschungsprojekte sind nicht inkrementell: Sie sollen einen einzigen, sehr spezifischen technologischen Durchbruch erzielen. Es ist ein Hit oder Miss. Für diese Art von Projekten sind die einzigen inkrementellen Ergebnisse die Forschungsarbeit und das Prototyping sowie möglicherweise die wissenschaftlichen Veröffentlichungen. Diese "nicht konsumierbaren" inkrementellen Leistungen sind für einige Arten von Sponsoren dennoch wertvoll - namentlich für Universitäten, Forschungsförderungsagenturen und namhafte Unternehmen, die darauf hoffen, einen akademischen Wohlwollen aufzubauen.
Forschungsprojekte mit solchen Merkmalen könnten jedoch auch den "Cowboy-Codierungs" -Ansatz bevorzugen, wie weiter unten erörtert wird. Diese werden treffend als "Hacks" bezeichnet und kommen in der Wissenschaft vor.
Aufgrund des zeitlichen Umfangs der meisten akademischen Forschungen ist die Forschungsförderung im akademischen Stil in der Regel mit einer Verpflichtung von einem oder mehreren Jahren verbunden. Medizinische Forschungsgelder (akademische und kommerzielle) können für noch längere Zeiträume gebunden werden. Auf der anderen Seite kann die kommerziell finanzierte Forschung ohne Vorankündigung eingestellt werden oder ihre Ressourcen (Arbeitskräfte) können vollständig anderen Projekten zugewiesen werden.
7. Wie misst das Forschungsteam auf der Skala von Silo gegenüber funktionsübergreifend?
Einige Arten von Forschungsteams sind hochsiliert. Oft geschieht dies in "multidisziplinären" Projekten - genau ein Mitglied aus jeder Disziplin ist beteiligt. Infolgedessen kann kein Mitglied die Aufgabe eines anderen Mitglieds übernehmen, auch nicht sehr kleine, da sich deren Kenntnisse und Fähigkeiten nicht überschneiden. Die Schwierigkeit würde sich auch auf Kommunikationen und Aufgabendefinitionen erstrecken.
Extrem alberne Teams werden immer noch von einigen Scrum-Ritualen wie einem täglichen Stand-up-Meeting profitieren, aber abgesehen von dem "Ritual" findet möglicherweise nicht viel Interaktion statt. Es würde einen äußerst sozialisierenden, agilen Trainer erfordern, um das Team zum Reden zu bringen und Vertrauen aufzubauen.
8. Wenn ein agiler Coach anwesend ist, schreibt der Coach kurze Iterationszyklen, Zeitboxen und Zeitschätzungen vor?
Jede dieser agilen Praktiken bereitet bestimmten Arten von Forschungsprojekten Schwierigkeiten. Dennoch wurde berichtet, dass einige fachkundige Forschungsgruppen diese Praktiken in der fortgeschrittenen Forschung anwenden konnten . Da es in diesen Expertenteams keine Details darüber gibt, wie agiles Coaching abläuft, können wir möglicherweise nicht wissen, wie jede dieser Schwierigkeiten überwunden werden könnte.
9. Stimmt das Forschungsteam einstimmig dafür, den Solo-Entwicklungsstil gegenüber anderen Methoden zu übernehmen?
Bearbeitet: In einer früheren Version wird der Ausdruck "Cowboy-Codierung" verwendet, der auf den Mangel an Professionalität hinweist. Es gibt jedoch einen Unterschied zwischen der Solo-Entwicklung und der Cowboy-Codierung, und die Umstände in diesem Checklistenelement können die Solo-Entwicklung zu einer legitimen Wahl machen.
Diese Frage zeigt, dass es Programmierer gibt, die es vorziehen, einen großen Teil der Entwicklung zu besitzen. Wenn sich das Forschungsteam hauptsächlich aus Programmierern dieser Art zusammensetzt, da die Fähigkeiten der Teammitglieder unersetzbar sind (in Bezug auf den vorherigen Skill-Silo-Punkt), müssen die Teammitglieder möglicherweise im Gegenzug das erhalten, was sie wünschen für ihre Fähigkeiten und Arbeit.
Der Hauptunterschied zwischen Solo-Entwicklung und Cowboy-Codierung besteht darin, dass in der Solo-Entwicklung die in Joel-Test: 12 Schritte zum besseren Code aufgeführten Vorgehensweisen angewendet werden können , z. B. die Verwendung der Versionskontrolle, die Build-Automatisierung und das Beheben von Fehlern, bevor neue Funktionen hinzugefügt werden .
Einige Umstände begünstigen jedes Mitglied, das eine Solo-Entwicklung durchführt, während andere die Cowboy-Codierung begünstigen.
Cowboy-Codierung wird bevorzugt, wenn das Endziel darin besteht, "einen Punkt zu machen", indem gezeigt wird, dass etwas technisch möglich ist. Abgesehen von einer guten Präsentation auf der nächsten DEF CON ® gibt es keine Anforderungen an Lieferung und Qualität .
Letzte Frage. Wenn die Umstände es einem agilen Team nicht erlauben, bahnbrechende Forschungsarbeiten durchzuführen, wie setzen sie dann innovative Technologien ein?
Wie gewohnt. Lassen Sie andere Unternehmen (oder Akademiker, Einzelpersonen oder Hackerteams , Startups usw.) zuerst das schwierige Problem angehen und dann die Technologie von ihnen kaufen / lizenzieren. Die Softwareindustrie arbeitet seit vielen Jahrzehnten nach diesen Grundsätzen.
Der Schwerpunkt auf der Darstellung von Prototypen, die in der agilen Methodik frühzeitig funktionieren, zwingt ein Team dazu, zuerst nach vorhandenen Lösungen zu suchen.
quelle
Zurück zum Agile Manifest :
Nichts in diesen Werten verbietet Innovation. Tatsächlich hat Innovation bei Agile ein besseres Nest als bei Waterfall.
Trotzdem kann es vorkommen, dass gewöhnliche Implementierungen von Agile einem Softwareprojekt einige Einschränkungen auferlegen, die die Innovation einschränken, z. B. Termine (der Zeitrahmen eines Sprints ist ein Termin) oder Kosten. Dies ist jedoch kein Problem bei Agile, sondern bei aktuellen Arbeitsorganisationen.
quelle
Ich glaube nicht. Bei Agile geht es darum, Schokoladenelefanten zu essen - eine große Aufgabe zu übernehmen und sie in handliche Stücke zu zerlegen, die nicht nur geliefert werden können, sondern regelmäßig geliefert werden.
Forschungsprojekte passen nicht dazu - es sei denn, Ihr Projekt lässt sich in kleine Teile aufteilen, die alle vierzehn Tage (oder länger) demonstriert werden können. Nirgendwo sagt Agile, dass 2 Wochen die Zeit sind, die Ihr Sprint in Anspruch nehmen muss, das beste agile Projekt, das ich je hatte gearbeitet hatte 6 Wochen Sprints)
Ich würde es aber nicht versuchen. Ich würde die agilen Werkzeuge nehmen, von denen Sie glauben, dass sie für Sie funktionieren, und diejenigen ignorieren, die dies nicht tun. Zu viele Leute denken, Agile bedeutet "Sie müssen alles tun, was das Scrum-Tutorial vorschreibt, und es ist keine Diskretion erlaubt". Dieser Ansatz ist sehr unagil.
quelle