Wie können wir Best Practices für die Softwareentwicklung für Menschen ohne Software-Hintergrund interessanter machen?


8

Wo ich arbeite, gibt es einige erfahrene Softwareentwickler mit einem Software-Hintergrund, aber die Mehrheit der Entwickler sind Physiker oder Chemiker mit exzellenten Domänenkenntnissen, aber begrenzter Erfahrung in der Entwicklung hochwertiger, wartbarer Software. Um dies zu beheben, haben wir begonnen, regelmäßige Gespräche und Workshops durchzuführen.

Welche Themen sollten wir Ihrer Meinung nach diskutieren, um diese Leute effektiver zu machen?

Insbesondere bemühen wir uns, uns für diese Gespräche zu begeistern, da viele Entwickler Software nicht als interessantes Thema betrachten. Wie könnten wir diese für Menschen ohne Software-Hintergrund interessanter machen?

Vielen Dank


Lassen Sie mich das umformulieren - Wie kann ich Lkw-Fahrern sagen, dass sie am F1-Rennen teilnehmen sollen? (Ist es so etwas)
Ayush Goyal

Um unsere Situation besser zu erklären, sind wir alle Teil einer Softwareabteilung in einer großen Organisation. Die Geschichte des Unternehmens ist, dass die Wissenschaft in der Vergangenheit wichtiger war als die Software, weshalb wir viele Softwareentwickler mit einem starken wissenschaftlichen Hintergrund haben. Aber das Unternehmen hat sich geändert, wir sind jetzt ein viel größeres Unternehmen (von ~ 40 Softwareentwicklern auf ~ 250 in 5 Ländern) und die meisten Herausforderungen, die wir haben, sind Software, die nicht auf Wissenschaft basiert.
Andy Lowry

Antworten:


4

Ich denke, es wird schwer, also sei auf einen Kampf vorbereitet - aber nicht unmöglich. Am Ende des Tages wird das Programmieren (insbesondere das Codieren ohne Cowboy-Hack'n'slash) nicht für alle sehr aufregend sein. Dies gilt insbesondere für Menschen, die bereits in einem Bereich arbeiten, der für sich genommen intellektuell herausfordernd und lohnend ist.

Zuallererst machen die Vorträge und Workshops an sich Spaß - kostenloses Essen (stellen Sie sicher, dass es gutes Essen ist!) Und ähnliche Leckereien sind ein guter Anfang. Versuchen Sie auch, ein bisschen Humor zu verbreiten, und halten Sie sie zumindest anfangs ziemlich kurz und so informell wie möglich.

Stellen Sie zweitens sicher, dass die Vorträge und Workshops relevant sind. Versuchen Sie, sie nicht zu abstrakt zu machen (auch wenn die behandelten Konzepte abstrakt sind), und stellen Sie sicher, dass sie ausprobieren können, was behandelt wurde, wenn Sie dies überhaupt können. Überprüfen Sie noch besser, was sie zwischen den Sitzungen getan haben, und geben Sie positives Feedback. Wenn sie nicht relevant sind und nicht das anwenden, was Sie besprochen haben, werden sie (korrekt) als Zeitverschwendung angesehen.

Versuchen Sie abschließend, einige grundlegende Codierungsstandards einzuführen, vorzugsweise solche, die in ihrer derzeitigen Funktionsweise nicht zu aufdringlich sind. Wenn Sie sich in der .net-Welt befinden, ist Resharper zunächst eine gute Wahl, da es vor Dingen wie Namenskonventionen warnt. Sie können dies mit StyleCop (das in Resharper integriert werden kann) weiterführen - stellen Sie jedoch sicher, dass Sie zuerst den Regelsatz anpassen. Wenn Sie nicht in .net sind, werden ähnliche Tools sicher auch anderswo existieren. Es ist nicht viel, aber es ist ein Anfang.

Erwarten Sie keine sofortigen Ergebnisse (außer vielleicht automatisch erzwungenen Codierungsstandards) - ich habe gehört, dass 6, 9 und 12 Monate vergangen sind, um Best Practices einzuführen.

Ich habe es bisher nur durchgeblättert, aber in dem kommenden Buch Driving Technical Change scheint es ein gutes Stück guten, relevanten Ratschlags für Sie zu geben .


Exzellenter Rat, danke. Ich habe gerade die neueste Beta von Driving Technical Change gelesen, die sehr hilfreich war, und ich würde empfehlen, sie zu lesen.
Andy Lowry

5

Wenn diese Chemiker und Physiker nicht in erster Linie professionelle Entwickler sind und dies nicht werden sollen, würde ich vorschlagen, das Problem anders zu denken.

Die "echten" Entwickler sollten einfache Umgebungen bereitstellen, in die sie sich entwickeln können. Sie sollten Mentoring anbieten und eine Peer-Review des Codes mit starken Anreizen durchführen, um den Code so gut zu machen, dass er überhaupt weitergegeben werden kann.

Mit anderen Worten, behandeln Sie sie nicht als gleichberechtigt, sondern geben Sie ihnen alles, was Sie können, um das zu übertreffen, was sie tatsächlich tun, das ist ihre Stärke.


2

Ich arbeite mit sehr intelligenten Netzwerkingenieuren zusammen, die keine Entwickler sind und es nicht wollen. Ich kann das verstehen, weil ich kein Netzwerktechniker sein möchte.

Wir haben festgestellt, dass es gut funktioniert, wenn der Ingenieur und ich Teamprogrammierung durchführen. Wir befinden uns an verschiedenen Standorten, telefonieren also, öffnen normalerweise mit dem screenBefehl eine Bildschirmfreigabesitzung und geben den Code aus.

Wir haben das schon oft gemacht und fanden, dass es wirklich gut funktioniert hat. Ich verstehe, wie sie ihre Sache besser machen, und der Ingenieur lernt, wie wir wartbaren und getesteten Code schreiben.


1

Welche Rolle spielen sie im Unternehmen? Wenn Sie Entwickler brauchen, lassen Sie sie los, wenn sie keine guten Entwickler sind und nicht daran interessiert sind, gute Entwickler zu werden. Wenn sie Physiker und Chemiker sein sollen, können Sie Workshops durchführen, aber erwarten Sie nicht, dass sie ein hohes Interesse haben. Wenn sie beides sein sollen, erhöhen Sie die Erwartungen und stellen Sie sicher, dass Sie sie ausreichend bezahlen, um zu rechtfertigen, dass sie die Rolle eines Softwareentwicklers übernehmen und gleichzeitig komplexe Domänenkenntnisse und -fähigkeiten beibehalten.

Wenn ein Teil der definierten Rolle einer Person nicht darin besteht, Entwickler zu sein, wird sie wahrscheinlich nie so sehr an der Entwicklung hochwertiger Software interessiert sein. Nur weil jemand schnelle Skripte und Hacks erstellt, heißt das nicht unbedingt, dass er wirklich Softwareentwickler werden möchte, sondern nur ein Mittel zum Zweck, wie ein Buchhalter, der komplexe Excel-Formeln herausfindet. Wenn Sie qualitativ hochwertige, wartbare Software benötigen, sollten Softwareentwickler diese erstellen.


1

Zeigen Sie ihnen die Vorteile für sie . Warum sollten sie sich sonst darum kümmern?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.