Ist es üblich, als Entwickler zu arbeiten, ohne die Möglichkeit zu haben, wichtige Dinge im Projekt zu wissen? [geschlossen]

Ein bisschen Hintergrund:

Ich bin einer der beiden Softwareentwickler in meiner Firma und wir arbeiten derzeit mit C++ auf eingebetteten Maschinen. Mein Kollege arbeitet seit langem mit C und nun wollte mein Chef die Entwicklung mit C++ verbessern. Nach einem Praktikum im Bereich Webanwendungen bat mich mein Chef, mit diesen Maschinen zu arbeiten, ohne etwas über die Maschine selbst zu wissen.

Als ich übernommen wurde, wusste mein Chef, dass ich in der Schule nur Dinge in C++ gemacht hatte und dass ich persönlich nichts weiter gemacht hatte, aber dass ich mehr darüber wissen wollte, wie man Software auf eingebetteten Maschinen entwickelt.

Die Quelle meiner Probleme:

Also, wie gesagt, ich habe ganz frisch angefangen, Software für Maschinen zu entwickeln, die ich noch nie zuvor gesehen habe. Diese haben ein sehr komplexes Programm, das auf sehr komplexe Weise gebaut wurde, dem manchmal die Fähigkeiten von OOP und C++ fehlen (da vorher alles in C gebaut wurde (was ich nicht weiß und mein Chef das wusste)) und ich habe viele Schwierigkeiten verstehen, wie es funktioniert, warum etwas auf eine bestimmte Weise gebaut wurde, was für eine Idee hinter etwas steckt usw. usw. usw.

Ich kann den Senior nicht fragen, da er Dinge in C gemacht hat und diese neue Maschine nicht programmiert (oder er macht es sowieso mit C und will C++ nicht lernen) und er ist sowieso zu beschäftigt.

Aber trotz all dieser Probleme habe ich die Situation in den Griff bekommen und zumindest angefangen zu wissen, wie man ein paar Kleinigkeiten macht, und für meinen Chef lief das gut ... bis jetzt.

Das eigentliche Problem:

Jetzt, nach einem Monat, werde ich aufgrund von Firmenschwierigkeiten gebeten, die Funktionen des Architekten zu verwenden und nicht die, die ich alleine gemacht habe. Er ist der Mann hinter den Kulissen, der das gesamte Betriebssystem der Maschine geschrieben hat, und ich kann ihn nicht kontaktieren, seit er die Firma verlassen hat, und kann mir helfen, wenn er um "Beratung" gebeten wird.

Das Problem ist, dass ich nicht wissen kann, was eine Funktion tut und sich verhält, weil das Funktionsverhalten in *.a-Dateien eingeschlossen ist. Als ich über eine der seltenen Mails nachfragte, die ich senden konnte, lautete die Antwort: "Der Name der Funktion und die Parameter sollten die Dinge klarstellen, Sie haben sowieso eine Menge Dokumentation".

Eigentlich ... dieser Dokumentation fehlen Informationen (sie ist zu etwa 30% vollständig, um die Idee zu verstehen). Und überhaupt erklärt es allgemein, was eine Funktion tut, vorausgesetzt, ich weiß, wie das Betriebssystem funktioniert, was der Zweck einer bestimmten Idee ist oder andere zufällige Dinge, die ich mir nicht vorstellen kann.

Ich habe viele Probleme im Kopf, welches ist, dieses Unternehmen zu verlassen und nach Webentwicklung zu suchen (was wirklich mein Interesse geweckt hat), aber bevor ich mich an seltsame Ideen gewöhne, möchte ich nur fragen:

Ist es üblich, als Entwickler zu arbeiten, ohne die Möglichkeit zu haben, wichtige Dinge im Projekt zu wissen?

Eigentlich verstehe ich hier und da ein wenig. Aber ich werde wirklich gebeten, ein riesiges Puzzle zu lösen, ohne zu wissen, wie die endgültige Figur aussehen wird. Da dies mein erster Job ist, weiß ich nicht wirklich, was ich tun soll, vielleicht ist das in den Unternehmen üblich und ich werde nur entmutigt.

Wir bevorzugen hier Fragen mit praktischen Antworten. Was versuchen Sie also zu erreichen? Wenn eine zufällige Person im Internet dazu ja oder nein sagt, bezweifle ich, dass das irgendetwas für Sie löst.
Ich weiß nicht, ob es üblich ist, so viele Dinge zu verstecken. Und ich kann nicht besser fragen. Wie hättest du gefragt..? Ich habe mein Bestes versucht zu fragen, aber ich habe nicht viel Zeit hier bei der Arbeit und ich fühle mich wirklich gestresst, es tut mir leid...
"Diese haben sehr komplexe Programme, die auf sehr komplexe Weise erstellt wurden, denen manchmal die Funktionen von OOP und C++ fehlen (da zuvor alles in C erstellt wurde " - Diese Art von Fragen zur technischen Situation passen möglicherweise besser zu Programmers Stackexchange. Und Sie können untersuchen möchten, wie die eingebettete Programmierung in C++ (und C) im Allgemeinen durchgeführt wird.
Ja, ich war mir nicht sicher, welchen Stackexchange ich wählen musste, aber das hat eher mit dem Arbeitsplatz zu tun als mit sehr technischen Problemen, und ich dachte sowieso, dass es wegen StackOverflow viele Programmierer in dieser Community gibt, es tut mir leid, wenn es das ist falscher Ort, um eine solche Frage zu stellen.
@MarkWuji Welche Seite hängt davon ab, was Ihre Frage ist. Wenn Sie wissen wollen, wie man programmiert, wenn Sie nicht das vollständige Bild des Systems haben, dann gehört das wahrscheinlich zu Programmierer. Wenn Sie wissen möchten, wie Sie das Problem bei Ihrem Vorgesetzten ansprechen können, ist dies hier besser geeignet. Das Problem ist, dass Sie hier nicht angeben, was Sie tun möchten . „Ist es üblich“ ist eine einfache Ja/Nein-Frage, bei der die Antwort von Branche, Sektor und persönlichen Vorlieben abhängt.
Nun, ich habe trotzdem die Antwort bekommen, die ich brauchte, also danke; aber ich habe nicht immer die zeit, alles glasklar zu machen, weißt du, ich habe fast 1 stunde gebraucht, um die frage richtig zu stellen, und deine kommentare fügen sowieso keine konstruktive kritik hinzu wie "schreib das nächste mal ein 'was sollte Das tue ich?' Frage ^^ ", wenn wir so genau sein wollen. Außerdem ist Englisch nicht meine Muttersprache und ich benutze es nicht jeden Tag.
Ich habe das Gefühl, dass das eigentliche Problem Ihr Chef ist, der entweder a) ahnungslos ist; oder b) Sie als Experiment zu verwenden, da Sie anscheinend C++/OOP kennen. Jetzt haben Sie vielleicht festgestellt, dass es für eingebettete Umgebungen nicht gut funktioniert. Die Lösung besteht darin, dies dem Chef zu erklären, wenn möglich.

Antworten (3)

Es ist völlig normal, dass ein Entwickler in einer solchen Situation Wunder vollbringen muss – in einer schlechten Gesellschaft .

Ich habe in Genossenschaften gearbeitet, in denen der Eigentümer des Unternehmens von mir erwartete, Bill Gates zu übertreffen und sein Geschäft zu revolutionieren. Ich habe mein Bestes gegeben, aber seien wir ehrlich, es ist nicht ganz so gelaufen, wie sie es sich erhofft hatten.

Das Problem ist, dass viele Manager Softwareentwicklung nicht verstehen .

Sie verstehen nicht, wie unterschiedlich eine Sprache von einer anderen sein kann. Sie verstehen nicht, dass bestimmte Bereiche der Entwicklung nicht sehr eng miteinander verbunden sind (z. B. Webentwicklung vs. Maschinenprogrammierung). Sie verstehen den Zeitplan für die Bereitstellung eines komplexen Softwarepakets, die Auswirkungen einer Änderung des Projektumfangs – selbst in scheinbar geringfügiger Weise – usw. nicht.

Das sind Themen, denen Sie im Laufe Ihrer Karriere immer wieder begegnen werden . Sie müssen lernen, wie Sie Ihre Bedenken äußern, Lieferzeiten abschätzen (nehmen Sie sich die Zeit, die Sie für möglich halten, und multiplizieren Sie sie mit 3, ist eine gute Regel) und lernen Sie auch, wann es Zeit für GTFO ist.

Dieses Unternehmen klingt chaotisch und schlecht organisiert. Darüber hinaus hat die verantwortliche Person eindeutig keine Ahnung, was zum Teufel sie von Ihnen verlangt, und bietet Ihnen wenig oder keine Unterstützung.

An dieser Stelle können Sie sich lauter äußern, Ihre Bedenken äußern und Ihren eigenen Plan und Zeitplan für die Erfüllung ihrer Anforderungen erläutern.

Sie könnten zum Beispiel ein paar Tage anfordern, um einfach mit der Bibliothek zu experimentieren und Ihr Wissen zu vertiefen. Sie mögen es vielleicht nicht, aber Sie sollten erklären, dass Sie ohne weiteres Verständnis Ihre Aufgaben wahrscheinlich nicht erfolgreich erledigen werden.

Ich möchte mich auch an den Kommentar wenden, den Sie an Kilisi gerichtet haben:

Ich habe nicht die Absicht, C++ zu Hause zu lernen oder so

Als Entwickler müssen Sie Ihr Wissen im Laufe Ihrer Karriere ständig erweitern. Nur ein sehr schlechter Entwickler stagniert.

Ich sage nicht, dass Sie Ihr Privatleben opfern sollten, aber wenn ein bisschen zusätzliche Anstrengung erforderlich ist, um langfristig erfolgreich zu sein, dann seien Sie nicht so negativ, wenn Sie ein paar Stunden Ihrer eigenen Zeit für das Lernen aufwenden eine neue Technologie.

Wenn Sie Webentwickler werden möchten, sollten Sie sich letztendlich nach einem neuen Job umsehen.

Was den Kommentar betrifft, den ich nur erklären wollte, ist nicht, dass ich nicht wirklich zu Hause lernen möchte, ich tue es natürlich! Aber ich möchte es nicht tun, weil mir in meiner Firma das Unmögliche abverlangt wird (weil ich das Gefühl haben werde, etwas Arbeit zu Hause zu übernehmen). Für den Rest haben Sie den Punkt!
@MarkWuji - es gibt so viele verschiedene Aspekte der Entwicklung. Wenn Sie sich nicht auf die Maschinenentwicklung konzentrieren möchten, sollten Sie sich einen neuen Job suchen, bevor Sie als C++-Entwickler "verankert" werden. Suchen Sie nach einem Job in der Webentwicklung, solange Ihre Erfahrung in diesem Bereich noch ziemlich aktuell/relevant ist. Ein oder zwei Jahre später könnte es sehr schwierig sein, einen Job als Webentwickler zu bekommen, wenn Sie in der Zwischenzeit nur C++ machen. Nach 3 Jahren Backend-Entwicklung fiel mir der Übergang schwer, weil Unternehmen nicht darauf vertrauen wollten, dass ich auf dem neuesten Stand der Technik bin.

Es ist nicht üblich, jemandem, der neu in der Branche ist, solche Aufgaben zu übertragen, es sei denn, er wurde als fähig erachtet. Es scheint, dass Sie ins kalte Wasser geworfen wurden (was ziemlich häufig vorkommt).

Sie müssen mit Ihrem Vorgesetzten darüber sprechen. Insbesondere müssen Sie Ihre Wissensbasis mit dem Produkt nur für den Anfang aufbauen. Sie können nach diesem Gespräch weitermachen.

Beim ersten Vorstellungsgespräch sagten mir der Vizepräsident und der Präsident, dass ich einigen Tests unterzogen worden wäre, um einen ersten Ansatz für das Programm zu machen. Das ist nie passiert; Was passiert ist, ist, dass mein Chef mir gesagt hat, ich solle die Dinge nach und nach tun. Aber jetzt hat er entschieden, dass "es genug ist und ich anfangen kann, etwas Ernsthaftes zu tun", aber ich habe nicht die Absicht, C++ zu Hause zu lernen oder so. Also fühle ich mich, als wäre ich in etwas Größerem gefangen als in mir!

Abgesehen von den anderen Antworten. Von Entwicklern wird erwartet, dass sie Repositories verwenden, um ihren Code zu speichern. Selbst wenn sie das Unternehmen verlassen, sollten sie die Quelle dem Unternehmen überlassen, das für ihre Arbeit bezahlt hat. Ich glaube, dass die Wiederherstellung des Quellcodes nicht nur für Sie nützlich ist, sondern auch für das Unternehmen, das dieses Know-how verlieren kann, wenn es vergessen wird. Einmal müssen sie vielleicht eine Funktion in einer .a-Datei ändern, und niemand wird sie ändern können.

Ich gehe davon aus, dass dieser Code von Ihrer eigenen Firma stammt. Es gibt einige punktuelle Fälle, in denen der Quellcode nicht verfügbar ist. Das könnte beinhalten:

  1. Eine Geheimhaltungsvereinbarung oder andere vertragliche Gründe
  2. Sicherheitsbedenken oder nationale Sicherheit. Vor allem, wenn Sie für das Militär oder sicherheitsbewusste Firmen arbeiten.
  3. Mitarbeiter, die alle Spuren oder ihren Code vernichten. (nicht nur unprofessionell, sondern auch kriminell).
  4. Freiberufler weigern sich, den Code freizugeben, wenn sie nicht bezahlt werden.
  5. Manchmal machen sich Manager Sorgen, dass Sie gegen die Implementierung statt gegen die Schnittstelle codieren. Wenn sich die Implementierung der Funktion ändert, funktioniert sie nicht mehr.

Bei der Codierung gegen Code anderer Unternehmen ist diese Situation recht häufig und macht die Dinge unweigerlich schwierig. Guter Code braucht normalerweise nicht zu viel Erklärung, aber guter Code ist nicht die Norm und Quellcode ist hilfreich beim Debuggen, wenn Sie nicht wissen, was passiert. Viel Glück.

Der Architekt war bis vor kurzem als externe Firma Teil des Unternehmens. Also sagst du mir, dass es üblich ist; gut, ok :) aber es ist auch schwerer, besonders in meiner Position!
Aber soweit ich verstanden habe, haben sie den Architekten unterbeauftragt, nicht das Werk. Das bedeutet normalerweise, dass sein/ihr Code für Ihr Unternehmen verfügbar sein sollte, obwohl dies von der Unternehmensrichtlinie, dem Vertrag und den nationalen Gesetzen abhängt. Es lohnt sich, diesen Code vor dem Verlust zu bewahren. Wenn Sie einen Fehler in ihren Funktionen finden, wie gedenken Sie, ihn zu lösen?
Ich kann hinzufügen, dass es tatsächlich einige Fehler hat. Aber danke für den Rat, ich werde meinen Manager fragen