Fähigkeiten, die derzeit in unserem Team nicht verfügbar sind

Wir haben ein IT-Personal von 5 Personen:

  • 1 Senior mit C- und PHP-Kenntnissen.
  • 1 Senior mit Java- und Datenbankkenntnissen.
  • 1 Senior mit Flex- und Actionscript-Kenntnissen. Er hat einige C# mit .Net 2.5-Fähigkeiten, da er an einer Schulung teilgenommen hat, aber er hat sie nie wirklich benutzt, also ist es nicht mehr viel wert.
  • 1 Praktikant und ein weiterer in den nächsten Tagen. Beide werden im September abreisen.
  • 1 Lehrling, d.h. er ist Teilzeit in unserem Unternehmen und Teilzeit in seiner Ingenieurschule, im 3-Monats-Zyklus. Er ist erst letzte Woche abgereist und wird im Juni zurück sein.

Alle Senioren arbeiten seit 4 Jahren im Unternehmen und sind mit vollem Einsatz dabei.

Neben unserer Online-Foto-Sharing-Anwendung erhalten wir eine Windows-Desktop-Anwendung, die es ermöglicht, Video-DVDs mit den mit der Online-Anwendung erstellten Diashows zu brennen. Es ist mit Zinc geschrieben, einer Alternative zu Adobe AIR, mit etwas Imapi-Code und FFMpeg.

Derzeit ist diese Anwendung ein Problem für das gesamte Team, da sie aufgrund der technischen Einschränkungen von Zinc viel zu fehlerhaft ist. Also wollen wir es in C# von Grund auf neu erstellen, was uns eine viel bessere Software ermöglichen wird.

Und hier kommt die eigentliche Sache: Wir können es uns nicht leisten, einen weiteren leitenden Ingenieur einzustellen, und wir verfügen derzeit nicht über die C#-Kenntnisse im eigenen Haus.

Hier einige Lösungsideen:

  • Wenden Sie sich an ein IT-Beratungsunternehmen, um uns C#-Experten zu mieten. Ich bin nicht so begeistert von dieser Lösung. Ich habe im IT-Dienstleistungsgeschäft gearbeitet und weiß, was einige ihrer sogenannten Experten wert sind ...
  • Finden Sie einen freiberuflichen C#-Entwickler
  • Stellen Sie einen C#-Experten für einen Kurzzeitvertrag ein
  • Beauftragen Sie ein IT-Beratungsunternehmen, um die Arbeit zu erledigen

Ich muss gestehen, nichts davon macht mich wirklich glücklich. Was denken Sie? Irgendeine innovative Idee?

Muss es wirklich in C# gemacht werden?
Eigentlich muss es auf der .Net-Plattform durchgeführt werden. Aber soweit ich weiß, bedeutet ernsthaftes Geschäft mit .Net C#. Ich kann mir nicht vorstellen, dass dies mit VB zu tun ist, und Experten in anderen Sprachen sind wahrscheinlich noch schwerer zu finden als in C # ...
Interessante Frage. Bezieht es sich auf Projektmanagement?
Dies sollte geschlossen oder nach Programmers SE verschoben werden. Dies ist keine Frage des Projektmanagements.
Natürlich ist es eine Frage des Projektmanagements! Ein Team, das nicht die Fähigkeiten für ein Projekt hat und nach Lösungen für das Problem sucht, was könnte es sonst sein?
@Traroth - Es scheint, als könnte dies eine technical managementoder - software managementFrage sein. Aber ich kann auch sehen, wie es auch eine PM-Frage sein könnte, und Ihren Standpunkt verstehen.
Warum MUSS es .NET sein? Sind ihre Alternativen nicht auf der JAVA-Plattform verfügbar? Dies hätte ein paar Vorteile, 1 - Ihr Java-Entwickler könnte es tun 2 - plattformübergreifend.
Offtopic - Es gibt keine .NET Framework 2.5-Version, wie Sie in der Frage erwähnen. Die Versionen 1, 1.1, 2, 3, 3.5 & 4 werden verwendet und sind verfügbar.
.NET 2.5.. sagten Sie gerade .NET 2.5? Ehrlicher Fehler, ich stimme zu.

Antworten (6)

Das klingt nach einer klassischen Build vs. Buy-Entscheidung. Ich würde empfehlen, das Team zusammenzubringen, um eine funktionale Spezifikation darüber zu schreiben, wie Ihre Software aussehen soll, was sie tun soll, wie sie installiert und wie sie gewartet wird. Geben Sie eine Erklärung ein: „Bevorzugte Entwicklung in C# für zukünftige Flexibilität. Vorschläge zur Verwendung alternativer Sprachen werden akzeptiert/nicht akzeptiert“ (Ihre Wahl).

Senden Sie dann eine RFP an kundenspezifische Entwicklungsgeschäfte und finden Sie heraus, was der Preis sein könnte, wenn Sie es einfach "kaufen". Nachdem Sie diesen Preis haben, können Sie sich für Bauen oder Kaufen entscheiden. Wenn das Bauen noch billiger ist, wird die Funktionsspezifikation wahrscheinlich immer noch nützlich sein.

Stellen Sie außerdem sicher, dass Sie den Quellcode und das Urheberrecht kaufen. Rechtsanwälte sind für solche Verträge nützlich.

Könnten Sie die Actionscript- und Flex-Fähigkeiten nutzen und dies in AIR tun?

Als Projektmanagementfrage würde ich empfehlen, einen Experten mit einem kurzfristigen Vertrag einzustellen. Gibt Ihnen Kontrolle, Flexibilität, die Möglichkeit, in Zukunft wieder einzustellen, und den potenziellen Wissenstransfer, wenn Sie diese Person im Haus haben (insbesondere, wenn Personen aus Ihrem Team sie begleiten/mit ihnen zusammenarbeiten können).

Ein paar wilde Aufnahmen:

  1. Werden die Praktikanten lange genug im Haus sein, dass Sie Ihren Wert zurückerhalten, wenn Sie einen Mentor bekommen?
    Der Mentor müsste natürlich ein C#-Experte sein, vielleicht ein freiberuflicher Auftragnehmer in Teilzeit (je nachdem, wie viel Mentoring erforderlich ist).

  2. Sind die Senior-Entwickler mit den richtigen Aufgaben beschäftigt? Könnte Ihr erfahrener C# etwas Mentoring gebrauchen, um sein Wissen aufzufrischen und den Praktikanten zu helfen?

Ich habe die Frage bearbeitet. Punkt 2 ist interessant, und es lohnt sich, darüber nachzudenken. Das Problem ist: Er ist derzeit überlastet und kann zum Beispiel wahrscheinlich nicht zu einem Training gehen. Aber wenn wir einen Freiberufler oder so etwas einstellen, könnte er sich wahrscheinlich die Fähigkeiten aneignen, denke ich.

Wenn dies auf dem .NET-Framework erfolgen muss, können Sie zu einer anderen Programmiersprache wechseln.

Sehen Sie sich die Tabelle der vom .NET-Framework unterstützten Sprachen an .

Gemäß dieser Tabelle unterstützt .NET die Java-Sprache, und Sie haben einen Java-Experten in Ihrem Team.

Ich bin mir nicht sicher, ob die Programmierung von Java auf dem .NET-Framework machbar ist. Vielleicht sollten Sie dies bei Programmers SE oder bei stackoverflow fragen .

Wenn die Entscheidung, die Programmiersprache zu ändern, nicht möglich ist und Sie den Mangel an Fähigkeiten in Ihrem Team lösen müssen, würde ich Folgendes empfehlen:

Kurzfristig:

  • Stellen Sie einen freiberuflichen C#-Entwickler ein, um mit der Arbeit zu beginnen. (Dies ist wichtig, wenn Sie diese DVD-Brennanwendung schnell benötigen.)
  • Planen Sie Zeit für Besprechungen mit Ihrem Team und dem Freiberufler ein, damit sie die Entwicklung verfolgen können.

Langfristig:

  • Planen Sie Ihrem Vorgesetzten Zeit ein, um Kompetenz in C# aufzubauen.
  • Bieten Sie Ihrem Team C#-Training an. (Dies ist wichtig für die Wartung der Anwendung, nachdem es fertig ist, besser als für den Support zu bezahlen)

Nach einiger Zeit wird der Senior in der Lage sein, mit dem Freiberufler zusammenzuarbeiten, um den Übergang reibungsloser zu gestalten.

Nun, ich dachte, meine Antwort würde helfen. Aber ich kann meine Antwort nicht verbessern, ohne einen Kommentar zu erklären, warum sie abgelehnt wird. Was in meiner Antwort sollte entmutigt werden? Bei Meta gibt es eine Frage, bei der jmort253 angibt, dass ein Kommentar platziert werden sollte , um dem OP oder Beantworter zu helfen, sich zu verbessern.
Die Frage bezieht sich nicht auf technische Fragen, sondern auf das Projektmanagement. Es wurden Entscheidungen getroffen, und ich bin nicht hier, um sie in Frage zu stellen, sondern um eine Lösung zu finden, um sie auf den richtigen Weg zu bringen.
@Traroth: Du hast recht. Ich verliere den Fragenfokus. Mir war nicht klar, dass einige technische Änderungen nicht möglich sind, da Sie sagten: "Wir möchten es in C # von Grund auf neu erstellen". Ich dachte, es wäre eine mögliche Lösung (oder Problemumgehung), die Programmiersprache zu ändern. Wurde dieses technische Problem nicht diskutiert, werde ich meine Antwort bearbeiten, um sie besser an Ihre Frage anzupassen.
@Traroth Ein Teil des Projektmanagements prüft alle Optionen. Sie können den Leuten nicht vorwerfen, dass sie herumstochern und anstacheln, um mehr Informationen zu erhalten. Ich beschäftige mich nicht wirklich gerne mit "nur weil"-Fragen..

Finden Sie ein Sommerpraktikum an einer Universität

Anstatt einen C#-Experten einzustellen, könnte es sich lohnen, nach einer Alternative zu suchen, einen anderen Praktikanten einzustellen oder einen Studenten in Teilzeit einzustellen. Wenn Sie es für ein vorübergehendes Projekt benötigen, glaube ich, dass ein motivierter und qualifizierter Student eine ebenso gute Arbeit wie ein Profi leisten kann. Sie könnten auch einen Anreiz bieten, ihn/sie nach Abschluss des Studiums in Vollzeit einzustellen. Vertragliche Vereinbarungen können von Land zu Land unterschiedlich sein, aber es soll einfacher sein, den Studentenvertrag zu kündigen.

Hallo Elchin, ich würde eine Bearbeitung vorschlagen, die erklärt, warum dies eine gute Lösung ist und wie sie das Problem lösen könnte. Es scheint offensichtlich zu sein, aber wenn Sie dies nur ein wenig erweitern, wäre es eine robustere Antwort, die uns hilft, die 6 subjektiven Richtlinien für gute Posts zu erfüllen . Versuchen Sie auch, Ihre Antwort nicht als Frage zu formulieren, da Antworten die Frage beantworten sollen. Hoffe das hilft!
@jmort253, sicher, danke für Vorschläge!
Gute Änderungen @Elchin. Danke für Ihre Hilfe! :)

Was wir tatsächlich gemacht haben: Mein Kollege mit vorheriger C#-Schulung aktualisiert seine C#-Kenntnisse und begann mit der Entwicklung der neuen Version der Software.

Wir haben das Projekt geplant, um nach und nach die verschiedenen mit Zinc geschriebenen Elemente durch C#-Code zu ersetzen. Zuerst der Teil zum Einbetten der Flash-Benutzeroberfläche, dann der Teil zum Aufnehmen von Bildern aus der Diashow und schließlich der Teil, der die verschiedenen Teile des Systems zusammenfügt, einschließlich des eingebetteten FFMpeg-Video-Encoders mit einem riesigen Tunneleffekt.

Auf diese Weise können wir jederzeit eine funktionierende Software behalten und sie gleichzeitig schrittweise verbessern. Und mein Kollege hat mehr Zeit, sich auf den neuesten Stand zu bringen, ohne sich auf ein monolithisches Projekt einzulassen.

Derzeit ist das Projekt auf Kurs und schreitet gut voran. Die ersten Verbesserungen sind wirklich vielversprechend.