[PYTHON] Was ich vor einem Systemingenieur gelernt habe, der den Liefertermin nicht einhalten konnte, war ohne Verzögerung ein wenig zuverlässig

zunaechst

Dieser Artikel wurde veröffentlicht, da ich die Frist nicht einhalten konnte. Wenn Sie aufhören zu verzögern und Ihren Junioren helfen, zu verzögern Beschreiben Sie, was Sie gelernt haben, was Sie versuchen und was Sie versagt haben. Ich würde es begrüßen, wenn Sie es lesen könnten, um die Zeit totzuschlagen.

Annahme: Wie viel konnte nicht getan werden

・ Die Funktion, die ich für cool hielt, wurde um eine Woche verzögert und war mit weiteren Fehlern übersät. ・ Die Entwicklung der Prototypversion dauerte zu lange und wurde aufgrund von Spezifikationsänderungen verzögert. -Die Funktionen, die Benutzer wollten, wurden fast nicht mehr zur gleichen Zeit benötigt, als sie abgeschlossen waren.

Der Inhalt dieses Artikels ist oft subjektiv und empirisch. Der Autor ist bestenfalls ein Ingenieur in der Mitte seiner Karriere Daher ist der Beschreibungsinhalt nicht immer hilfreich.

Was ich studiert habe

Verhandlung & Schätzung

** ・ Erkennen Sie an, dass eine genaue Schätzung der Arbeit "unmöglich" ist. ** ** ** Vor dem eigentlichen Erstellen einer Funktion wird unbedingt bestätigt, dass "wie viel getan werden kann". Zu diesem Zeitpunkt schlägt es normalerweise fehl, selbst wenn Sie glauben, dass Sie es in n Tagen aus früheren Erfahrungen schaffen können. Dies liegt daran, dass es selten vorkommt, dass genau dieselbe Funktion zweimal erstellt wird. Auch wenn Sie etwas ziemlich Nahes getan haben Es gibt immer einen Unterschied zum letzten Mal. Und meistens wird es zu einem großen Engpass und stirbt. Da Sie hier eine Schätzung vornehmen müssen, ** sollte mindestens die Anzahl der Tage, von denen Sie glauben, dass Sie + 2 Tage können, auf dem Kopf stehen ** (Wird oft als Puffer bezeichnet.)

Vor allem, wenn Sie unerfahren sind oder gerade den Auftrag gewechselt haben oder versandt wurden und den Inhalt des Systems nicht kennen Es ist auch effektiv zu sagen: "Warum haben Sie es 5 Tage lang auf den Kopf gestellt?" ~~ Es ist subjektiv, aber ich denke, es macht Spaß, wenn die ganze Arbeit perfekt geschätzt werden kann. ~~

** ・ Wie lange kann es gemacht werden? Auf Nachfrage ** ** Es ist eigentlich eine große Falle. Antworte nicht sofort. ** Zuallererst: "Ich werde es ein bisschen nachschlagen - es kann ungefähr einen Tag dauern." Lass es uns schlammig machen. Im Gegenteil, wenn Sie ein Führer sind, wenn Sie sofort beantwortet werden, ohne schlammig zu sein, wenn Sie ein wenig Zweifel haben Oft war das Ergebnis erfolgreich.

** Geschätzter verkehrter Puffer für jedes Entwicklungsmodell ** Ich habe nur Erfahrung in der Entwicklung von Wasserfällen und in der agilen Entwicklung, daher kann ich nur über diese beiden sprechen. ・ Für die Entwicklung von Wasserfällen bis zu Ihrer Schätzung + 5 Tage oder Frist ・ Für eine agile Entwicklung bis zur zweiten Sprintüberprüfung der Funktion, für die Sie verantwortlich sind Die Unfallrate wurde gesenkt, indem ein Zustand angestrebt wurde, in dem 70% nach der Hälfte der Zeit abgeschlossen waren. Es wäre sogar noch besser, wenn beides getan werden könnte, während entsprechende Vorschläge eingehen. Wenn dies schwierig ist, können Sie Anpassungen vornehmen, um die Anzahl der Personen zu erhöhen, oder Experten Zeit geben.

Design

** Erfüllen Sie alle Anforderungen. Denken Sie nur daran. ** ** ** Im Gegensatz zum Quellcode können die im Entwurfsprozess erstellten Dokumente geliefert werden oder nicht. Wenn es als Liefergegenstand angegeben ist, ist das Format normalerweise festgelegt. ~~ Und das Format ist oft schlecht. ~~ Mit anderen Worten, es gibt einen Ort, an dem man sich anstrengen kann, aber wie man sich anstrengt Nicht ** um ein cooles Dokument zu machen ** ** Das Image des Herstellungsprozesses festigen oder den Herstellungsprozess vereinfachen ** Sie müssen sich konzentrieren. Nach meiner Erfahrung ist es schön, ein sauberes Layout-Design-Dokument zu haben. Der wesentliche Inhalt war zu schlecht und schließlich kam es zu einer Überarbeitung. Es gab mehrere Male. Lassen Sie uns mit dem Inhalt konkurrieren. Auch wenn andere Mitglieder basierend auf dem hier erstellten herstellen, Es ist besser, wenn man bedenkt, dass die Person leicht zu machen ist.

** Machen Sie keine Tippfehler oder Auslassungen ** Dies ist auch gut gemacht, aber typografische Fehler und Auslassungen verschwenden mehr Aufwand, als Sie sich vorstellen können. Konstruktionsdokument mit typografischen Fehlern → Auf typografische Fehler in Überprüfungsangaben hingewiesen → Korrigieren und erneut überprüfen → Bestätigen und beenden Und ** Ich kann Designfehler und Designauslassungen, die ich überprüfen sollte, nicht im Auge behalten ** In vielen Fällen erleiden Sie mehr Schaden, als Sie sich vorstellen können, da dies zu Nacharbeiten = Annäherung an die Verzögerung führt. Pass gut auf. Wenn Sie programmgesteuert darüber nachdenken, entspricht dies einer Pull-Anforderung mit einem Kompilierungsfehler.

** Erlaube leichte Unterschiede im Aussehen ** Dies war zum Zeitpunkt der Überprüfung, aber ich fuhr fort, darauf hinzuweisen, ohne einen Unterschied im Aussehen zuzulassen, Mir ist bewusst, dass ich kein Rezensent sein werde, der die Mühe auffrisst. Denn wie oben erwähnt, ist der Inhalt wichtig und es gibt einen kleinen Unterschied im Aussehen. Es endet auf einer Ebene, die Ihnen wichtig ist (es sei denn, es ist als Lieferung vorgesehen). Daher wird nicht empfohlen, mit dem Geist des Hinweises zu überprüfen, auch wenn dies nicht der Fall ist.

Herstellung

** Kneifen und essen Sie verschiedene Paradigmen ** Zum Beispiel behandle ich Backends normalerweise hauptsächlich mit Java und Python. Beide sind geeignete Sprachen für objektorientierte Programme. (Beide sind heutzutage Multi-Paradigmen) Indem Sie also die Vorzüge der funktionalen Programmierung in Ihrer gewohnten Zeit kennenlernen und einige davon einbeziehen, Es kann präziser beschrieben werden, und da es präzise ist, gibt es nur wenige Fehler, und selbst wenn während der Herstellung ein Fehler auftritt Es ist einfach damit umzugehen. Es sind alles gute Dinge wie. Hier werde ich die Idee oder Details der funktionalen Programmierung nicht erklären ~~ (ich kann es nicht tun, weil es zu tief ist) ~~ Wenn Sie normalerweise eine objektorientierte Sprache verwenden -Wenn der an das Argument übergebene Wert derselbe ist, ist auch der zurückgegebene Wert derselbe.

sample.java


    //Prozess basierend auf dem übergebenen Argument. Wenn das Argument Hello lautet, lautet das Ergebnis immer HelloWorld.
    //Es ist einfach zu testen, da das Ergebnis abhängig vom Wert des Arguments bekannt sein kann. (Die magische Zahl ist deine Liebe)
    public String convertGreetingMsg(String msg) {
        return msg + "World";
    }

    //Prozess basierend auf dem Eingabewert. Da sich der Wert abhängig vom Eingabewert ändert, handelt es sich in der Regel um eine Brutstätte von Fehlern.
    //Wenn Sie diese Funktionen verwenden müssen, sollte es ein effizienteres Design geben
    public String convertGreetingMsg(String msg) {
        Scanner inputScanner = new Scanner(System.in);
        return msg + inputScanner.toString();
    }

    //Wenn Sie den Inhalt der Methode kennen, die Sie aufrufen, können Sie ihn sehen, indem Sie ihn sich ansehen.
    //Selbst wenn ein Fehler auftritt, ist die Ursache leicht zu verstehen, wenn Sie sich nur ansehen, was als Argument übergeben wird
    public int sumNumberStream(List<Integer> numList) {
        return numList.stream().mapToInt(Integer::intValue).sum();
    }

    //Jeder, der die grundlegende Syntax kennt, kann sie lesen, aber was sie tun, wenn sie den Prozess nicht einmal lesen
    //Relativ verwirrend
    public int sumNumberLoop(List<Integer> numList) {
        int sumResult = 0;
        for (Integer num : numList) {
            sumResult += num.intValue();
        } 
        return sumResult;
    }

** Berühren Sie andere Sprachen, die in der Praxis nicht verwendet werden ** Für Ingenieure mag dies selbstverständlich sein, aber wie oben Wenn Sie wissen, was Sie nicht wissen, können Sie Ihren üblichen Quellcode schneller erstellen. Es besteht kein Zweifel, dass sich die Qualität verbessern wird. Indem Sie Python lernen, während Sie sich in Java entwickeln, und die Ideen von Python lernen Ich hatte ein besseres Verständnis von Java und eine einfachere Codierung. In einem Fall scheint es nicht direkt mit der "Einhaltung des Liefertermins" zu tun zu haben. Eine Qualitätsverbesserung während der Entwicklung reduziert das Auftreten von Fehlern und mangelnde Berücksichtigung, was zu einer Reduzierung der Arbeitskräfte führt. Empfohlen für diejenigen, die normalerweise keine anderen Sprachen sehen.

sample.py


	''' 
Wenn Sie das obige Java in Python schreiben ...
Es ist ein wenig, weil das Beispiel schlecht ist, aber ich stelle fest, dass Python kürzer ist, weil es keinen Typ gibt
Aber ich will eine Form ...
	 '''
	def convertGreetingMsg(msg) :
		return msg + "World";

	'''
	stream()Und mapToInt()Es ist einfacher zu verstehen, was Sie tun, als das Ausmaß der Abnahme
	'''
	 def sumNumberFunc(numList) : 
		return sum(numList);

Am Ende

Dies ist meine Meinung und ich denke nicht, dass sie für alle gilt. Welcher Prozess kann jedoch fehlschlagen, wenn Sie Schwierigkeiten haben, den Liefertermin einzuhalten? Wenn Sie analysieren, ob es viele gibt, und beachten Sie, dass es hier entsprechend dem Ergebnis geschrieben wird Es wird keine Verzögerung geben und Sie können sich darauf verlassen. ~~ Wir garantieren nicht. ~~

Recommended Posts

Was ich vor einem Systemingenieur gelernt habe, der den Liefertermin nicht einhalten konnte, war ohne Verzögerung ein wenig zuverlässig
Maschinelles Lernen, verdammter Amateur, habe ich in 2 Monaten gelernt, bis das Produkt veröffentlicht wurde
Beim Schreiben in eine CSV-Datei mit Python habe ich einen kleinen Fehler gemacht und den Liefertermin nicht eingehalten