Täusche ich mich selbst? Übergang von Business Analysten zum Programmierer

11

Derzeitiger Job: Als leitender Business Analyst für ein Big 4-Unternehmen, Leiter eines Teams von Entwicklern und Testern, die an einem groß angelegten Re-Platforming-Projekt arbeiten (4 Onshore-Entwickler, 4 Offshore-Entwickler, mehrere Onshore- / Offshore-Tester). Arbeiten Sie auch in ähnlicher Funktion an anderen kleineren Projekten.

Umfang meiner Rolle: Sammeln / Ausschreiben von Anforderungen, Erstellen von Funktionsspezifikationen, Entwerfen der Benutzeroberfläche (im Grunde genommen Abbildung aller Front-End-Aspekte des Systems), enge Zusammenarbeit mit Entwicklern, um Anforderungen zu kommunizieren / zu klären und Lösungen zu finden, wenn wir auf Straßensperren stoßen Schreiben von Testfällen (und Ausführen eines Großteils der Tests), Arbeiten mit der Geschäftsleitung und wichtigen Stakeholdern, Verwalten von Betatestern, Erstellen von Benutzerhandbüchern und Führen von Schulungen sowie Bereitstellen von technischem Schlüsselunterstützung.

Ich schreibe auch einige Makros in Excel mit VBA (einige meiner Makros werden jetzt im gesamten Unternehmen verwendet, sodass sie möglicherweise von etwa 1000 Personen verwendet werden) und verwende täglich SQL, sowohl in den SQL-Kompaktdateien des Programms stützt sich auf unsere SQL Server-Daten und alle von mir erstellten Access-Datenbanken. Die Entwickler sind der Meinung, dass ich in dieser Rolle ziemlich gut bin, da ich viel über Programmierung, inhärente Systemeinschränkungen, Struktur der Datenbanken usw. verstehe. Daher ist es für mich einfacher, Ideen zu kommunizieren und Vorschläge zu machen, wenn wir auf Probleme stoßen.

Was mich wirklich interessiert, ist die Entwicklung von Software. Ich programmiere ziemlich viel in VBA und wollte schon seit einiger Zeit C # lernen (das Entwicklerteam verwendet C # - ich überprüfe den Code gelegentlich um meiner selbst willen, habe aber keine praktischen Erfahrungen damit). Ich interessiere mich nicht nur für den Geschäftsprozess, sondern auch für die technische Seite der Dinge, daher macht die traditionelle BA-Rolle nicht wirklich Appetit auf die Dinge, die ich tun möchte. Im Moment habe ich ein paar kleine Projekte, die mir Manager gegeben haben, und ich finde neue Wege, dies zu tun (wie das Erstellen von benutzerdefinierten Access-Anwendungen). Daher gibt es hier und da ein bisschen, um mich interessiert zu halten.

Meine Frage lautet: Ich möchte als freiberufliches Unternehmen benutzerdefinierte Excel- oder Access-Anwendungen für kleine Unternehmen erstellen (als Ein-Mann-Shop arbeiten; je nach Komplexität eines Projekts möglicherweise einen gelegentlichen Auftragnehmer). Dies würde natürlich als Teilzeitbeschäftigung beginnen, während ich einen Tagesjob habe, aber schließlich zu einem Vollzeitjob werden. Täusche ich mich vor, ich könnte vom BA / Teilzeit-VBA-Programmierer zum Vollzeit-Beruf eines freiberuflichen Unternehmens wechseln (wo ich anfangen würde, nur benutzerdefinierte Excel / Access-Apps in VBA zu schreiben)? Oder wird so etwas normalerweise erst versucht, wenn jemand jahrelange Programmiererfahrung in Vollzeit gesammelt hat? Und gibt es überhaupt einen Markt für diese Art von Anwendungen bei kleinen Unternehmen (und vielleicht auch bei mittleren Unternehmen)?

Ryan
quelle
3
Sie sind jetzt wahrscheinlich ganz oben auf Ihrer Karriere. Sie können in 5 Jahren dieselbe Arbeit mit denselben Fähigkeiten ausführen, ohne ein Buch zu lesen. Wenn Sie ein Programmierer waren, werden Sie am Ende der Leiter beginnen und in 5 Jahren kann es sogar keine Leiter mehr geben !!! Mischen Sie Hobby nicht mit Karriere. Natürlich könnten Sie ein Programmierer sein, aber was machen die meisten durchschnittlichen Programmierer nach 10 Jahren? Als Programmierer auf dem heutigen Markt zu überleben und aufzusteigen, ist für den Durchschnittsbürger aufgrund des hohen Wettbewerbs und der ständigen technologischen Herausforderungen sehr schwierig.
NoChance
Ich bin damit einverstanden, dass ich als Business Analyst und Business Person die Möglichkeit habe, mich weiter in eine höhere Position zu bewegen. Das Problem ist, je höher Sie gehen, desto weiter entfernt von der Technologie und Implementierung, die Sie sind. Ich habe mit mehreren Beratungsunternehmen für Managementberatungspositionen im Technologiebereich gesprochen, aber diese Art von Rollen interessieren mich nicht wirklich. Mein Ziel ist es nicht, ein reiner Programmierer zu sein. Tatsächlich habe ich kein Interesse daran, als Entwickler zu arbeiten, um als Angestellter eingestellt zu werden, sondern habe ein kleines Beratungsgeschäft, in dem ich sowohl das Geschäft als auch die Entwicklerseite angehen kann.
Ryan
"Kleines Beratungsgeschäft, in dem ich sowohl die geschäftliche als auch die Entwicklerseite angehen kann" klingt für mich nach zu viel Risiko. Sie sehen, der Markt ist voll von Standardlösungen und so vielen Unternehmen und Auftragnehmern, die bereit sind, Systeme für nur 200 US-Dollar oder weniger zu bauen. Ich denke nicht, dass "klein" angesichts der Wirtschaft und der schnellen Änderungsrate der Technologie lange halten kann, es sei denn, Sie haben eine Strategie, um Kunden zu gewinnen und sich auf eine sich langsam ändernde Technologie zu konzentrieren.
NoChance
7
@EmmadKareem, "Vermische Hobby nicht mit Karriere" ... du meinst: Stelle sicher, dass fast dein ganzes Wachleben damit verbracht wird, etwas zu tun, das du nicht magst, und ungefähr 5% tun, was du magst ... klingt wie ein großer Plan für das Glück (aber zugegebenermaßen ein allgemeiner)
JoelFan
4
@EmmadKareem, ich denke, es gibt viele Programmierer, die 10, 20 oder mehr Jahre gearbeitet haben und mit ihrer Karriere
zufrieden

Antworten:

15

Nein, Sie täuschen sich nicht, es kann getan werden! Einer der Jungs hier hat das getan, obwohl ich nicht genau weiß, wie, aber ich glaube, er hat als Underwriter angefangen, wurde BA für das Underwriting interaler Softwareentwicklung und ist dann irgendwie in die Vollzeitentwicklung übergegangen. Ich würde vermuten, dass er bereits einen technischen Hintergrund hatte, so wie Sie.

Es könnte besser funktionieren, wenn Sie versuchen, es zuerst mit Ihrem derzeitigen Arbeitgeber zu tun, als es alleine zu machen. Sie hätten viel mehr Unterstützung und Hilfe. Sprechen Sie vielleicht mit Ihrem Manager und fragen Sie, wie Sie zu einer Entwicklungsrolle innerhalb des Unternehmens wechseln können, wahrscheinlich zu Beginn des gleichen Teams. Auf diese Weise kennen Sie bereits alle und sie kennen Sie und Ihre Fähigkeiten und können Sie weiterbilden. Wenn Sie wirklich, wirklich, wirklich Glück haben, hat Ihr Unternehmen ein Budget, um Sie auf Kurse zu schicken, um noch schneller aufzuholen.

FrustratedWithFormsDesigner
quelle
2
Ich möchte nur wiederholen, dass dies definitiv möglich ist - in einer früheren Position habe ich mit einem Auftragnehmer zusammengearbeitet, der genau das getan hat. Er fing an, Access-Anwendungen für ein Unternehmen von einer Nicht-Entwickler-Rolle aus zu erstellen, wurde dann ein externer Berater für sie und verwandelte sie schließlich in sein eigenes Geschäft und scheint ziemlich gut zu laufen.
Bunglestink
4

VBA und Access ist das Ende der Programmierleiter. Wenn ich du wäre, würde ich höher schießen, da du SQL-Kenntnisse hast. Erwägen Sie, SQL Server Reporting Services zu erlernen, Berichte oder SSIS zu erstellen und die ETL-Verarbeitung durchzuführen. Diese Fähigkeiten sind derzeit sehr gefragt, und Sie sind gut aufgestellt, da sie in einem Unternehmensumfeld relativ einfach zu erlernen sind, insbesondere wenn derzeit niemand anderes diese Rollen für Ihr Unternehmen übernimmt. Ich würde die Erfahrung von Business Analysten als großes Plus für einen Berichtersteller sehen.

HLGEM
quelle
2

Es kann getan werden. Es wird nicht einfach sein, besonders wenn Sie gut darin werden wollen, da Softwareentwicklung eine technische Disziplin mit nicht offensichtlichen Problemen und Fallstricken ist, die Sie erkennen und vermeiden müssen. Das wird ein paar Jahre ernsthaften Lernens und Übens erfordern, aber wenn Sie sich mit den Konzepten beschäftigen können, können Sie definitiv Programmierer werden, selbst wenn Ihr Hintergrund etwas anderes ist.

Mason Wheeler
quelle
Empfohlene Studiengänge? Ich bin eher ein Selbstlerner, daher abonniere ich gerade eine MIT OpenCourseware (Einführung in Comp Sci), die Python als Unterrichtssprache verwendet, hauptsächlich, um eine solide Programmiertheorie zu erlernen und mehr darüber nachzudenken Zeilen eines Programmierers. Erweitern Sie auch weiterhin meine Excel / Access / VBA-Kenntnisse durch aktuelle Projekte bei der Arbeit.
Ryan
@ Ryan Du bist in einer Täuschung über eine Sache: Es gibt keine solide Programmiertheorie. Programmieren ist ein sehr unreifes Handwerk (Handwerk ist das richtige Wort!) - es ist wirklich zu jung. Programmierer lesen viele Bücher, aber Revolutionen in diesem Bereich finden über einen Monat statt. Was bedeutet, dass die Einstellung zum Lernen die einzige Voraussetzung ist :)
K.Steff
1
@ Ryan: Ich bin größtenteils Autodidakt. Mein "Studiengang" war "Dieses Programm ist scheiße. Ich könnte das tun und es besser als der Autor. Also mal sehen, ich habe einen Compiler, wie fange ich jetzt an, Funktionen zu implementieren?"
Mason Wheeler
2

Ob es Jahre oder Jahre dauern wird, hängt weitgehend von Ihnen, Ihrem Zeitplan, aber vor allem von Ihrem Interesse ab, das tendenziell an die Eignung gebunden ist. Wenn Sie zufällig in einer Stadt leben oder arbeiten und die Möglichkeit haben, massenhaft zu pendeln, nehmen Sie diese und nutzen Sie die eingebaute Pendelzeit, um technische Bücher zu lesen. Alles was dich interessiert.

Schwitzen Sie nicht, was die Kühnheit des Denkens angeht. Die Entscheidung, dass Sie wahrscheinlich mit diesem <nicht erkennbaren Haufen Komplexität hier einfügen> umgehen können, ist das, was Entwickler tun. Das ist keine Arroganz, es ist nur der erste Schritt.

Arrogant im Entwicklerland nennt sich selbst einen professionellen Entwickler, wenn Sie für alles eine Lösung haben und seit dem College nichts Neues gelernt haben. Das ist das Problem mit der Entwicklung. Wenn Sie aufhören zu lernen, geht Ihre Karriere bergab, daher ist das Interesse eine Art Schlüssel. Klingt so, als hättest du das.

Also mach es.

Sie haben Ihr Ziel in Sicht. Der Rest zerlegt die großen gruseligen Probleme in kleine, nicht so gruselige. Wiederholen Sie ad nauseum und Sie werden ein bezahlter Vollzeitentwickler sein, der wünscht, es gäbe mehr größere / beängstigendere Probleme als früher, als Sie vielleicht denken.

Erik Reppen
quelle
Nebenbeobachtung: Arroganz ist in der Anfangsphase hilfreich. Wenn ich zu Beginn gewusst hätte, worum es beim Programmieren wirklich geht , hätte ich wahrscheinlich zwei Stunden nach der „Hallo Welt“ aufgegeben.
K.Steff
1

Ich würde sagen (wenn Sie etwas anfangen wollen), gehen Sie zu SICP - Struktur und Interpretation von Computerprogrammen. Ich sollte darauf verlinken, aber es ist mehr als nur ein Buch. Heutzutage können Sie auch andere Leute finden, mit denen Sie den Kurs online studieren können . Es ist ein wirklich schwieriges Buch - alle Übungen zu absolvieren ist etwas, was die meisten Entwickler (leider) nicht können, aber es ist das beste verfügbare Buch. MIT OCW ist auch gut, aber meiner Meinung nach ist es eine verwässerte Version von SICP für die Programmierung. Python wurde entwickelt, um Komplexität zu verbergen, anstatt Sie krank zu machen (wie es SICP tut).

Außerdem müssen Sie zwischen Programmieren als Beruf und Programmieren als Fertigkeit unterscheiden. Einer erfordert Engagement für Dinge wie schönen, sauberen und erweiterbaren Code, während der andere nichts als algorithmische Fähigkeiten erfordert (was eigentlich ziemlich viel ist). Der "wohlwollende Diktator" von Python, Guido van Rossum, argumentiert, dass Programmieren in den kommenden Jahren eine wesentliche Fähigkeit sein wird, Softwareentwicklungsfähigkeiten jedoch auf keinen Fall. Die meisten Nicht-Entwickler schreiben Code, um ihn wegzuwerfen (Entwickler tun dies auch oft). Das Programmieren als Karriere beinhaltet viel mehr als das Programmieren und es ist wichtig, dass Sie Ihre Prioritäten klarstellen.

Das Wichtigste: Lieben Sie das Programmieren, nicht nur das Programmieren. Es ist mehr als ein 9 bis 5-Job, es ist die Philosophie des ständigen Lernens : Die meisten Ingenieure werden während ihres BS oder MSc geschult und sehen keine signifikanten Veränderungen in ihrem Fachgebiet. Eine lebenslange Karriere in der Programmierung führt dazu, dass Sie mindestens 10 Paradigmenwechsel sehen (nicht nur Sprachen, sondern auch Tools, DBs usw.), sodass Sie besser bereit (und bereit) sind, dies zu akzeptieren.

K.Steff
quelle
+1 für "Philosophie des ständigen Lernens". Beim Programmieren geht es hauptsächlich darum, jeden Tag zu lernen und sich zu verbessern. Wenn Sie diese beiden Dinge tun möchten, haben Sie wahrscheinlich eine gute Erfahrung und sind erfolgreich.
B Sieben
1

Ich denke, Sie sind in einer guten Position, um dies zu versuchen.

Die meiste Zeit meiner Karriere war ich tief in die technische Seite der Dinge eingebettet, aber über Jahre hinweg, in denen ich beobachtet habe, wie viele Projekte erfolgreich waren oder scheiterten, bin ich zu dem Schluss gekommen:

Wenn Sie Ihre Geschäftsbenutzer und deren Anforderungen nicht verstehen, schlägt Ihr Projekt fehl.

Ich habe noch nie eine Ausnahme von dieser Regel gesehen und kein Geld-, Hardware- oder Programmiergenie scheint einen Unterschied zu machen. Echte Projekte mit einem guten Verständnis der Anforderungen können aufgrund schlecht gewählter Hardware, Software, mangelndem Budget oder mangelnder Fähigkeiten scheitern - aber zum größten Teil können oder könnten diese Projekte gerettet werden.

Ihre gute BA-Ausbildung und Ihre guten Anforderungen geben Ihnen eine Perspektive, die einigen Ihrer begabteren Techie-Colleges möglicherweise fehlt. Den Rest können Sie lernen.

James Anderson
quelle