Навыки недоступные в настоящее время в нашей команде

У нас есть ИТ-персонал из 5 человек:

  • 1 старший со знанием C и PHP.
  • 1 старший специалист с навыками работы с Java и базами данных.
  • 1 старший специалист с навыками Flex и Actionscript. Он получил немного C# с навыками .Net 2.5, так как он прошел обучение, но он никогда не использовал их по-настоящему, так что это уже не имеет большого значения.
  • 1 стажер и еще один прибудет в ближайшие дни. Оба уедут в сентябре.
  • 1 ученик, что означает, что он работает неполный рабочий день в нашей компании и неполный рабочий день в своей инженерной школе по 3-месячному циклу. Он уехал на прошлой неделе и вернется в июне.

Все пенсионеры работают в компании с 4-х лет и полностью преданы своему делу.

Помимо нашего онлайн-приложения для обмена фотографиями, мы получаем настольное приложение для Windows, которое позволяет записывать видео DVD со слайд-шоу, созданными с помощью онлайн-приложения. Он написан с помощью Zinc, альтернативы Adobe AIR, с некоторым кодом Imapi и FFMpeg.

В настоящее время это приложение является головной болью для всей команды, потому что оно содержит ошибки из-за технических ограничений Zinc. Поэтому мы хотим переделать его с нуля на C#, что позволит нам получить гораздо лучшее программное обеспечение.

А вот и настоящая проблема: мы не можем позволить себе нанять еще одного старшего инженера, и в настоящее время у нас нет собственных навыков работы с C#.

Вот несколько идей решения:

  • свяжитесь с ИТ-консалтинговой компанией, чтобы нанять нам специалистов по C#. Мне не очень нравится это решение. Я работал в сфере ИТ-услуг и знаю, чего стоят некоторые из их так называемых экспертов...
  • найти внештатного разработчика C#
  • нанять эксперта по C# на короткий срок
  • нанять ИТ-консалтинговую компанию для выполнения работы

Должен признаться, ни один из них не делает меня счастливой. Что вы думаете? Любая инновационная идея?

Это действительно нужно сделать на C#?
На самом деле это нужно делать на платформе .Net. Но, насколько я знаю, ведение серьезного бизнеса с .Net означает C#. Я не могу представить, чтобы это можно было сделать с помощью VB, а специалистов по другим языкам, вероятно, будет еще труднее найти, чем C#...
Интересный вопрос. Относится ли это к управлению проектами?
Это должно быть закрыто или перемещено в Programmers SE. Это не вопрос управления проектом.
Конечно, это вопрос управления проектом! Команда, не имеющая навыков для проекта и ищущая решения вопроса, что еще может быть?
@Traroth - Кажется, это может быть вопрос technical managementили software managementвопрос. Но я также вижу, как это может быть вопрос в личку, и понимаю вашу точку зрения.
Почему это ДОЛЖЕН быть .NET? Имеются ли их альтернативы на платформе JAVA? У этого было бы несколько преимуществ: 1 - ваш разработчик Java мог бы это сделать 2 - кроссплатформенность.
Оффтопик. Как вы упоминаете в вопросе, версии .NET Framework 2.5 не существует. Используются и доступны версии 1, 1.1, 2, 3, 3.5 и 4.
.NET 2.5. Вы только что сказали .NET 2.5? Честное заблуждение, согласен.

Ответы (6)

Это звучит как классическое решение «сборка против покупки». Я бы порекомендовал собрать команду вместе, чтобы написать функциональную спецификацию того, как должно выглядеть ваше программное обеспечение, что оно должно делать, как оно будет установлено и как оно будет поддерживаться. Укажите заявление «Предпочтительная разработка на C# для обеспечения гибкости в будущем. Предложения по использованию альтернативных языков принимаются/не принимаются» (на ваш выбор).

Затем разошлите RFP в специализированные магазины и узнайте, сколько может стоить просто «купить». После того, как у вас будет эта цена, вы можете решить, строить или покупать. Если строительство все еще дешевле, функциональная спецификация, вероятно, все еще будет полезна.

Кроме того, убедитесь, что вы покупаете исходный код и авторские права. Адвокаты полезны для таких контрактов.

Могли бы вы использовать навыки ActionScript и Flex и сделать это в AIR?

В качестве вопроса управления проектом я бы рекомендовал нанять эксперта по краткосрочному контракту. Дает вам контроль, гибкость, возможность повторного найма в будущем и потенциальную передачу знаний за счет того, что этот человек находится в компании (особенно если люди из вашей команды могут скрывать / объединяться с ними).

Пара диких кадров:

  1. Стажеры будут в доме достаточно долго, чтобы, если у вас есть наставник, вы вернули свою ценность?
    Наставник, конечно, должен быть экспертом по C#, возможно, внештатным подрядчиком на полставки (в зависимости от того, сколько требуется наставничества).

  2. Поставлены ли перед старшими разработчиками правильные задачи? Не мог бы ваш старший специалист по C# получить наставничество, чтобы освежить свои знания и помочь сблизиться со стажерами?

Я отредактировал вопрос. Пункт 2 интересен, и стоит задуматься над ним. Проблема в том, что он сейчас перегружен и, например, не может выйти на тренировку. Но если мы наймем фрилансера или что-то в этом роде, я думаю, он, вероятно, сможет приобрести навыки.

Если это необходимо сделать на платформе .NET, вы можете перейти на другой язык программирования.

Посмотрите таблицу поддерживаемых языков .NET framework .

Согласно этой таблице, .NET поддерживает язык Java, и у вас в команде есть специалист по Java.

Я не уверен, возможно ли программирование Java на платформе .NET. Возможно, вам стоит спросить об этом у программистов SE или у stackoverflow .

Если решение о смене языка программирования невозможно и вам нужно решить проблему нехватки навыков в вашей команде, я бы порекомендовал следующее:

На короткий срок:

  • Наймите внештатного разработчика C#, чтобы начать работу. (Это будет важно, если вам нужно это приложение для записи DVD быстро)
  • Выделите время для встреч с вашей командой и фрилансером, чтобы они могли следить за развитием.

На длительный срок:

  • Выделите время для старшего специалиста, чтобы он освоил C#.
  • Проведите обучение C# для вашей команды. (Это будет важно для обслуживания приложения после его завершения, лучше, чем платить за поддержку)

Через некоторое время старший сможет работать с фрилансером, делая переход более плавным.

Ну, я думал, что мой ответ поможет. Но я не могу улучшить свой ответ без комментария, объясняющего, почему за него проголосовали. Что в моем ответе должно обескураживать? В Meta есть вопрос , в котором jmort253 заявляет, что комментарий должен быть размещен, чтобы помочь ОП или ответчику улучшиться.
Вопрос не в технических моментах, а в управлении проектом. Выбор сделан, и я здесь не для того, чтобы ставить его под сомнение, а для того, чтобы найти решение, которое поможет ему встать на ноги.
@Traroth: Ты прав. Я теряю фокус вопроса. Мне было неясно, что некоторые технические модификации невозможны, поскольку вы сказали: «Мы хотим переделать это с нуля на С#». Я подумал, что это возможное решение (или обходной путь) изменить язык программирования. Если этот технический вопрос не обсуждается, я отредактирую свой ответ, чтобы он лучше соответствовал вашему вопросу.
@Traroth часть управления проектом рассматривает все варианты, вы не можете обвинять людей в том, что они подталкивают и подталкивают, чтобы получить больше информации. Мне не очень нравится иметь дело с вопросами типа "просто так".

Найти летнего стажера в университете

Вместо того, чтобы нанимать эксперта по C#, возможно, стоит рассмотреть альтернативу найму еще одного стажера или найма студента на неполный рабочий день. Если вам это нужно для временного проекта, я считаю, что мотивированный и опытный студент может сделать работу так же хорошо, как и профессионал. Вы также можете предложить стимул нанять его / ее на полный рабочий день после завершения учебы. Контрактные соглашения могут отличаться от страны к стране, но расторжение студенческого контракта должно быть проще.

Привет, Эльчин, я бы предложил отредактировать , объясняющую, почему это хорошее решение и как оно может решить проблему. Это кажется очевидным, но небольшое расширение сделало бы его более надежным ответом, который поможет нам соответствовать 6 субъективным принципам хороших постов . Кроме того, старайтесь не формулировать свой ответ как вопрос, поскольку ответы предназначены для ответа на вопрос. Надеюсь это поможет!
@ jmort253, конечно, спасибо за предложения!
Хорошие правки @Elchin. Спасибо за вашу помощь! :)

Что мы на самом деле сделали: мой коллега, ранее обучавшийся C#, обновил свои навыки C# и начал разработку новой версии программного обеспечения.

Мы запланировали проект таким образом, чтобы постепенно заменить различные элементы, написанные с помощью Zinc, кодом C#. Сначала часть для встраивания пользовательского интерфейса Flash, затем часть, используемая для захвата изображений из слайд-шоу, и, наконец, часть, объединяющая различные части системы, включая встроенный видеокодер FFMpeg с огромным туннельным эффектом.

Таким образом, мы можем поддерживать работающее программное обеспечение в каждый момент времени и в то же время постепенно улучшать его. А у моего коллеги больше времени для того, чтобы идти в ногу со временем, не занимаясь монолитным проектом.

В настоящее время проект находится на верном пути и успешно продвигается. Первые улучшения действительно многообещающие.