Ich bin ein ziemlich neuer Entwickler. Beruflich habe ich zwei Jahre als Praktikant und sechs Monate als Junior-Entwickler in C # programmiert. Ein Freund meiner Familie braucht Hilfe bei einem Projekt, das in VB.net geschrieben ist. Ich habe VB.net noch nie benutzt, deshalb mache ich mir dort ein wenig Sorgen.
Die eigentliche Frage ist jedoch, dass ich nach dem Betrachten der Dokumente für das Projekt das Gefühl habe, dass nichts wirklich Gutes daraus entstehen wird. Ich habe das Gefühl, dass es mehr Stress verursachen wird, als ich derzeit in meinem Leben haben möchte.
Wie entscheiden erfahrene Entwickler, ob sie das Projekt übernehmen oder einfach loslassen? Was sind einige gute Metriken, um die Entscheidung zu erleichtern?
Bearbeiten
Dies scheint tatsächlich ein sehr großes ERP zu sein, an dem ich arbeiten soll, und ich glaube nicht, dass er etwas über Programmierung weiß, daher denke ich nicht, dass ihm die Tatsache, dass ich sehr jung bin, überhaupt in den Sinn gekommen ist.
Antworten:
Aus meiner Erfahrung: Arbeiten Sie niemals mit Geld für Familienmitglieder, mit denen Sie Urlaub machen müssen, oder für Freunde, die Sie behalten möchten. Eine der beteiligten Parteien wird immer das Gefühl haben, dass die andere Partei entweder zu viel verlangt oder nicht genug zahlt und dass sie der anderen Partei einen Gefallen getan hat. Wenn die Frist abgelaufen ist, sind sie normalerweise am wenigsten verständnisvoll, und sie sind normalerweise Arschlöcher während des Betatests, denn wenn Sie einen Fehler haben - den Sie werden - werden sie ihn nicht verstehen. Es ist immer ein Chaos.
Früher war ich idealistisch und dachte, dass alle anderen nur bessere Fähigkeiten der Menschen brauchten, aber nein, so ist es eben. Menschen, die den Softwareentwicklungsprozess nicht verstehen, werden IMMER ausflippen, wenn etwas im ersten Moment, in dem sie es sehen, nicht ihren Erwartungen entspricht. Dies gilt sowohl für Unternehmen mit Projektmanagern als auch für Familienmitglieder. Das Problem ist, dass Sie eine Beziehung zu Familie und Freunden pflegen müssen und die Dinge niemals rein geschäftlich sind.
Das heißt, wenn das Projekt Ihren Stresspegel erhöhen wird und Sie das Geld nicht brauchen, warum dann nehmen Sie es? Vor allem, wenn Sie bereits einen Softwareentwicklungsjob haben, in dem Sie sich auszeichnen möchten, würde ich sagen, dass Sie so viel Arbeitsaufwand darauf verwenden sollten, in Ihrem Tagesjob hervorragend zu sein, da Sie dort letztendlich für qualitativ hochwertige Arbeit belohnt werden.
Wenn Sie das Geld brauchen und mit dem möglichen Verlust eines Freundes in der Familie einverstanden sind, nehmen Sie den Job an. Das Schlimmste, was passieren kann - abgesehen von den Dingen, die ich zuvor erwähnt habe - ist, dass Sie lernen, was Sie sind und was nicht, oder dass Sie mehr abbeißen, als Sie kauen können, was dazu führt, dass das Projekt schlecht wird Kopfschmerzen aufgrund Ihrer Unerfahrenheit. Ich habe das zweimal mit meinem aktuellen Job gemacht - zum Glück habe ich sehr verständnisvolle Arbeitgeber. Obwohl es ein Elend war, als ich mich tot im Wasser fühlte, entwickelte ich mich zu einem viel besseren Programmierer mit viel breiteren Fähigkeiten als zuvor.
Es gibt keinen Kalkül, um zu bestimmen, welche Jobs losgelassen und behalten werden sollen, nur Erfahrung und Ihre Persönlichkeit. Sie müssen nur entscheiden, was Sie wertschätzen und es verfolgen. Dinge, die man beachten muss:
Ist das ein Projekt, an dem ich gerne arbeiten werde? Ist das Team ein Team, mit dem ich gerne zusammenarbeiten werde?
Welche Art von Zahlung werden sie anbieten? Wenn keine, welche berufliche Entwicklung werde ich dann erhalten? Bieten sie ein geteiltes Risiko (dh Aktienoptionen, Prozentsatz des Gewinns)? Das ist ein großer Überzeuger für mich.
Auf jeden Fall sind dies nur Grundsätze, die Sie bei Ihrer Entscheidungsfindung anwenden können. Es hängt alles davon ab, was Sie schätzen. Zum Beispiel schätze ich intellektuelle Herausforderungen und Zeit mit meiner Familie, daher lege ich normalerweise großen Wert auf das Projekt und die Fähigkeiten, die ich dabei erlernen werde. Ich stelle jedoch auch sicher, dass ich nur 2 oder 3 Nächte pro Woche arbeite, damit ich Zeit mit meiner Frau und meinen Kindern verbringen kann, da ich bereits den ganzen Tag arbeite. Ich passe die Frist an, um dieser Nachfrage gerecht zu werden. Wenn sie das nicht mögen, dann nehme ich den Job nicht an.
Was auch immer Sie tun, stellen Sie sicher, dass Sie klar angeben, was Sie tun und was nicht, und dass sie ihre Erwartungen klar angeben, bevor Sie den Job annehmen. Das Schlimmste, was passieren kann, ist, dass der Kunde nicht angegebene Erwartungen hat und dass Sie diese Erwartungen unterschätzt haben.
PS Ich wünschte wirklich, ich hätte diesen Artikel früher in meiner Karriere gelesen. Es gilt für meinen letzten Absatz. http://www.joelonsoftware.com/articles/fog0000000356.html
quelle
Brauche ich den job Wenn ja, "nehme" ich das Projekt.
Wie viele Möglichkeiten habe ich? Mehr als 1? Ich kann zwischen den Alternativen wählen.
Nur 1? Gut. Das war's dann.
Die Frage "Stress in meinem Leben" ist strittig; Das Versäumnis, ein Projekt anzunehmen, bedeutet das Versäumnis, die Beschäftigung aufrechtzuerhalten. das hat katastrophale Folgen.
Wenn Sie die Art von finanzieller Freiheit haben, in der "Stress" ein entscheidender Faktor ist, ist das wirklich großartig.
quelle
Was werden Sie von diesem Projekt profitieren? Geld? Erfahrung? Etwas anderes?
Geld: Es ist von einem Familienmitglied (ich versuche, keine Geschäfte mit der Familie zu machen, aber das ist eine ganz andere Diskussion), es ist klein (damit es klingt), du bist ziemlich jung, also erwarte nicht viel Geld daraus (basierend auf meinen Erfahrungen).
Erfahrung: Sie lernen eine neue Sprache! Das könnte in Zukunft wertvoll sein und Ihnen einen kleinen Vorteil gegenüber .NET-Entwicklern verschaffen, die nur C # kennen.
Aber dein Bauchgefühl sagt dir, dass dieses Projekt schlecht sein wird . Warum das? Es hört sich so an, als könnten Sie zumindest etwas Erfahrung daraus machen.
Die meisten Auftragnehmer würden zunächst prüfen, wie viel Geld sie erhalten, um sich für ein Projekt zu entscheiden. Im Idealfall führen schwierigere Projekte zu mehr Geld. Wenn dies schwierig ist, sollte es sich auszahlen, aber ich kenne die Einzelheiten nicht, um zu wissen, ob Sie tatsächlich gut bezahlt werden ...
Als Antwort auf die Details in Ihrem Update: Sagen Sie ihm, dass dies weit über den Rahmen eines einzelnen Junior-Programmierers hinausgeht. Möglicherweise können Sie einige Minuten lang nachforschen, ob es ein vorhandenes Produkt gibt, das das tun kann, was er möchte, und ob auf der Seite "Funktionen" über Anpassung / Plugins / Erweiterbarkeit gesprochen wird. Möglicherweise möchte er auch mit einem Shop für kundenspezifische Software sprechen, wenn kein vorhandenes Produkt verfügbar ist oder umfangreiche Plugin-Programmierarbeiten durchgeführt werden müssen. Es ist nichts Falsches daran, zuzugeben, dass ein Projekt zu groß für Sie ist - es ist weitaus besser, als es zu übernehmen und vollständig zu scheitern (insbesondere wenn es sich um ein Familienmitglied handelt - Familienfunktionen können jahrelang umständlich und überlastet sein).
quelle
Persönlich, wenn dieser Satz beteiligt ist, nehme ich das Projekt nicht.
quelle
Als Freiberufler akzeptiere ich nur Projekte, bei denen ich zuversichtlich bin, dass sie rechtzeitig, im Budget und in guter Qualität abgeschlossen werden können. Ein Projekt abzulehnen bedeutet nicht Arbeitslosigkeit - zumindest nicht für immer. Wenn Sie ein Projekt annehmen, können Sie nicht alles liefern - Geld, Ansehen, Gesundheit.
Es ist manchmal etwas schwieriger, wenn ein guter Kunde Hilfe für ein neues Projekt benötigt, das einfach nicht zu meinen Fähigkeiten passt. Aber selbst dann ist es besser, ehrlich zu sein und es jemand anderem überlassen zu lassen.
In Ihrem Fall können und sollten Sie das Projekt ablehnen - Sie sind nicht erfahren genug, Sie kennen die Sprache nicht, sie ist zu groß für Sie.
quelle
Ich programmiere seit über zwanzig Jahren freiberuflich. Damit ein Projekt wirklich erfolgreich ist, benötigt es mindestens Folgendes:
Sie beschreiben einen Freund der Familie, der nichts über Programmierung weiß und der möchte, dass Sie - ein unerfahrener Programmierer - ein ERP-System mit einer Technologie erstellen, die Sie nicht kennen.
Es hört sich für mich so an, als würde diese Situation definitiv bei # 1, # 3, # 6 und # 7 fehlen, und vielleicht bei allen. Wie Adam auf Mythbusters sagt: "Dies ist ein Rezept für eine Katastrophe."
Heck, ich würde diesen nicht mit einer zehn Fuß Stange selbst berühren. Ich könnte weiter und weiter über die anderen roten Fahnen sprechen, die ich hier sehe, aber im Grunde ist mein Rat an Sie, mit Ihrem Bauchgefühl zu gehen, weil Sie Recht haben: "Es wird nichts wirklich Gutes daraus werden."
Da dies ein Freund der Familie ist, würde ich, wenn ich Sie wäre, nur sagen: "Sie haben ein großartiges Projekt, und Sie brauchen jemanden, der wirklich gut ist, und ich bin zu unerfahren, um Ihnen die Ergebnisse zu liefern, die Sie haben sollten." Lass es so wie es ist.
Ich habe auch festgestellt, dass ein Kunde, der in einem Bereich ein Problem hat, in anderen wahrscheinlich ein Problem darstellt. Ein potenzieller Kunde, der sogar in Betracht ziehen würde, ein ERP-System von einem Junior-Programmierer entwerfen und implementieren zu lassen, ist entweder so unwissend, dass es eine Gefahr für sich selbst und andere darstellt, oder lächerlich billig, und einer von beiden würde sie in meine Liste "Fernbleiben" aufnehmen .
FWIW, als Berater / Freiberufler, besetze ich die Rollen auf meiner Seite selbst mit Ratschlägen meiner Frau. Wir haben herausgefunden, was all diese Elemente sind, indem wir gesehen haben, dass Projekte aufgrund fehlender Elemente fehlschlagen - manchmal waren es unsere eigenen Projekte. Und selbst nach zwanzig Jahren und trotz der Überprüfung dieser Kriterien habe ich immer noch ein gelegentliches Projekt, das nicht funktioniert - dieses Risiko ist immer Teil des Geschäfts. Ich stelle jetzt nur sicher, dass Projekte nicht an irgendetwas scheitern, was ich falsch gemacht habe, und dass Verträge so strukturiert sind, dass ich bezahlt werde, wenn die andere Seite versagt.
quelle
Möchten Sie mit den anderen Beteiligten zusammenarbeiten?
Das Projekt ist nur eine Ausrede, um Menschen zu treffen und mit ihnen in Kontakt zu treten.
quelle
Meine persönliche Aufgabe wäre es, ein wenig zu untersuchen, was er will, welchen Zeitplan, welche Kosten er erwartet usw. Wenn dies tatsächlich ein großes ERP ist, könnte die Hilfe jahrelang dauern und möglicherweise wirklich hässlich werden. Waste Management vs SAP wäre ein Beispiel dafür, wie teuer dies werden könnte, wenn Sie wirklich groß wie in 9-stelligen Projektbudgets meinen.
Mein Ziel bei der Erkundung ist es, eine Linie in den Sand zu ziehen, damit klar ist, warum ich die Fragen stelle und was ich als Ergebnis haben möchte. "Wie lebensfähig sehe ich dieses Wesen?" ist die Frage, die ich haben würde, wenn ich Methodik, Budget und Zeitpläne im Voraus hinterfragen und dann ein wenig nachforschen würde, ob die Dinge auf dem Niveau zu sein scheinen oder nicht, oder ist dies etwas, das auf einer IT-Humor-Site landen könnte wie The Daily WTF .
quelle