Zum Inhalt springen

Mort, Elvis, Einstein

aus Wikipedia, der freien Enzyklopädie

Das „Mort, Elvis, Einstein“-Paradigma ist eine Erfindung von Microsoft. Es wurde geschaffen, um Software-Entwicklungswerkzeuge, insbesondere das Visual Studio entsprechend den angenommenen Anforderungen aus der Softwarebranche zu designen. Sie basiert auf der Idee der Personas. Das Konzept geht dabei von der Idee aus, dass viele Softwareentwickler wenig, einige einiges und nur sehr wenige sehr viel von den bereitgestellten Möglichkeiten einer IDE nutzen, woraus folgt, dass – vor allem im marktwirtschaftlichen Sinn – Mort die wichtigste Zielgruppe darstellt.

Die folgenden Darstellungen der drei Personas sind stereotyp.

Mort

Mort ist ein opportunistischer Programmierer, der eine gegebene Aufgabe schnell und mit geringem Aufwand erledigen will, ohne sich zu sehr mit technischen Details der Entwicklungswerkzeuge und Programmierschnittstellen befassen zu müssen. Er lernt neue Technologien erst dann, wenn er sie benötigt.

Elvis

Elvis ist ein pragmatischer Programmierer. Er hat fundierte Programmierkenntnisse und erstellt langlebige Lösungen für gegebene Probleme. Neue Technologien erlernt er während der Benutzung (Learning by doing). Er bevorzugt komplexe Entwicklungswerkzeuge, die viele Hilfsfunktionen bieten und die er nach seinen Wünschen anpassen kann.

Einstein

Einstein ist ein „paranoider“ Programmierer mit sehr guten Programmierkenntnissen, der bestrebt ist, zu jedem Problem die optimale Lösung zu erstellen. Bevor er mit dem Programmieren beginnt, liest er technische Dokumentationen und Handbücher. Er interessiert sich für die internen Details der Entwicklungswerkzeuge und Programmierschnittstellen und ist diesen manchmal auch skeptisch gegenüber, was ihn dazu verleiten kann, die bereits bestehende, ihm aber nicht genügende Lösung neu zu entwickeln.

Hintergründe

Jeff Atwood, Uncle Bob (aka. Robert C. Martin) und andere griffen die Metapher auf, womit sie unabsichtlich die Gemeinde der Softwareentwickler in Kategorien spalteten, meist in die, die Programmieren als Broterwerb ansehen, und in die, die dasselbe Metier als heiligen Gral betrachten. Zahlreiche Flamewars waren die Folge, obgleich die initialen Autoren sich häufig bemühten, das Streitpotenzial zu dämpfen.

Weblinks und Quellen

  • Krzysztof Cwalina: <templatestyles src="Webarchiv/styles.css" />{{#if:20160304202544
      | {{#ifeq: 20160304202544 | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|20160304202544}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|20160304202544}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|}}
    | {{#switch: {{#invoke:Str|len|}}
       | 16= {{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub||1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|}} {{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Designing .NET Class Libraries | {{#invoke:WLink|getEscapedTitle|Designing .NET Class Libraries}} | {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:20160304202544|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc}}
    || {{#if:  || }}
  }}{{#if: Designing .NET Class Libraries
    | {{#if: {{#invoke:WLink|isBracketedLink|Designing .NET Class Libraries}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://download.microsoft.com/download/f/7/7/f77b1469-186f-4ee4-8f3b-6aa00af2b52e/DesigningProgressiveAPIs_Transcription.doc }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }} (2004)