Ich habe eine Frage, die von meinem letzten Job (eher Praktikant) aufgeworfen wurde.
Nur um die Dinge in einen Zusammenhang zu bringen: Ich bin 21 Jahre alt und habe mein zweites Studienjahr abgeschlossen, bevor ich ungefähr 2 Jahre Erfahrung in Sys Admin / QA-Jobs gesammelt habe IT-Branchen betrieben. Blicken Sie nach vorne in die Gegenwart und hier lande ich einen Praktikumsplatz bei einer der führenden Forschungseinrichtungen in Großbritannien.
Was ich tun muss, ist, einige interne Tools mit einem Technologiemix zu erstellen - hauptsächlich AWS / Java / Bash - Sie erhalten das Bild. Alles ist in Ordnung, ich mache meine Arbeit, aber ich bin nicht glücklich. Warum ist das so? Ich muss in einer Ad-hoc-Angelegenheit arbeiten. Das heißt, Dinge schnell zu erstellen, ohne Zeit mit dem Entwerfen zu verbringen. Mein Vorgesetzter sagte ausdrücklich, es sei zu erwarten, dass es durch auftretende Probleme "stürzt" und wir im Wesentlichen. In der Folge stellte sich heraus, dass Dinge neu gemacht und neu konstruiert werden mussten und sie immer noch nicht perfekt sind. Was das Testen angeht - halten Sie es auf ein Minimum, solange es funktioniert, ist es in Ordnung.
Bin ich schuld daran, mit dieser Arbeitsweise nicht einverstanden zu sein? Ist es falsch, das System als Ganzes zu überdenken, sich dann auf verschiedene Komponenten zu konzentrieren und zu sehen, wie sie zusammenwirken, um verschiedene "Schlüsselpunkte" herauszufinden, die sich in Zukunft als problematisch herausstellen könnten? Ist es ein Verbrechen, einen guten Job machen zu wollen und keinen "schnellen Job"? Ist es ein Fehler oder eine falsche Einstellung, die für ein Problem geltenden Datenstrukturen untersuchen zu wollen, damit Sie je nach Problemstellung die beste auswählen können? Nach meinem besten Verständnis hat das "Engineering" -Bit in "Software Engineering" genau damit zu tun - recherchieren Sie Ihre Problemdomäne und finden Sie eine fundierte Lösung, verfeinern Sie diese dann nach Bedarf?
Ich war bei einem Interview in einem Büro von Arm's in Großbritannien und sie zeigten mir ihren SCRUM-Raum und es sah so aus, als hätten sie eine ziemlich gute Idee, wie sie ihr Projekt managen sollten - sie hatten einen Rückstand, sie hatten Metriken, wie lange sie waren Das Problem könnte gelöst werden - die üblichen Dinge für SCRUM - völlig anders als die Art und Weise, wie die Dinge "hier" ablaufen.
Habe ich eine falsche Vorstellung von der Softwareindustrie im Allgemeinen? Ich würde gerne Ihre Meinung dazu hören. Ich meine, ich bin in die Softwareentwicklung "eingetreten", nur weil ich Dinge schaffen will - schlicht und einfach, aber ich will Qualitätsdinge schaffen. Ich möchte, dass meine Software in verschiedenen Szenarien verwendet wird. Ich möchte, dass sie kugelsicher ist. Ist das nicht die treibende Kraft für alle Softwareentwickler? Ich denke, jeder kann ein Programmierer / Programmierer sein, indem er nur die Syntax lernt, aber für mich beginnt der wahre Spaß, wenn man tatsächlich ein Design entwickeln muss, das in der realen Welt machbar ist.
Früher habe ich meine Aufgaben an der Universität erledigt, indem ich sie nur angeschaut und direkt mit dem Codieren begonnen habe. Dabei konnte ich leicht Noten über 75% erzielen, und ich habe das Modul "Software Development Lifecycle" nie wirklich geschätzt. Aber jetzt, als ich in der realen Welt sah, wie schlimm es ist, ohne formalen Prozess und mit der Frustration zu arbeiten, die einer Situation innewohnt, in der man nicht weiß, ob sich die Anforderungen morgen ändern werden (oh, habe ich gesagt, dass wir nichts tun) Haben Sie keine klar definierte Anforderungsanalyse?)
Ich mag es wirklich zu glauben, dass ich gerade eine Position erreicht habe, in der einige Leute nur einen Code-Affen brauchten, um ihre Drecksarbeit zu erledigen, und das ist nicht der Fall, wie die Software-Welt im Allgemeinen funktioniert.
because I'm expected to work in an ad-hoc matter. That is create things quickly, without spending time on designing
- Willkommen in der realen Welt ™, in der Fristen gelten und von Unternehmen Ergebnisse erwartet werden.