Wir haben ein IT-Personal von 5 Personen:
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:
Ich muss gestehen, nichts davon macht mich wirklich glücklich. Was denken Sie? Irgendeine innovative Idee?
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:
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).
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?
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:
Langfristig:
Nach einiger Zeit wird der Senior in der Lage sein, mit dem Freiberufler zusammenzuarbeiten, um den Übergang reibungsloser zu gestalten.
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.
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.
Johnny
Alexis Dufrenoy
Marcie
jmort253
Alexis Dufrenoy
jmort253
technical management
oder -software management
Frage sein. Aber ich kann auch sehen, wie es auch eine PM-Frage sein könnte, und Ihren Standpunkt verstehen.Keeno
mwark
Chris