[JAVA] Ich möchte die Teamentwicklung aus der Ferne durchführen

Einführung

Dieser Artikel ist der erste Tagesartikel von Adventskalender von Valtech Co., Ltd..
Ich bin Ingenieur im 4. Jahr und benutze Java für Unternehmen.

Die Gründe für die Wahl von "Ich möchte die Teamentwicklung aus der Ferne durchführen" als Thema sind folgende. ・ Ich möchte ein Team außerhalb der Arbeit bilden ・ Ich möchte Freunde finden, die an Teamentwicklung interessiert sind

Das Folgende ist diesmal eine Zusammenfassung. ・ [Teamentwicklungsimage und Ergebnisse im Prozess](# Teamentwicklungsimage und Ergebnisse im Prozess) ・ [Tools zur Unterstützung der Teamentwicklung](# Tools zur Unterstützung der Teamentwicklung) ・ [Tool zur Beschleunigung der Teamentwicklung](#Tool zur Beschleunigung der Teamentwicklung)

Was einzelne Teamkollegen bei der Entwicklung eines Teams brauchen

・ Internetumgebung ・ PC (SmartPhone, Tablet nicht verfügbar)

Wenn es dir nichts ausmacht

"Situationen wie diese werden angenommen" "Es gibt so ein Werkzeug" "Ich bin exzellent" Wenn Sie Fragen haben, folgen Sie bitte oder kommentieren Sie! Dieser Artikel wird nach dem Adventskalender gepflegt.

Über die Teamentwicklung

Susume

Lassen Sie uns zunächst die Vorteile der Teamentwicklung von zu Hause aus auflisten.

Vorteile Bemerkungen
Ideen von 10 Personen und 10 Farben Neue Ideen
Durchführung gegenseitiger Überprüfungen Erfahrung der Prüfer
Weitergabe von Know-how Aufnahme von anderem Wissen als der Person

Über Einschränkungen

Einschränkungen Bemerkungen
Unterschiede in den Maschinenspezifikationen Tools werden möglicherweise aufgrund von Unterschieden im Betriebssystem unterstützt oder nicht
Zeitsicherungsprobleme Es gibt keine Garantie dafür, dass jeder an Wochentagen Zeit hat
Umgang mit kostenpflichtigen Werkzeugen Die meisten kostenlosen Werkzeuge können ersetzt werden

Einschränkungen empfehle ich

  1. Stellen Sie sicher, dass Sie Protokolle erstellen und Anmerkungen und Ideen sammeln Wenn Nacharbeiten auftreten, führt dies zu mangelnder Motivation der Teamkollegen.
  2. Hinterlassen Sie keine unnötigen Informationen als Korrekturkommentar Wenn Sie die Versionsverwaltung ausführen, fügen Sie der Festschreibungsnachricht einen Kommentar hinzu.

Über die Technologieauswahl

Es wird angenommen, dass das entwickelte Produkt die folgende Konfiguration aufweist. Ich wünschte, ich könnte einen Mietserver mieten und eine Art Webanwendung veröffentlichen.

Application Server
Java9
Linux
RDB(MySql 8.0)

Wenn die Webanwendung auf der Server- und der Client-Seite streng getrennt ist Es scheint ein neuer Trend zu sein, Informationen vom Client über json zum Server auszutauschen.

Teamentwicklungsimage und Ergebnisse im Prozess

Grobe Prozessaufzählung

Tatsächlich gab es eine Zeit, in der sich nach der festgelegten Zeit zwei Menschen in Baltec entwickelten. Es gibt eine Vorgeschichte von Fehlern aufgrund von Einschränkungen wie gegenseitigen Unannehmlichkeiten und der Unfähigkeit, Materialien innerhalb des Unternehmens herauszunehmen. .. .. Basierend auf den oben genannten Erfahrungen ist dies meine Best Practice für den Zeitplanprozess.

Annahme: Wasserfall bis zur ersten Veröffentlichung, dann agil

  1. Definition anfordern
  2. Anforderungsdefinition
  3. Übersicht Design
  4. Detailliertes Design
  5. Entwicklung
  6. Prüfung
  7. Betrieb (im Folgenden werden 1 bis 7 wiederholt)

Wasserfall: Selbst wenn das Designdokument des vorherigen Prozesses eine Lücke enthält, wird die Datei ohnehin nicht überschrieben. Erstellen Sie ein Diff, schreiben Sie es dort, führen Sie es am Ende zusammen und geben Sie eine Nebenversion an. Agil: Wir werden das Designdokument von Zeit zu Zeit überarbeiten und nach der Veröffentlichung eine Nebenversion bereitstellen.

1. Definition anfordern

Lieferbar: Anforderungsdefinition

Wir werden grob besprechen, was Sie im Team machen möchten und welche Technologie Sie implementieren möchten. Als Diskussionsmittel, persönlich in einem Café oder einer Webkonferenz, Wenn es keinen Ausgangsteil gibt, wird es äußerst schwierig sein, das Gesamtbewusstsein zu vereinheitlichen. Beispiel: Whiteboard in einem Konferenzraum, Zeichnen in Excel

2. Anforderungsdefinition

Zu erbringende Leistungen: Anforderungsdefinitionsdokument, Entwurfstabelle für Personal

Wir werden die technischen Spezifikationen für den Betrieb untersuchen und zusammenfassen, was Sie herstellen möchten.

Zum Zeitpunkt der ersten Version wird nur die Mindestkonfiguration verwendet, und umfangreiche Funktionen sind mit der nächsten Version kompatibel. (Weil es schwierig ist, die Motivation aufrechtzuerhalten, wenn Sie kein Horn machen und es bewegen)

Klären Sie, in welchem Prozess gemeinsame Verarbeitung und Vereinbarungen (Covenants) erörtert werden, wenn sie auf der Tagesordnung stehen.

3. Umrissdesign

Zu erbringende Leistungen: Bildschirmdefinitionsdokument, Schnittstellendefinitionsdokument, Datenbankdefinitionsdokument, detaillierte Entwurfs-Personaltabelle

Ich habe praktische Erfahrung mit der RESTFul-API Client <-> Ich habe Erfahrung mit Swagger (später beschrieben) als Schnittstellendefinitionsdokument zwischen Servern. Swagger wird als RESTFul-API-Dokumentation empfohlen.

Auf der Client-Seite halte ich es für notwendig, das HTML-basierte Modell als Ergebnis zu belassen. (Da Spring Boot Bildschirme basierend auf HTML erstellt) Zusätzlich ist es notwendig, das Bildschirmübergangsdiagramm und das Bildschirmmuster zum Zeitpunkt des normalen / abnormalen Auftretens abzudecken.

4. Detailliertes Design

Zu erbringende Leistungen: Programmdesigndokument, Testdesigndokument, Nachrichtendefinitionsdokument, Entwicklungsaufwandstabelle

Erstellen Sie ein Programmdesigndokument und ein Testdesigndokument als Satz. Stellen Sie bei der Implementierung eines Testdesigns sicher, dass Sie Muster identifizieren, die gemeinsam implementiert werden können. Das Format des detaillierten Designdokuments in Japan scheint Excel zu sein. Da Excel jedoch in Rechnung gestellt wird, möchte ich ein anderes Format verwenden. Ich habe keine Erfahrung damit, aber ich möchte Sphinx verwenden (später beschrieben).

Identifizieren Sie Fehlermeldungen und verschiedene Meldungen und verwalten Sie sie so, dass keine doppelten Inhalte vorhanden sind.

5. Entwicklung

Liefergegenstände: Produktcode, Testcode, Testaufwands-Tabelle

Stellen Sie sicher, dass Sie die Ergebnisse des Tages festlegen und veröffentlichen

Codierungsstandards, die gemeinsam genutzt werden können, statische Analyseregeln usw. sollten im gemeinsamen Speicher aufbewahrt werden

Verknüpfen und setzen Sie Tools für Versionsverwaltung und -erstellung und implementieren Sie [Continuous Integration](https://ja.wikipedia.org/wiki/Continuous Integration) hinter den Kulissen.

In diesem Prozess werden die Erstellung des Programms und die Erstellung der Testquelle (Unit Test) abgeschlossen.

6. Prüfung

Ergebnisse: Testspezifikationen, Testcode, Fehlerverwaltungstabelle

Tests, die im Entwicklungsprozess nicht durchgeführt werden können, werden in diesem Prozess durchgeführt. Manuelle Tests über den Browser, interfunktionale Integrationstests usw. ..

Stellen Sie sicher, dass Sie der Quelle vor und nach dem Start des Tests "Tags" hinzufügen. Erstellen Sie außerdem eine Fehlerverwaltungstabelle, um das Wissen über Erkennungsdifferenzen während der Teamentwicklung zu sammeln und ein Gefühl dafür zu bekommen.

7. Betrieb

Geben Sie die Quelle für den Produktionsserver frei und tippen Sie auf dem Bildschirm leicht auf verschiedene Funktionen. (Sie können die Vorgangsprüfelemente, die bei jeder Version ausgeführt werden müssen, automatisieren und später überprüfen.)

Wechseln Sie zu agil, wiederholen Sie die Tests von der Anforderungsdefinition und wiederholen Sie die Entwicklung für einen kurzen Zeitraum.

Tools zur Unterstützung der Teamentwicklung

Chat-Tool

Notwendige Gegenstände | :----------------- | 1: Kann mit N sprechen | Bemerkung Protokoll bleibt, Protokoll kann durchsucht werden Der Fluss zu sprechen ist kein Umweg Es dauert nicht lange, um die Anzahl der Mitarbeiter zu erhöhen Nicht schwer

-> Slack

Referenz

Webkonferenz

Notwendige Gegenstände | :-------------------- | 1: Kann mit N ausgeführt werden | Kann sowohl Sprachanrufe als auch ausgehende Nachrichten tätigen | Bildschirmfreigabe ist möglich

-> Skype, Google Hangout

Referenz

Dokumentenspeicher

Notwendige Gegenstände | :--------------- | Nicht von Dritten belauscht Es dauert nicht lange, um die Anzahl der Mitarbeiter zu erhöhen

-> Online-Speicher (Google Drive)

Referenz

Problemmanagement

Notwendige Gegenstände | :------------------------ Es ist klar, wer gezeichnet hat | 5W1H wird standardmäßig im Format ausgedrückt Kann Gantt-Diagramme erzeugen

-> Ticketverwaltung (Redmine)

Referenz

Tools zur Beschleunigung der Teamentwicklung

Dokumenterstellung

Notwendige Gegenstände | :------- | Frei zu benutzen Einfach zu vergleichende Unterschiede

-> Sphinx

Referenz

Schnittstellendefinitionsdokument

Notwendige Gegenstände | :------- | Frei zu benutzen Major

-> Swagger

Referenz

Versionskontrolle

Notwendige Gegenstände | :------- Das Bauen ist kein Ärger Major

-> GitHub

Referenz

Texteditor

Notwendige Gegenstände | :------------ Die Operation ist nicht schwer | Syntax hebt die Arbeit hervor Kann ins Japanische übersetzt werden

-> Visual Studio Code

Referenz

Codierungswerkzeug

Notwendige Gegenstände | :------------ Kann mit der Versionsverwaltung arbeiten Selbstlösend Kann ins Japanische übersetzt werden

-> Überlass es dir

abschließend

Herausforderungen für diesen Artikel

Zum Zeitpunkt der Veröffentlichung dieses Artikels konnten wir keine sichtbaren Probleme in die Teamentwicklung einbeziehen. Beispiel) Bei der Remote-Entwicklung kann ich nicht alle Fortschritte meiner Teamkollegen erfassen. Ich möchte es zum richtigen Zeitpunkt hinzufügen oder eine Risikoanalyse durchführen, wenn das Team gegründet ist.

SpecialThanx Bevor ich den Artikel veröffentlichte, bat ich meine Senioren, Junioren und meine Frau, den Text zu überprüfen. Ich möchte diesen Moment nutzen, um mich zu bedanken.

Außerdem suche ich einen Remote-Teamentwickler. Zu den Wörtern gehören "Spring Boot", "Java 9" und so weiter.

Recommended Posts

Ich möchte die Teamentwicklung aus der Ferne durchführen
Ich möchte so etwas wie "cls" in Java machen
Ich möchte Zeichen konvertieren ...
[Swift] Ich möchte so etwas wie Cs Sprint machen
Ich möchte wirklich "new T ()" machen! (Und ohne Inspektionsausnahmen)
[Entwicklungsprotokoll ⑮] Ich möchte einen externen Link oder PDF-Link hinzufügen
Ich möchte eine Webanwendung entwickeln!
Ich möchte ein schönes build.gradle schreiben
Ich möchte doppelte Fehlermeldungen beseitigen
Ich möchte eine ios.android App machen
Ich möchte einen Unit Test schreiben!
Ich möchte PHP 7.2 unter Ubuntu 20.04 installieren.
Ich möchte Java-Updates insgesamt stoppen
Ich möchte statische Felder auf @Autowired ausrichten
Ich möchte nach Tabulatortrennzeichen mit Rubin sortieren
R von Java ausführen Ich möchte rJava ausführen
[Swift] Ich möchte Gitterlinien (Quadrate) zeichnen.
Ich möchte eine E-Mail in Java senden.
Ich möchte von npm richtig abschließen [2020]
Ich möchte Java8 für jeden mit Index verwenden
Ich möchte APP_HOME an Logback in Gradle übergeben
Ich möchte eine einfache Wiederholung einer Zeichenkette schreiben
Entwicklungsnotiz ~ Ich möchte nur das erste Bild anzeigen, das mehrmals gepostet wurde ~
Ich möchte eine Struktur für die Ausnahmebehandlung entwerfen
rsync4j - Ich möchte rsync in Java berühren.
Ich möchte die stärkste lokale Entwicklungsumgebung mit VSCode Remote Containers erstellen
Ich möchte mit Firestore von Rails spielen
Ich möchte irgendwann sogar in Kotlin sein
Ich möchte schnell von Java nach SQLite schreiben
Ich möchte einfache Fehler reduzieren. Sich selbst befehlen.
Ich möchte die Aggregationsverarbeitung mit Spring-Batch durchführen
[Rails] Ich möchte CSS mit Webpacker laden
Ich möchte eine von Git verwaltete Datei löschen
Ich möchte den Wert in Ruby erhalten
Ich möchte Combine auch in UIKit verwenden.
Ich möchte die praktischen Funktionen von Clojure in Kotlin nutzen
Ich möchte eine Methode einer anderen Klasse aufrufen
[Java] Ich möchte die Differenz zum Datum berechnen
Ich möchte NetBeans auf einem Mac verwenden → Ich kann es verwenden!
Ich möchte eine TraceId in das Protokoll einbetten
Pointcut-Ausdruck Ich möchte mehr als einen angeben
Ich möchte auch in Laradock Fischschalen verwenden! !!
Ich möchte ES2015 auch in Java verwenden! → (´ ・ ω ・ `)
Gelernter Stream (Ich möchte List in Map <Integer, List> konvertieren)
Ich möchte den Bereich anhand des monatlichen Abschlusses beurteilen
Ich möchte ein kleines Symbol in Rails verwenden
Was muss ich tun, um die aktualisierte Docker-Datei neu zu laden?
Ich möchte die Antwort der Janken-App wissen
Ich möchte den Dunkelmodus mit der SWT-App verwenden
Ich möchte eine bestimmte Datei mit WatchService überwachen
Ich möchte ContainerRelativeShape nur auf bestimmte Ecken anwenden [SwiftUI]
Ich möchte Benutzer mit Devise + OmniAuth bei Rails authentifizieren