|
Transkript
|
| Hallo, ich bin Aurora Tiffany-Davis, Softwareentwicklerin auf der |
| Das JMP Live-Team und ich möchten heute mit Ihnen über |
| wie wir im JMP Live-Team Software entwickeln. |
| Zunächst möchte ich Sie bitten, sich vorzustellen, wie Software-Entwicklung aussieht |
| wie Sie. Wenn Sie selbst kein Entwickler sind und die |
| Das Bild, das Sie im Kopf haben, ist wahrscheinlich durch das Fernsehen gefärbt und |
| Filme, die Sie gesehen haben. |
| Sie stellen sich vielleicht ein exzentrisches Genie vor, das allein arbeitet, |
| und der Prozess der Softwareentwicklung ist sehr einfach. Sie |
| denken Sie wirklich intensiv über ein Problem nach. Sie schreiben Code |
| und dann stellen sie sicher, dass es funktioniert. Und das tut es wahrscheinlich, |
| denn schließlich sind sie ein |
| Genie. Wenn wir alle Genies wären, wie Hollywood behauptet, |
| Dieser Prozess könnte für uns funktionieren, aber eigentlich sind wir nur Menschen, |
| und deshalb brauchen wir etwas mehr als |
| das. Erstens arbeiten wir nicht allein. Wir arbeiten sehr |
| zusammenarbeiten und wir haben einen Prozess, der uns hilft, |
| qualitativ hochwertige Software zu produzieren. Ich möchte hier darauf hinweisen, dass es keine |
| ein richtiger Prozess für die Entwicklung von Software. Ihre |
| Der Prozess wird sich von Unternehmen zu Unternehmen unterscheiden und oft sogar |
| innerhalb von Unternehmen. Aber heute werde ich Sie durch |
| was ich tun würde, wenn ich eine neue Funktion entwickeln würde in |
| Verwenden Sie JMP Live, um Videos von Ihrem PC herunterzuladen. |
| Bevor ich mich überhaupt hinsetze, um Code zu schreiben, muss ich |
| es muss einen tatsächlichen Bedarf dafür geben. Es muss eine echte Person geben, |
| hat jemand in JMP Live etwas gefunden, das |
| funktioniert nicht ganz so, wie sie es sich vorstellen, nämlich |
| eine nette Art zu sagen, dass sie einen Fehler gefunden haben oder sie haben eine |
| Anfrage für eine neue Funktion. Wir verfolgen diese Probleme in einem |
| internes System, und so würde ich als erstes gehen zu |
| dieses System und finden Sie ein Problem mit hoher Priorität, das ein guter |
| Match für meine Fähigkeiten, und fange an, darüber nachzudenken, und beginne |
| darüber zu reden. Als nächstes würde ich versuchen zu verstehen |
| den Bedarf, indem man mit den Leuten spricht. Welche Arten von Benutzern werden |
| brauchen Sie diese Funktion? Wie sind sie |
| werde ich es benutzen? Dann würde ich JMP Live auf meinem eigenen Rechner ausführen, |
| und beginnen Sie zu prüfen, wo die neue Funktion passen könnte |
| in JMP Live, da es bereits |
| existiert heute. Dann würde ich den Code aufrufen und anfangen zu denken |
| darüber, wie der neue Code in unsere Codebasis passt. |
| Sobald ich denke, dass ich den Bedarf gut verstanden habe, |
| würde ich mit dem Entwurf fortfahren. Und auch hier wieder mein erster |
| Der nächste Schritt ist, mit den Leuten zu sprechen. Ich werde mit dem Benutzer sprechen |
| erfahrenen Experten bei JMP und ich werde mit meinem |
| Kollegen und fragen Sie: „Haben Sie an einer ähnlichen Funktion gearbeitet wie |
| das schon einmal? Haben Sie schon einmal an diesem Teil des Codes gearbeitet?" |
| Dann fange ich an, das Design auszuarbeiten. Vielleicht schreibe ich Artikel |
| und zeichne Diagramme und teile diese mit anderen, damit ich |
| Stellen Sie sicher, dass die anderen Mitglieder des Teams im Allgemeinen |
| zufrieden mit der Richtung |
| Ich ziehe ein. Jetzt werde ich mich hinsetzen und anfangen, ein paar |
| Code. Und dafür verwende ich die integrierte Entwicklung |
| Umgebung, ein Programm mit vielen |
| Funktionen, die uns helfen sollen, unsere Arbeit besser zu machen. |
| Nachdem ich nun etwas Code geschrieben habe, besteht mein erster Schritt darin, die |
| Probleme, die ich gerade geschaffen habe. Ich bin nur ein Mensch, also die Chancen |
| dass ich beim ersten Versuch 100 % fehlerfreien Code geschrieben habe, sind ziemlich gering. |
| Mein erster Schritt wird sein, |
| Verwenden Sie eine statische Analyse. Die statische Analyse führt den Code nicht aus, |
| es sieht aus, als wäre es auf einem Stück Papier niedergeschrieben |
| Papier. Eine Analogie könnte die Rechtschreibprüfung in Microsoft Word sein. Rechtschreibprüfung |
| kann mir nicht sagen, ob ich ein überzeugendes |
| Roman, aber es kann mir sagen, ob ich irgendwo ein Komma übersehen habe. |
| Die statische Analyse erledigt dies für Code. |
| Nachdem ich diese offensichtlichen Probleme gefunden und behoben habe, |
| Der nächste Schritt wird sein, nach weniger offensichtlichen Problemen zu suchen, |
| und dafür verwende ich eine automatisierte Testsuite. Wir haben |
| eine breite Palette von Tests für unseren Code geschrieben. Automatisiert |
| Tests führen den Code aus, oder vielmehr führt er eine Teilmenge des |
| Code, der eine bestimmte Eingabe bereitgestellt hat und eine bestimmte Ausgabe erwartet. |
| Es ist eine wirklich wertvolle Übung, sich hinzusetzen und diese |
| Tests, denn manchmal, wenn ich mich hinsetze, um einen neuen Test zu schreiben für |
| jedes Feature, es zwingt mich, meine Gedanken wirklich zu klären über |
| wie die Software überhaupt funktionieren soll. |
| Es bietet außerdem einen wirklich wichtigen Schutz gegen |
| Kollegen, die diese Funktion in Zukunft versehentlich kaputt machen. |
| Es ist eine großartige Möglichkeit, zu finden |
| Probleme frühzeitig. Sobald ich diese automatisierten |
| Tests, ich werde zu einigen manuellen Tests übergehen. Ich könnte JMP ausführen |
| Live auf meinem lokalen Rechner oder auf einem unserer zahlreichen Server |
| im Büro herumstöbern und Sachen ausprobieren und einfach sicherstellen, |
| dass es so funktioniert, wie ich |
| denke, das sollte es. Ich werde vielleicht sogar in die Datenbank schauen, die |
| sitzt hinter JMP Live und verfolgt Aufzeichnungen auf |
| Benutzer, Beiträge, Gruppen, Kommentare und stellen Sie sicher, dass die Datensätze |
| so geschrieben, wie ich es erwarte. |
| Jetzt bin ich vorsichtig optimistisch, dass ich einige gute |
| Code, und ich habe eine nützliche |
| Funktion. Der nächste Schritt ist, meine Kollegen nach ihrer Meinung zu fragen. Ich werde |
| dies einem Peer Review unterziehen. Jetzt in JMP Live setzen wir 100% |
| Der Code, den wir schreiben, wird einer Peer-Review unterzogen. Der Grund dafür ist |
| dass wir es so wertvoll finden. |
| Es kann sein, dass ich etwas übersehen habe, weil ich einfach |
| Scheuklappen über etwas haben. Oder es könnte die |
| Fall, dass jemand anderes in meinem Team einfach Wissen hat, das ich |
| Mangel. Es kommt oft vor, dass der Rezensent in einer Rezension auch |
| bekommt viel Nutzen aus der Übung, denn sie könnten |
| Lernen Sie einige neue Techniken kennen. |
| Jetzt, da das Team ziemlich optimistisch ist, dass wir |
| guten Code, werde ich meinen Code endlich committen oder einchecken in |
| ein Quellcode-Repository. |
| Wir haben ein kontinuierliches Build-System, das darauf achtet, dass wir |
| Code committen, und wenn wir das tun, |
| analysiert es. Es sucht nach wirklich grundlegenden Dingen wie, sind die Dateien |
| richtig benannt und am richtigen Ort? Es wird auch wieder laufen |
| statische Analyse und es wird unser gesamter automatisierter Test erneut ausgeführt |
| Suite. Dies geschieht für den Fall, dass jemand dies vergessen hat |
| früher im Prozess. Oder häufiger könnte es der Fall sein, dass |
| etwas Kleines und Subtiles hat sich geändert, seit dem letzten Mal, als die |
| Es wurde eine automatisierte Testsuite ausgeführt. |
| Es führt also all diese Analysen durch und wenn es durch ist |
| Mit diesem Schritt ist der Code nun auch für Personen außerhalb von |
| das Entwicklungsteam, um eine |
| schau es dir an. Die ersten Leute, die das bemerken, sind die Tester |
| Experten, die wir bei JMP Live und im JMP-Team haben |
| im weiteren Sinne. Das sind Testprofis. Das ist, was sie tun |
| ihre ganze Karriere lang, und sie sind wirklich gut darin. |
| Sie könnten die automatisierte Testsuite erneut ausführen. Sie könnten weitere Tests hinzufügen |
| zu unseren Suiten. Sie könnten JMP Live manuell ausführen und herumstöbern |
| im Allgemeinen. Sie könnten JMP Live lokal ausführen und so tun, als ob |
| Dinge als Benutzer, das wäre absolut verrückt. Was ist die |
| Verrückteste, was der Benutzer tun kann? Und mal sehen, wie die Software |
| reagiert darauf. Sie sind wirklich kreativ mit diesen Test |
| Szenarien. Sie könnten die Software auch auf verschiedenen |
| verschiedene Browser und Betriebssysteme, um sicherzustellen, dass unsere |
| Die Software ist flexibel und robust. |
| Sobald sie diese neue Funktion freigegeben haben, ist es jetzt |
| verfügbar und kann in unserer nächsten Softwareversion abgerufen werden. |
| Lassen Sie mich jetzt herauszoomen und Ihnen den gesamten Vorgang zeigen. |
| Das sind eine Menge Schritte. Machen wir das alles wirklich für alle? |
| unserer Softwareänderungen? Ob Sie es glauben oder nicht, wir tun es. |
| Der Prozess skaliert sehr stark, abhängig von der Komplexität der |
| die Arbeit. Wenn wir einen wirklich einfachen, offensichtlichen Fehler haben, werden wir |
| durch diesen Prozess, aber wir werden es verdammt schnell erledigen. |
| Wenn wir andererseits eine sehr komplexe neue Funktion haben, |
| Wir werden jeden Schritt des Prozesses langsamer machen. |
| Wir nehmen uns Zeit und legen großen Wert darauf, dass |
| wir machen es richtig. |
| Alles, was Zeit kostet, kostet Geld. Warum also ist es so? |
| Ist JMP bereit, dieses Geld in Softwarequalität zu investieren? |
| Ein Grund dafür ist ganz einfach. Wir sind stolz auf unsere Arbeit und wir |
| wollen ein gutes Produkt herstellen. |
| Der nächste Grund ist weniger idealistisch. Wir wissen, dass |
| welche Probleme es auch immer in unserer |
| Wenn wir sie nicht finden, dann werden unsere |
| Kunden werden das tun und das ist nicht gut fürs Geschäft. Also wir |
| würde das gerne minimieren. |
| Jetzt kann kein Prozess liefern |
| absolute Perfektion. Und so laden wir Sie wirklich ein, ein Teil zu bleiben |
| der JMP-Community. Gehen Sie zu community.jump.com und lassen Sie uns |
| wissen, ob es etwas über JMP Live, wenn es nicht funktioniert die |
| wie Sie es sich vorstellen, oder irgendetwas Neues, das Sie gerne hätten |
| in der Zukunft zu sehen. |
| Diese Art von Feedback aus der Praxis ist für uns ungemein wertvoll. |
| wir begrüßen es sehr. |
| Das ist alles, was ich heute für Sie habe, aber ich hoffe wirklich, dass |
| Sie genießen den Rest Ihres Discovery-Erlebnisses. Vielen Dank |
| Du. |