Wie man Innovation in einer agilen Methodik zulässt [geschlossen]

21

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?

Brent Arias
quelle
8
@Liath: Innovation muss oft die Zeit haben, Ideen auszuprobieren, ohne alle zwei Wochen, dh am Ende des Sprints, etwas zeigen zu müssen. Kurzfristiges Feedback konzentriert sich oft auf "etwas zeigen, egal was" (da es immer möglich ist, es in einem zukünftigen Sprint zu korrigieren, wenn der Kunde nicht zufrieden ist), anstatt "zu versuchen, es so zu machen, wie Sie es glauben Sollte es tun". "Sie zeigen es, wenn es fertig ist" anstatt "Sie machen es fertig, wenn Sie es zeigen müssen."
Giorgio
4
Ich denke, aus dieser Frage lässt sich die Frage ableiten: "Hat Time-Boxing seinen Wert in der Softwareforschung oder in hochinnovativen Projekten?", Und auch: "Gibt es innovative Projekte mit hohem Risiko, die nicht von der Zeit profitieren?" -Boxen"? (Ich habe dies aus einer Ad-hoc-Google-Suche gelesen : agile.conscires.com/2010/03/30/agile-for-research-projects )
rwong
1
Dieser Link , der Xavier Amatriain zugeschrieben wird, bietet anscheinend auch ein vollständiges Paket ("Verfahren") für die Anwendung der agilen Methodik in Forschungsprojekten. Es unterscheidet sich von Scrum, wie wir es kennen, aber es geht sehr weit, wenn es darum geht, agile Werte und Praktiken zu berücksichtigen.
rwong
2
Innovation in der Softwareentwicklung ist unabhängig von der Methodik nicht einfach, da die Leute (mit gutem Grund, nehme ich an) lernen, sich an die Dinge zu halten, über die sich die meisten Leute einig sind. Ich denke, das liegt daran, dass Softwareentwicklung im Vergleich zu anderen technischen Disziplinen, in denen Ideen nach ihren Vorzügen und nicht nach ihrem Konformismus beurteilt werden, nicht sehr wissenschaftlich ist.
Mike Dunlavey

Antworten:

8

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) :

  • Entwickler können interessante (intellektuell anregende) Streckenziele identifizieren, die arbeitsbezogen sind und an denen sie gerne arbeiten würden.
  • Diese Streckenziele werden, nachdem sie vom Team (einschließlich des Produktbesitzers) genehmigt wurden, zu "goldenen Karten".
  • Das Team wird ermutigt, sich einen Tag Zeit zu nehmen, um an diesen "Goldkarten" zu arbeiten.
    • Normalerweise geschieht dies freitags und wird so zum "Gold Card Day".
  • In Bezug auf Scrum werden Gold Cards genau wie alle anderen Backlog-Elemente geplant und nachverfolgt. Das Team muss seine Ergebnisse vorführen.

Es gibt einige andere Punkte (nicht in diesem Artikel) in Bezug auf das Anwenden von "Goldkarten":

  • Lassen Sie sich nicht von einem einzelnen Teammitglied den ganzen Spaß nehmen. Jedes Teammitglied sollte dazu ermutigt werden, sich ab und zu einen "Gold Card Day" zu gönnen.
  • Versuchen Sie auf die gleiche Weise, eine "goldene Karte" als Teamleistung (im Gegensatz zu einer Einzelaufgabe) einzusetzen und diese Aufgabe als einen Moment der Geselligkeit (Teambildung) zu nutzen.

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.

rwong
quelle
6

Zurück zum Agile Manifest :

  1. Individuen und Interaktionen über Prozesse und Werkzeuge
  2. Arbeitssoftware über umfangreiche Dokumentation
  3. Zusammenarbeit der Kunden bei Vertragsverhandlungen
  4. Reagieren, um nach einem Plan umzuschalten

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.

mouviciel
quelle
3
+ Ich denke, du hast es verstanden. Ich denke, das Problem sind Bücher, die den Leuten erklären, wie man es macht. (Ich habe festgestellt, dass es sehr schwer ist, zu schreiben, ohne sich etwas auszudenken.) Unser Team folgt "Agile" und das bedeutet endlose Besprechungen. Ein Mitglied sagte einfach: "Zähl mich raus. Es ist nur die neueste Modeerscheinung. Wenn du mich nicht brauchst, ist das in Ordnung."
Mike Dunlavey
@MikeDunlavey - Ich mag es, wie Sie: Unser Team folgt "Agile" schwingt mit: Reagieren auf Umstellung nach einem Plan .
mouviciel
1
@mouviciel: Ich stimme Ihrer Antwort zu, aber dann verstehe ich nicht, was wirklich neu an den agilen Werten ist: Ich habe in all meinen Projekten die Punkte 1, 2, 4 verfolgt, lange bevor ich überhaupt das Wort agil gehört hatte, und die meisten von den Leuten, mit denen ich zusammengearbeitet habe, haben wir dasselbe gemacht. Wir nannten es gesunden Menschenverstand. Ist der Begriff "agil" also nur ein neues Wort für "Sei kein Sklave deines Prozesses und benutze den gesunden Menschenverstand"? Auf der anderen Seite ist der einzige wirkliche Unterschied, den Agile zu meiner Arbeit gebracht hat, mehr Meetings und mehr Regeln, die befolgt werden müssen.
Giorgio
@ Giorgio - Ja, so sehe ich das. Die besten Wasserfallprojekte, an denen ich gearbeitet habe, waren, als der Teamleiter den gesunden Menschenverstand unter den Entwicklern bevorzugte und dem Kunden eine hübsche "V-model / ISO9001 / Huge Documentation" -Geschichte erzählte. Was an den Agile-Werten neu ist, sind die Referenzen der Autoren des Manifests.
Mouviciel
Agile war ursprünglich ein Manifest zur Softwareentwicklung. Es wurde angebaut (oder mutiert), um eine Vielzahl von Geschäftsbereichen anzusprechen. Meetings sind eine Form der persönlichen Kommunikation, auch wenn sie aufgrund von Politik und persönlichem Stil weniger effektiv gewesen wären als die persönliche Kommunikation.
rwong
6

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.

gbjbaanb
quelle
1
Das Aufteilen großer Aufgaben in kleine Teile ist keine agile Sache. Es wurde seit den Anfängen des Ingenieurwesens im alten Mesopotamien und in Ägypten verwendet und ist in Wasserfallprojekten weit verbreitet. Wenn es in agilen Projekten verwendet wird, liegt es nicht an seiner agilen Natur, sondern an einer Denkweise, die aus Jahrhunderten erfolgreicher Erfolge hervorgegangen ist.
mouviciel
@mouviciel: Richtig, aber agil zwingt Sie dazu, Probleme in Stücke zu zerlegen, die in einen einzelnen Sprint passen müssen. Wenn dies nicht der Fall ist (wie es in Forschungsprojekten häufig der Fall ist), sind Sie geschraubt ... es sei denn, Sie machen Ihre Sprints viel länger. Wenn Sie an einem komplexen Forschungsproblem arbeiten, können Sie nicht vorhersagen, wie lange es dauern wird, es in ausreichend kleine Teile zu zerlegen: Wenn Sie die kleinen Teile haben, haben Sie das Problem im Grunde genommen bereits gelöst.
Giorgio
@rwong: Gibt es andere agile Prozesse als Scrum, die möglichst frühes Feedback und kurze Entwicklungszyklen erfordern?
Giorgio
4
"Zu viele Leute denken, dass Agile bedeutet, dass Sie alles tun müssen, was das Scrum-Tutorial vorschreibt, und dass keine Diskretion erlaubt ist. Dieser Ansatz ist sehr unagil." Wasserfall: Wir nahmen die Teile, die wir brauchten und passten sie an unsere Bedürfnisse an. Dann kam das Agile Coaching und wir mussten nach dem Buch arbeiten: Wir haben den größten Teil unserer Beweglichkeit verloren. ;-)
Giorgio
Lassen Sie uns diese Diskussion im Chat fortsetzen .
rwong